https://linux-sunxi.org/api.php?action=feedcontributions&user=Frozeus&feedformat=atom
linux-sunxi.org - User contributions [en]
2024-03-29T14:06:10Z
User contributions
MediaWiki 1.35.8
https://linux-sunxi.org/index.php?title=Allwinner_SoC_Family&diff=25658
Allwinner SoC Family
2024-02-26T20:57:02Z
<p>Frozeus: Add A537 sun65iw1p1</p>
<hr />
<div>= SoC series =<br />
'''A''' series processors are used for mobile applications, mainly referring to tablet application here;<br />
<br />
'''B''' for "Book", used for E-book tablet reader. <br />
<br />
'''H''' for “Homlet”, mainly used in home entertainment applications, including smart OTT boxes, HDMI mini PCs, gaming boxes, etc;<br />
<br />
'''V''' for video-related applications, including video surveillance, automotive DVR, etc;<br />
<br />
'''T''' series processors target the Automotive products like ADAS. <br />
<br />
'''TV''' series processors target to the video-related applications, projector, TV<br />
<br />
'''F''' series are processors based on Allwinner’s melis OS, mainly used in smart video radios, video MP5, etc;<br />
<br />
== "A"-Series ==<br />
Based on ARMv7 Cortex-A cores (Cortex-A7, A8 and A15) targeted for high-end devices like digital media players, tablets, and netbooks:<br />
{| class="wikitable"<br />
| [[A10|Allwinner A10]] || <small>(sun4i)</small> || 1 x Cortex-A8 CPU-core<br />
|-<br />
| [[A13|Allwinner A13]] || <small>(sun5i)</small> || 1 x Cortex-A8 CPU-core<br />
|-<br />
| [[A10s|Allwinner A10s]] || <small>(sun5i)</small> || 1 x Cortex-A8 CPU-core<br />
|-<br />
| [[A20|Allwinner A20]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=45</ref> || <small>(sun7i)</small> || 2 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A23|Allwinner A23]] || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A31|Allwinner A31]] || <small>(sun6i)</small> || 4 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A31s|Allwinner A31s]] || <small>(sun6i)</small> || 4 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A33|Allwinner A33]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=23</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A40i|Allwinner A40i]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=69</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A50|Allwinner A50]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=72</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A80|Allwinner A80]] || <small>(sun9i)</small> || 4 x Cortex-A7 CPU-cores + 4 x Cortex-A15 CPU-cores&nbsp;<br /><small>(using ARM big.LITTLE heterogeneous CPU architecture)</small><br />
|-<br />
| [[A83T|Allwinner A83T]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=24</ref> || <small>(sun8i)</small>&nbsp; || 8 x Cortex-A7 CPU-cores<br />
|}<br />
<br />
'''64-bit'''<br />
<br />
Based on ARMv8 Cortex-A cores (Cortex-A53, A55) targeted for high-end devices like digital media players, tablets, and netbooks:<br />
<br />
{| class="wikitable"<br />
| [[A63|Allwinner A63]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=67</ref> || <small>(sun50i)</small>&nbsp; || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[A64|Allwinner A64]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=9</ref> || <small>(sun50i)</small>&nbsp; || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[A100|Allwinner A100]] || <small>(sun50i)</small>&nbsp; || 4 x Cortex-A53 CPU-cores<br />
|-<br />
| [[A133|Allwinner A133]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=93</ref> || <small>(sun50i)</small> || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[A523|Allwinner A523]] || <small>(sun55i)</small> || 8 x Cortex-A55 CPU-core<br />
|}<br />
<br />
== "F"-Series ==<br />
:'''{{note|The F series is not supported by the linux-sunxi community due to lack of developers and hardware. ''sun3i'' have only official linux support, ''sunii'' have no linux support, only Allwinner's "Melis" RTOS.}}'''<br />
<br />
Based on ARMv5 ARM926-EJS core and currently targeted for low market devices such as cheap ebook readers, etc.<br />
<br />
F1C700 seems to be a remarked A13, and it's ARMv7.<br />
<br />
{| class="wikitable"<br />
| [[C100|Boxchip C100]] || <small>(sun3i)</small><br />
|-<br />
| [[E200|Boxchip E200]] || <small>(sun3i)</small><br />
|-<br />
| [[F10|Boxchip F10]] <small>aka SoChip SC9800 aka Teclast T8100</small>&nbsp; || <small>(sunii)</small><br />
|-<br />
| [[F13|Boxchip F13]] || <small>(sunii)</small><br />
|-<br />
| [[F13|Boxchip F15]] <small>aka SoChip SC8600 aka Teclast T7200</small> || <small>(sunii)</small><br />
|-<br />
| [[F18|Boxchip F18]] || <small>(sunii)</small><br />
|-<br />
| [[F20|Boxchip F20]] || <small>(sun3i)</small><br />
|-<br />
| [[F23|Allwinner F23]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=30</ref> <small>aka F1C100A</small> || <small>(suniv)</small><br />
|-<br />
| [[F25|Allwinner F25]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=31</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C100A|Allwinner F1C100A]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=29</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C100s|Allwinner F1C100s]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=73</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C200s|Allwinner F1C200s]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=74</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C500|Allwinner F1C500]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=27</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C500s|Allwinner F1C500s]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=75</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C600|Allwinner F1C600]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=28</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C700|Allwinner F1C700]] || <small>(sun5i)</small><br />
|-<br />
| [[F1C800|Allwinner F1C800]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=76</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1D100|Allwinner F1D100]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=64</ref> || <small>(suniv)</small><br />
|}<br />
<br />
== "H"-Series ==<br />
Based on ARMv7/ARMv8 Cortex-A cores (A7/A53) targeted for video OTT (over-the-top) boxes and high-end gaming consoles:<br />
{| class="wikitable"<br />
| [[H2+|Allwinner H2+]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=62</ref> || <small>(sun8i)</small>&nbsp; || 4 x Cortex-A7 CPU-core&nbsp;<br />
|-<br />
| [[H3|Allwinner H3]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=47</ref> || <small>(sun8i)</small>&nbsp; || 4 x Cortex-A7 CPU-core&nbsp;<br />
|-<br />
| [[H8|Allwinner H8]] || <small>(sun8i)</small> || 8 x Cortex-A7 CPU-core<br />
|-<br />
| [[H80|Allwinner H80]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=46</ref> || <small>(sun8i)</small> || 8 x Cortex-A7 CPU-core<br />
|-<br />
| [[H133|Allwinner H133]]|| <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|}<br />
<br />
'''64-bit'''<br />
{| class="wikitable"<br />
| [[H5|Allwinner H5]]<ref>https://web.archive.org/web/20180131124325/http://www.allwinnertech.com/index.php?c=product&a=index&id=57</ref>&nbsp; || <small>(sun50i)</small>&nbsp; || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[H6|Allwinner H6]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=66</ref>&nbsp; || <small>(sun50i)</small>&nbsp; || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[H64|Allwinner H64]]<ref>http://web.archive.org/web/20160425223052/http://www.allwinnertech.com/en/clq/H_series/6100.html</ref> || <small>(sun50i)</small> || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[H313|Allwinner H313]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=90</ref> || <small>(sun50i)</small> || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[H616|Allwinner H616]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=89</ref> || <small>(sun50i)</small> || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[H618|Allwinner H618]] || <small>(sun50i)</small> || 4 x Cortex-A53 CPU-core<br />
|}<br />
<br />
== "R"-Series ==<br />
<br />
{| class="wikitable"<br />
| [[R6|Allwinner R6]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=79</ref> || <small>(sun3i)</small> || 1 x ARM926EJ-S CPU-core<br />
|-<br />
| [[R7|Allwinner R7]]<ref>https://web.archive.org/web/20191218202340/http://www.allwinnertech.com/index.php?c=product&a=index&id=82</ref> || <small>(sun8i)</small> || 1 x Cortex-A7 CPU-core<br />
|-<br />
| [[R8|Allwinner R8]]<ref>http://web.archive.org/web/20160510053338/http://www.allwinnertech.com/en/clq/R_series/2015/0514/R8.html</ref> || <small>(sun5i)</small>&nbsp; || 1 x Cortex-A8 CPU-core<br />
|-<br />
| [[R11|Allwinner R11]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=83</ref> || <small>(sun8i)</small> || 1 x Cortex-A7 CPU-core<br />
|-<br />
| [[R16|Allwinner R16]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=51</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[R40|Allwinner R40]]<ref>https://web.archive.org/web/20191229233801/http://www.allwinnertech.com/index.php?c=product&a=index&id=56</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[R58|Allwinner R58]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=49</ref>&nbsp; || <small>(sun8i)</small> || 8 x Cortex-A7 CPU-core<br />
|-<br />
| [[R311|Allwinner R311]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=84</ref>&nbsp; || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[R328|Allwinner R328]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=85</ref>&nbsp; || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|}<br />
<br />
The Allwinner R8 is repackaged version of the A13. This SoC gets used in the minicomputer presented in Next Thing Co.'s [[NextThingCo CHIP|''C.H.I.P.'']] kickstarter project ("The $9 computer")<ref>http://nextthing.co/</ref>.<br />
<br />
By comparing the product pages the R16 seems to be a relabeled version of A33. This is somewhat confirmed by the (identical) SoC ID the BROM reports.<ref>https://groups.google.com/d/msg/linux-sunxi/vx6oQMy-nis/vgVc8d1KBAAJ</ref><br />
<br />
'''64-bit'''<br />
{| class="wikitable"<br />
| [[R18|Allwinner R18]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=68</ref> || <small>sun50i</small> || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[R329|Allwinner R329]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=91</ref>&nbsp; || <small>(sun50i)</small> || 2 x Cortex-A53 CPU-core<br />
|-<br />
| [[R818|Allwinner R818]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=92</ref> || <small>(sun50i)</small> || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[R828|Allwinner R828]] || <small>(sun55i)</small> || 8 x Cortex-A55 CPU-core<br />
|}<br />
<br />
'''64-bit Heterogeneous'''<br />
{| class="wikitable"<br />
| [[R128|Allwinner R128]] || <small>sun20i</small> || 1 x Cortex-m33, 1 x Xuantie C906, 1 x HiFi5 DSP<br />
|}<br />
<br />
== "T"-series ==<br />
<br />
{| class="wikitable"<br />
| [[T2|Allwinner T2]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=39</ref> || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|-<br />
| [[T3|Allwinner T3]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=41</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[T7|Allwinner T7]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=71</ref> || <small>(sun8i)</small> || 6 x Cortex-A7 CPU-core<br />
|-<br />
| [[T8|Allwinner T8]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=43</ref> || <small>(sun8i)</small> || 8 x Cortex-A7 CPU-core<br />
|-<br />
| [[T113-s3|Allwinner T113-S3]] || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|-<br />
| [[T113-I|Allwinner T113-I]] || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core + 1 x RISC-V [https://occ.t-head.cn/vendor/cpu/index?id=3817197695983423488 T-Head XuanTie C906] CPU-core<br />
|}<br />
<br />
<br />
'''64-bit'''<br />
{| class="wikitable"<br />
| [[T507|Allwinner T507(T5 Series)]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=94</ref> || <small>(sun50i)</small> || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[T527|Allwinner T527]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=94</ref> || <small>(sun55i)</small> || 8 x Cortex-A55 CPU-core<br />
|-<br />
| [[T736|Allwinner T736]] || <small>(sun60i)</small> || 2 x Cortex-A76 CPU-core + 6 x Cortex-A55 CPU-core<br />
|}<br />
<br />
== "V"-series ==<br />
<br />
{| class="wikitable"<br />
| [[V3|Allwinner V3]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=37</ref> || <small>(sun8i)</small> || 1 x Cortex-A7 CPU-core<br />
|-<br />
| [[V3s|Allwinner V3s]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=38</ref> || <small>(sun8i)</small> || 1 x Cortex-A7 CPU-core<br />
|-<br />
| [[V5|Allwinner V5]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=70</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[V40|Allwinner V40]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=36</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[V66|Allwinner V66]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=35</ref> || <small>(sun8i)</small> || 8 x Cortex-A7 CPU-core<br />
|-<br />
| [[V316|Allwinner V316]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=87</ref> || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|-<br />
| [[V536|Allwinner V536]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=88</ref> || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|-<br />
| [[V831|Allwinner V831]] || <small>(sun8i)</small> || 1 x Cortex-A7 CPU-core<br />
|-<br />
| [[V833|Allwinner V833]] || <small>(sun8i)</small> || 1 x Cortex-A7 CPU-core<br />
|}<br />
<br />
== "X" - (B/MR/S/VR/TV) - series ==<br />
<br />
{| class="wikitable"<br />
| [[B288|Allwinner B288]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=59</ref> || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|-<br />
| [[B300|Allwinner B300]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=86</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|}<br />
<br />
{| class="wikitable"<br />
| [[MR100|Allwinner MR100]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=77</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[MR133|Allwinner MR133]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=81</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|}<br />
<br />
{| class="wikitable"<br />
| [[S3|Allwinner S3]]<ref>https://www.allwinnertech.com/index.php?c=product&a=index&id=78</ref> || <small>(sun8i)</small> || 1 x Cortex-A7 CPU-core <br />
|}<br />
<br />
'''64-bit'''<br />
{| class="wikitable"<br />
| [[VR9|Allwinner VR9]]<ref>https://www.allwinnertech.com/index.php?c=product&a=index&id=65</ref> || <small>(sun50i)</small> || 4 x Cortex-A53 CPU-core<br />
|}<br />
<br />
{| class="wikitable"<br />
| [[MR813|Allwinner MR813]] || <small>(sun50i)</small> || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[MR527|Allwinner MR527]] || <small>(sun55i)</small> || 8 x Cortex-A55 CPU-core<br />
|}<br />
<br />
{| class="wikitable"<br />
| [[TV303|Allwinner TV303]] || <small>(sun50i)</small> || 4 x Cortex-A53 CPU-core<br />
|}<br />
<br />
== "RISC-V"-Series ==<br />
{| class="wikitable"<br />
| [[D1|Allwinner D1]]<ref>https://www.allwinnertech.com/index.php?c=product&a=index&id=97</ref> || <small>(sun20i)</small>&nbsp; || 1 x RISC-V [https://occ.t-head.cn/vendor/cpu/index?id=3817197695983423488 T-Head XuanTie C906] CPU-core<br />
|-<br />
| [[D1s|Allwinner D1s (or F133)]]<ref>https://www.allwinnertech.com/index.php?c=product&a=index&id=101</ref> || <small>(sun20i)</small>&nbsp; || 1 x RISC-V [https://occ.t-head.cn/vendor/cpu/index?id=3817197695983423488 T-Head XuanTie C906] CPU-core<br />
|}<br />
<br />
= 2013 naming scheme change =<br />
<br />
Initially, Allwinner named their SoCs chronologically:<br />
* sun4i = A10<br />
* sun5i = A13/A10s<br />
* sun6i = A31<br />
* sun7i = A20<br />
<br />
but, somewhere in 2013, Allwinner decided to update their naming scheme to be based on the ARM core used instead: (taken from the A80 SDK kernel code).<br />
<br />
Note: SoCs with "?" have never appeared on Allwinner's website. <ref>https://github.com/tinalinux/brandy/blob/r40-v1.y/SUNXI_README</ref><br />
<br />
TODO: Add to the following table: [[F1C800]], [[F23]], [[F25]], [[R11]], [[R328]], [[T2]], [[T5]], [[T8]], [[B300]], [[MR100]], [[VR9]], [[F133]], [[R128]], [[MR813]], [[A527]], [[T133-I]], [[T113-S3]], [[MR527]], [[H133]], [[V851s]], [[V851se]], [[D1s|F133-A]], [[D1s|F133-B]] .<br />
<br />
{| class="wikitable"<br />
! sunxi (arm cores) !! sunxiwx (soc id) !! p (rev id) !! soc name !! cores !! notes<br />
|-<br />
| sun3i (arm926ejs) || sun3iw1 (0x1663) || sun3iw1p1 || [[F1C100s]], [[F1C100A]], [[F1C200s]], [[F1C500]], [[F1C500s]], [[F1C600]], [[F1D100]], [[R6]] || 1xARM926EJ-S<br />
|-<br />
| style="text-align: left;" rowspan="4" | sun4i (cortex-a8) <br />
| sun4iw1 (0x1623) || sun4iw1p1 || [[A10]] || 1xCortex-A8<br />
|-<br />
| style="text-align: left;" rowspan="3" | sun4iw2 (0x1625)<br />
| sun4iw2p1 || [[A13]] || 1xCortex-A8<br />
|-<br />
| sun4iw2p2 || [[A12]] || ?<br />
|-<br />
| sun4iw2p3 || [[A10s]] || 1xCortex-A8<br />
|-<br />
| style="text-align: left;" rowspan="23" | sun8i <br />
(cortex-a7 smp)<br />
<br />
| style="text-align: left;" rowspan="2" | sun8iw1 (0x1633)<br />
<br />
| sun8iw1p1 || [[A31]] || 4xCortex-A7<br />
|-<br />
| sun8iw1p2 || [[A31s]] || 4xCortex-A7<br />
|-<br />
| style="text-align: left;" rowspan="2" | sun8iw2 (0x1651)<br />
<br />
| sun8iw2p1 || [[A20]] || 2xCortex-A7<br />
|-<br />
| sun8iw2p2 || ? || ?<br />
|-<br />
| style="text-align: left;" rowspan="2" | sun8iw3 (0x1650)<br />
<br />
| sun8iw3p1 || [[A23]] || 2xCortex-A7<br />
|-<br />
| sun8iw3p2 || ? || ?<br />
|-<br />
| sun8iw5 (0x1667) || sun8iw5p1 || [[A33]], [[R16]] || 4xCortex-A7<br />
|-<br />
| sun8iw6 (0x1673) || sun8iw6p1 || [[A83T]], [[H8]], [[H80]], [[V66]], [[R58]] || 8xCortex-A7<br />
|-<br />
| sun8iw7 (0x1680) || sun8iw7p1 || [[H3]], [[H2+]] || 4xCortex-A7<br />
|-<br />
| style="text-align: left;" rowspan="2" | sun8iw8 (0x1681)<br />
<br />
| sun8iw8p1 || [[V3]], [[S3]], [[V3s]] || 1xCortex-A7 || called V30 in allwinner's kernel source<br />
|-<br />
| sun8iw8p2 || ? || ? || called V33 in allwinner's kernel source<br />
|-<br />
| sun8iw10 (0x1699) || sun8iw10p1 || [[B288]], [[B100]] || 2xCortex-A7<br />
|-<br />
| style="text-align: left;" rowspan="4" | sun8iw11 (0x1701)<br />
<br />
| sun8iw11p1 || [[R40]], [[V40]], [[T3]], [[A40i]], [[A20e]]? || 4xCortex-A7<br />
|-<br />
| sun8iw11p2 || ?? || 4xCortex-A7<br />
|-<br />
| sun8iw11p3 || ?? || 4xCortex-A7<br />
|-<br />
| sun8iw11p4 || ?? || 4xCortex-A7<br />
|-<br />
| sun8iw12 (0x1721) || sun8iw12p1 || [[V5]], [[V100]] || 4xCortex-A7<br />
|-<br />
| sun8iw15 (0x1755) || sun8iw15p1 || [[A50]], [[MR133]], [[R311]] || 4xCortex-A7<br />
|-<br />
| sun8iw16 (0x1816) || sun8iw16p1 || [[V313]], [[V316]], [[V526]], [[V536]], [[V5V200]] || 2xCortex-A7<br />
|-<br />
| sun8iw17 (0x1708) || sun8iw17p1 || [[T7]] || 6xCortex-A7<br />
|-<br />
| sun8iw19 || sun8iw19p1 || [[V533]], [[V833]], [[V831]] || 1xCortex-A7<br />
|-<br />
| sun8iw20 || sun8iw20p1 || [[R528]], [[T113]] || 2xCortex-A7<br />
|-<br />
| sun8iw21 || sun8iw21p1 || [[V853]] || 1xCortex-A7 1xE907 AMP<br />
|-<br />
| style="text-align: left;" rowspan="2" | sun9i <br />
(cortex-a15/cortex-a7 big.LITTLE) <br />
<br />
| style="text-align: left;" rowspan="2" | sun9iw1 (0x1639)<br />
| sun9iw1p1 || [[A80]] || 4xCortex-A7 + 4xCortex-A15<br />
|-<br />
| sun9iw1p2 || [[A80T]] || ?<br />
|-<br />
| style="text-align: left;" | sun20i <br />
(xuantie-c906) <br />
| sun20iw1 (0x1859) || sun20iw1p1 || [[D1]] || 1xC906<br />
|-<br />
| style="text-align: left;" rowspan="8" | sun50i <br />
(cortex-a53 smp) <br />
| sun50iw1 (0x1689) || sun50iw1p1 || [[A64]], [[H64]], [[R18]] || 4xCortex-A53<br />
|-<br />
| sun50iw2 (0x1718) || sun50iw2p1 || [[H5]] || 4xCortex-A53<br />
|-<br />
| sun50iw3 (0x1719) || sun50iw3p1 || [[A63]] || 4xCortex-A53<br />
|-<br />
| sun50iw6 (0x1728) || sun50iw6p1 || [[H6]] || 4xCortex-A53<br />
|-<br />
| sun50iw9 (0x1823) || sun50iw9p1 || [[H313]], [[H503]], [[H513]], [[H616]], [[H618]], [[H700]], [[T507]], [[T517]] || 4xCortex-A53<br />
|-<br />
| sun50iw10 (0x1855) || sun50iw10p1 || [[A100]], [[A133]], [[A53]], [[T509]], [[R818]], [[B810]] || 4xCortex-A53<br />
|-<br />
| sun50iw11 (0x1851) || sun50iw11p1 || [[R329]] || 2xCortex-A53<br />
|-<br />
| sun50iw12 (0x1860) || sun50iw12p1 || [[TV303]] ||4xCortex-A53<br />
|-<br />
| style="text-align: left;" rowspan="1" | sun55i <br />
(cortex-a55 smp big.LITTLE) <br />
| sun55iw3 (0x1890) || sun55iw3p1 || [[A523]], [[T527]], [[R828]] || 8xCortex-A55<br />
|-<br />
| style="text-align: left;" rowspan="2" | sun60i <br />
(cortex-a76 smp big.LITTLE) <br />
| sun60iw1 (0x1xxx) || sun60iw1p1 || [[T736]] || 2xCortex-A76 + 6xCortex-A55<br />
|-<br />
| sun60iw2 (0x1xxx) || sun60iw2p1 || [[A733]] || 2xCortex-A76 + 6xCortex-A55<br />
|-<br />
| style="text-align: left;" rowspan="1" | sun65i <br />
(???) <br />
| sun65iw1 (0x1xxx) || sun65iw1p1 || [[A537]] || ???<br />
|-<br />
|}<br />
<br />
This new naming scheme is of absolutely no value with respect to the rest of the SoC. The actual ARM core(s) used are usually the least important piece of information for SoC support. This table completely ignores the fact that A20 is an updated A10 and is pin compatible. It also ignores the fact that A31 introduced a lot of changes which were carried on to the A23/A33 and possibly A80 parts. It therefore is quite likely that this naming scheme was purely a marketing decision, and that Allwinner marketing will change its mind again.<br />
<br />
= Features =<br />
* CPU: ARMv7-A [http://en.wikipedia.org/wiki/ARM_Cortex-A7 Cortex-A7], [http://en.wikipedia.org/wiki/ARM_Cortex-A15 Cortex-A15] or [http://en.wikipedia.org/wiki/ARM_Cortex-A8 Cortex-A8] Central Processor Unit with (co-)processor extensions:<br />
** Advanced SIMD: [http://en.wikipedia.org/wiki/ARM_architecture#Advanced_SIMD_.28NEON.29 NEON] (ARM's extended general-purpose advanced SIMD vector processing extension engine)<br />
** [[Vector Floating Point Unit]] ([http://en.wikipedia.org/wiki/ARM_architecture#Floating-point_.28VFP.29 VFPU]): ARM VFPv3 lite (Cortex-A8) / VFPv4 (Cortex-A7)<br />
** Security Extensions: <br />
*** [http://en.wikipedia.org/wiki/ARM_architecture#Security_extensions_.28TrustZone.29 TrustZone] secure world<br />
*** [[Security_System|Security accelerator]] supporting AES, DES, 3DES, SHA-1, MD5 and pseudo-random number generation<br />
** [http://en.wikipedia.org/wiki/ARM_architecture#Thumb-2 Thumb-2] instruction set extension for optimized code to reduce memory footprint and improve performance<br />
* GPU: [[Mali400]], Mali400-MP2, SGX544 or PowerVR G6230 Graphics Procesor Unit, supporting OpenGL ES2.<br />
* VPU: [[Cedar Engine]] (Video Processor Unit for audio and video hardware decoding or encoding)<br />
* HDMI-transmitter with [http://en.wikipedia.org/wiki/HDMI#CEC HDMI CEC] (Consumer Electronics Control), with exception of A13 which lacks HDMI-transmitter and SATA-controller<ref>[http://olimex.wordpress.com/2012/04/24/cortex-a8-in-tqfp-sure-allwinner-a13/ "Cortex A8 in TQFP? sure Allwinner A13"] ''Retrieved 23 September 2012''</ref><br />
* Hardware virtualization capabilities (Cortex-A7 only).<br />
* Up to 4GB memory (Cortex-A8), Up to 1TB memory with LPAE (Cortex-A7 only).<br />
<br />
== Comparison table ==<br />
{| class="wikitable"<br />
! scope="row" | !! [[A10]] !! [[A10s]] !! [[A13]] !! [[A20]] !! [[A23]] !! [[A31]] !! [[A31s]] !! [[A33]] !! [[A80]]<br />
|-<br />
! scope="row" | Generation <br />
| sun4i || sun5i || sun5i || sun7i || sun8i || sun6i || sun6i || sun8i || sun9i <br />
|-<br />
! scope="row" | CPU<br />
| Cortex-A8 || Cortex-A8 || Cortex-A8 || Cortex-A7 || Cortex-A7 ||Cortex-A7 || Cortex-A7 || Cortex-A7 || Cortex-A7 / A15 <br />
|-<br />
! scope="row" | CPU Maximum frequency<br />
| 1 GHz|| 1 GHz || 1 GHz|| 960 MHz|| 1.5 GHz || ? GHz || ? GHz || 1.5 GHz || 2 (??) GHz<br />
|-<br />
! scope="row" | Cores<br />
| 1 || 1 || 1 || 2 || 2 || 4 || 4 || 4 || 2 x 4<br />
|-<br />
! scope="row" | Extensions<br />
| NEON, VFPv3, Thumb-2 || NEON, VFPv3, Thumb-2 || NEON, VFPv3, Thumb-2 || NEON, VFPv3 / VFPv4, Thumb-2 ||NEON, VFPv3 / VFPv4, Thumb-2 || NEON, VFPv3 / VFPv4, Thumb-2 || NEON, VFPv3 / VFPv4, Thumb-2 || NEON, VFPv3 / VFPv4, Thumb-2 || ? (A80)<br />
|-<br />
! scope="row" | Memory<br />
| DDR2, DDR3</br> (max 2GB @ DDR800) || DDR2, DDR3</br> (max 2GB @ DDR800) || DDR2, DDR3</br> (max 512MB @ DDR800) || LPDDR3, DDR3,</br>LPDDR2 || DDR3</br>(max 1GB) || 2-channel DDR3, LPDDR2, </br>2-channel DDR3L, DDR3U || DDR3, DDR3L, LPDDR2 || single-channel DDR3, DDR3L</br>(max 1GB) || 2-channel DDR3, DDR3L, LPDDR3, LPDDR2</br> up to 8GB<br />
|-<br />
! scope="row" | GPU<br />
| [[Mali400]]</br>320&nbsp;MHz || [[Mali400]]</br>320&nbsp;MHz || [[Mali400]]</br>320&nbsp;MHz || [[Mali400]]-MP2</br>350&nbsp;MHz || [[Mali400]]-MP2 || SGX544</br>200&nbsp;MHz || SGX544</br>200&nbsp;MHz || [[Mali400]]-MP2 || 64-core PowerVR G6230<br />
|-<br />
! scope="row" | GPU API<br />
| OpenGL ES 2.0, OpenVG 1.1 || OpenGL ES 2.0, OpenVG 1.1 || OpenGL ES 2.0, OpenVG 1.1 || OpenGL ES 2.0, OpenVG 1.1 || OpenGL ES 2.0, OpenVG 1.1 || OpenGL ES 2.0, OpenVG 1.1, OpenCL 1.1, and DirectX 9.3 || OpenGL ES 2.0, OpenVG 1.1, OpenCL 1.1, and DirectX 9.3 || OpenGL ES 2.0, OpenVG 1.1 || OpenGL 3.x, OpenGL ES Next,3.0,2.0, Open CL 1.x, DirectX 11 level 9_3/10_0<ref>http://www.imgtec.com/news/detail.asp?ID=845</ref><br />
|-<br />
! scope="row" | [[Cedar Engine|Video decoder]]<br />
| 2160p || 1080p || 1080p || 2160p, 4K×2K, 1080p 3D || 1080p@60fps || 2160p, 4K×2K, 1080p 3D || 2160p, 1080p 3D || 1080p@60fps || ? (A80)<br />
|-<br />
! scope="row" | [[Cedar Engine|Video encoder]]<br />
| H.264 1080p@30fps, JPEG || H.264 1080p@30fps, JPEG || H.264 1080p@30fps, JPEG || H.264 1080p@30fps, JPEG || 1080p@60fps || H.264 1080p@60fps, JPEG || H264 1080p@30fps, 720p@60fps || H.264 1080p@60fps, JPEG || H.264 HP/VP8 4Kx2K@30fp<br />
|-<br />
! scope="row" | Audio decoder<br />
| AC3, DTS || ? || ? || AC3, DTS || - || ? (A31) || ? (A31S) || ? (A33) || ? (A80)<br />
|-<br />
! scope="row" | Video interfaces<br />
| HDMI 1.3, YPbPr, VGA, CPU/RGB/LVDS LCD || HDMI 1.3, RGB/LVDS LCD || RGB LCD, VGA|| HDMI 1.4, CVBS, YPbPr, VGA, CPU/RGB/LVDS LCD || CPU/RGB/LVDS LCD, MIPI DSI || HDMI 1.4, MIPI DSI, 2-channel LVDS, 2-channel RGB LCD || HDMI 1.4, LVDS, RGB LCD || CPU/RGB/LVDS LCD, MIPI DSI || HDMI 4K, RGB LCD 2048x1536@60fps, dual-channel LVDS 1920x1080@60fps, 4-lane MIPI DSI 1920x1200@60fps, 4-lane eDP 2560x1600@60fps<br />
|-<br />
! scope="row" | Audio interfaces<br />
| I2S, SPDIF, AC97 || I2S, AC97 || I2S, AC97 || I2S, PCM, AC97 || I2S, PCM || 2 I2S, 2 PCM || I2S, 2 PCM || ? (A33) || ? (A80)<br />
|-<br />
! scope="row" | USB OTG<br />
| 1 || 1 || 1 || 1 || 1 || 1 || 1 || ? (A33) || 1<br />
|-<br />
! scope="row" | USB Host<br />
| 2 || 1 || 1 || 2 || 1 || 2 || 2 || ? (A33) || 2x USB Host, USB 3.0/2.0 Dual-Role (host/device)<br />
|-<br />
! scope="row" | Ethernet<br />
| EMAC || EMAC || - || EMAC/GMAC || - || GMAC || GMAC || - || GMAC<br />
|-<br />
! scope="row" | Storage<br />
| NAND (max 64GB), SATA II, SD Card 3.0 || NAND (max 64GB), SD Card 3.0 || NAND (max 64GB), SD Card 3.0 || NAND, MMC, [http://olimex.wordpress.com/2013/04/05/allwinners-a10-and-a20-are-they-really-pin-to-pin-compatible-and-drop-in-replacement/#comment-5452 SATA] || raw NAND, eMMC, SD card || 4 x SD Card, eMMC NAND, 2-channel raw NAND || 4 x SD Card, eMMC NAND, raw NAND || 3 x SD Card, eMMC NAND, raw NAND || 4 x SD/MMC<br />
|-<br />
! scope="row" | Package<br />
| BGA441</br>19&nbsp;mm&nbsp;×&nbsp;19&nbsp;mm</br>0.80&nbsp;mm Pitch || BGA336</br>14&nbsp;mm&nbsp;×&nbsp;14&nbsp;mm</br>0.65&nbsp;mm Pitch || eLQFP176</br>20&nbsp;mm&nbsp;×&nbsp;20&nbsp;mm ||BGA441</br>19&nbsp;mm&nbsp;×&nbsp;19&nbsp;mm</br>0.80&nbsp;mm Pitch || FBGA280</br>14&nbsp;mm&nbsp;x&nbsp;14&nbsp;mm&nbsp;x&nbsp;1.4&nbsp;mm</br>0.80&nbsp;mm Pitch || BGA609</br>18&nbsp;mm&nbsp;×&nbsp;8&nbsp;mm</br>0.65&nbsp;mm Pitch || ? (A31S) || ? (Allwinner: pin compatible with A23) || ? (A80)<br />
|-<br />
! scope="row" | Lithography<br />
| 55 nm || 55 nm|| 55 nm || 40 nm || 40 nm || 40 nm || 40 nm || 40 nm || 28 nm<br />
|}<br />
<ref>https://web.archive.org/web/20130301050520/http://blog.thinkteletronics.com/all-mobile-socsolutions/ All Mobile Soc/Solutions.</ref><br />
<br />
= References =<br />
<references /><br />
<br />
[[Category:System on Chip]]</div>
Frozeus
https://linux-sunxi.org/index.php?title=Allwinner_SoC_Family&diff=25657
Allwinner SoC Family
2024-02-26T20:50:17Z
<p>Frozeus: Add A733</p>
<hr />
<div>= SoC series =<br />
'''A''' series processors are used for mobile applications, mainly referring to tablet application here;<br />
<br />
'''B''' for "Book", used for E-book tablet reader. <br />
<br />
'''H''' for “Homlet”, mainly used in home entertainment applications, including smart OTT boxes, HDMI mini PCs, gaming boxes, etc;<br />
<br />
'''V''' for video-related applications, including video surveillance, automotive DVR, etc;<br />
<br />
'''T''' series processors target the Automotive products like ADAS. <br />
<br />
'''TV''' series processors target to the video-related applications, projector, TV<br />
<br />
'''F''' series are processors based on Allwinner’s melis OS, mainly used in smart video radios, video MP5, etc;<br />
<br />
== "A"-Series ==<br />
Based on ARMv7 Cortex-A cores (Cortex-A7, A8 and A15) targeted for high-end devices like digital media players, tablets, and netbooks:<br />
{| class="wikitable"<br />
| [[A10|Allwinner A10]] || <small>(sun4i)</small> || 1 x Cortex-A8 CPU-core<br />
|-<br />
| [[A13|Allwinner A13]] || <small>(sun5i)</small> || 1 x Cortex-A8 CPU-core<br />
|-<br />
| [[A10s|Allwinner A10s]] || <small>(sun5i)</small> || 1 x Cortex-A8 CPU-core<br />
|-<br />
| [[A20|Allwinner A20]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=45</ref> || <small>(sun7i)</small> || 2 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A23|Allwinner A23]] || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A31|Allwinner A31]] || <small>(sun6i)</small> || 4 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A31s|Allwinner A31s]] || <small>(sun6i)</small> || 4 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A33|Allwinner A33]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=23</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A40i|Allwinner A40i]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=69</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A50|Allwinner A50]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=72</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A80|Allwinner A80]] || <small>(sun9i)</small> || 4 x Cortex-A7 CPU-cores + 4 x Cortex-A15 CPU-cores&nbsp;<br /><small>(using ARM big.LITTLE heterogeneous CPU architecture)</small><br />
|-<br />
| [[A83T|Allwinner A83T]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=24</ref> || <small>(sun8i)</small>&nbsp; || 8 x Cortex-A7 CPU-cores<br />
|}<br />
<br />
'''64-bit'''<br />
<br />
Based on ARMv8 Cortex-A cores (Cortex-A53, A55) targeted for high-end devices like digital media players, tablets, and netbooks:<br />
<br />
{| class="wikitable"<br />
| [[A63|Allwinner A63]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=67</ref> || <small>(sun50i)</small>&nbsp; || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[A64|Allwinner A64]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=9</ref> || <small>(sun50i)</small>&nbsp; || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[A100|Allwinner A100]] || <small>(sun50i)</small>&nbsp; || 4 x Cortex-A53 CPU-cores<br />
|-<br />
| [[A133|Allwinner A133]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=93</ref> || <small>(sun50i)</small> || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[A523|Allwinner A523]] || <small>(sun55i)</small> || 8 x Cortex-A55 CPU-core<br />
|}<br />
<br />
== "F"-Series ==<br />
:'''{{note|The F series is not supported by the linux-sunxi community due to lack of developers and hardware. ''sun3i'' have only official linux support, ''sunii'' have no linux support, only Allwinner's "Melis" RTOS.}}'''<br />
<br />
Based on ARMv5 ARM926-EJS core and currently targeted for low market devices such as cheap ebook readers, etc.<br />
<br />
F1C700 seems to be a remarked A13, and it's ARMv7.<br />
<br />
{| class="wikitable"<br />
| [[C100|Boxchip C100]] || <small>(sun3i)</small><br />
|-<br />
| [[E200|Boxchip E200]] || <small>(sun3i)</small><br />
|-<br />
| [[F10|Boxchip F10]] <small>aka SoChip SC9800 aka Teclast T8100</small>&nbsp; || <small>(sunii)</small><br />
|-<br />
| [[F13|Boxchip F13]] || <small>(sunii)</small><br />
|-<br />
| [[F13|Boxchip F15]] <small>aka SoChip SC8600 aka Teclast T7200</small> || <small>(sunii)</small><br />
|-<br />
| [[F18|Boxchip F18]] || <small>(sunii)</small><br />
|-<br />
| [[F20|Boxchip F20]] || <small>(sun3i)</small><br />
|-<br />
| [[F23|Allwinner F23]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=30</ref> <small>aka F1C100A</small> || <small>(suniv)</small><br />
|-<br />
| [[F25|Allwinner F25]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=31</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C100A|Allwinner F1C100A]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=29</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C100s|Allwinner F1C100s]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=73</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C200s|Allwinner F1C200s]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=74</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C500|Allwinner F1C500]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=27</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C500s|Allwinner F1C500s]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=75</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C600|Allwinner F1C600]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=28</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C700|Allwinner F1C700]] || <small>(sun5i)</small><br />
|-<br />
| [[F1C800|Allwinner F1C800]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=76</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1D100|Allwinner F1D100]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=64</ref> || <small>(suniv)</small><br />
|}<br />
<br />
== "H"-Series ==<br />
Based on ARMv7/ARMv8 Cortex-A cores (A7/A53) targeted for video OTT (over-the-top) boxes and high-end gaming consoles:<br />
{| class="wikitable"<br />
| [[H2+|Allwinner H2+]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=62</ref> || <small>(sun8i)</small>&nbsp; || 4 x Cortex-A7 CPU-core&nbsp;<br />
|-<br />
| [[H3|Allwinner H3]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=47</ref> || <small>(sun8i)</small>&nbsp; || 4 x Cortex-A7 CPU-core&nbsp;<br />
|-<br />
| [[H8|Allwinner H8]] || <small>(sun8i)</small> || 8 x Cortex-A7 CPU-core<br />
|-<br />
| [[H80|Allwinner H80]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=46</ref> || <small>(sun8i)</small> || 8 x Cortex-A7 CPU-core<br />
|-<br />
| [[H133|Allwinner H133]]|| <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|}<br />
<br />
'''64-bit'''<br />
{| class="wikitable"<br />
| [[H5|Allwinner H5]]<ref>https://web.archive.org/web/20180131124325/http://www.allwinnertech.com/index.php?c=product&a=index&id=57</ref>&nbsp; || <small>(sun50i)</small>&nbsp; || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[H6|Allwinner H6]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=66</ref>&nbsp; || <small>(sun50i)</small>&nbsp; || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[H64|Allwinner H64]]<ref>http://web.archive.org/web/20160425223052/http://www.allwinnertech.com/en/clq/H_series/6100.html</ref> || <small>(sun50i)</small> || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[H313|Allwinner H313]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=90</ref> || <small>(sun50i)</small> || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[H616|Allwinner H616]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=89</ref> || <small>(sun50i)</small> || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[H618|Allwinner H618]] || <small>(sun50i)</small> || 4 x Cortex-A53 CPU-core<br />
|}<br />
<br />
== "R"-Series ==<br />
<br />
{| class="wikitable"<br />
| [[R6|Allwinner R6]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=79</ref> || <small>(sun3i)</small> || 1 x ARM926EJ-S CPU-core<br />
|-<br />
| [[R7|Allwinner R7]]<ref>https://web.archive.org/web/20191218202340/http://www.allwinnertech.com/index.php?c=product&a=index&id=82</ref> || <small>(sun8i)</small> || 1 x Cortex-A7 CPU-core<br />
|-<br />
| [[R8|Allwinner R8]]<ref>http://web.archive.org/web/20160510053338/http://www.allwinnertech.com/en/clq/R_series/2015/0514/R8.html</ref> || <small>(sun5i)</small>&nbsp; || 1 x Cortex-A8 CPU-core<br />
|-<br />
| [[R11|Allwinner R11]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=83</ref> || <small>(sun8i)</small> || 1 x Cortex-A7 CPU-core<br />
|-<br />
| [[R16|Allwinner R16]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=51</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[R40|Allwinner R40]]<ref>https://web.archive.org/web/20191229233801/http://www.allwinnertech.com/index.php?c=product&a=index&id=56</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[R58|Allwinner R58]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=49</ref>&nbsp; || <small>(sun8i)</small> || 8 x Cortex-A7 CPU-core<br />
|-<br />
| [[R311|Allwinner R311]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=84</ref>&nbsp; || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[R328|Allwinner R328]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=85</ref>&nbsp; || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|}<br />
<br />
The Allwinner R8 is repackaged version of the A13. This SoC gets used in the minicomputer presented in Next Thing Co.'s [[NextThingCo CHIP|''C.H.I.P.'']] kickstarter project ("The $9 computer")<ref>http://nextthing.co/</ref>.<br />
<br />
By comparing the product pages the R16 seems to be a relabeled version of A33. This is somewhat confirmed by the (identical) SoC ID the BROM reports.<ref>https://groups.google.com/d/msg/linux-sunxi/vx6oQMy-nis/vgVc8d1KBAAJ</ref><br />
<br />
'''64-bit'''<br />
{| class="wikitable"<br />
| [[R18|Allwinner R18]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=68</ref> || <small>sun50i</small> || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[R329|Allwinner R329]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=91</ref>&nbsp; || <small>(sun50i)</small> || 2 x Cortex-A53 CPU-core<br />
|-<br />
| [[R818|Allwinner R818]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=92</ref> || <small>(sun50i)</small> || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[R828|Allwinner R828]] || <small>(sun55i)</small> || 8 x Cortex-A55 CPU-core<br />
|}<br />
<br />
'''64-bit Heterogeneous'''<br />
{| class="wikitable"<br />
| [[R128|Allwinner R128]] || <small>sun20i</small> || 1 x Cortex-m33, 1 x Xuantie C906, 1 x HiFi5 DSP<br />
|}<br />
<br />
== "T"-series ==<br />
<br />
{| class="wikitable"<br />
| [[T2|Allwinner T2]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=39</ref> || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|-<br />
| [[T3|Allwinner T3]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=41</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[T7|Allwinner T7]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=71</ref> || <small>(sun8i)</small> || 6 x Cortex-A7 CPU-core<br />
|-<br />
| [[T8|Allwinner T8]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=43</ref> || <small>(sun8i)</small> || 8 x Cortex-A7 CPU-core<br />
|-<br />
| [[T113-s3|Allwinner T113-S3]] || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|-<br />
| [[T113-I|Allwinner T113-I]] || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core + 1 x RISC-V [https://occ.t-head.cn/vendor/cpu/index?id=3817197695983423488 T-Head XuanTie C906] CPU-core<br />
|}<br />
<br />
<br />
'''64-bit'''<br />
{| class="wikitable"<br />
| [[T507|Allwinner T507(T5 Series)]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=94</ref> || <small>(sun50i)</small> || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[T527|Allwinner T527]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=94</ref> || <small>(sun55i)</small> || 8 x Cortex-A55 CPU-core<br />
|-<br />
| [[T736|Allwinner T736]] || <small>(sun60i)</small> || 2 x Cortex-A76 CPU-core + 6 x Cortex-A55 CPU-core<br />
|}<br />
<br />
== "V"-series ==<br />
<br />
{| class="wikitable"<br />
| [[V3|Allwinner V3]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=37</ref> || <small>(sun8i)</small> || 1 x Cortex-A7 CPU-core<br />
|-<br />
| [[V3s|Allwinner V3s]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=38</ref> || <small>(sun8i)</small> || 1 x Cortex-A7 CPU-core<br />
|-<br />
| [[V5|Allwinner V5]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=70</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[V40|Allwinner V40]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=36</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[V66|Allwinner V66]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=35</ref> || <small>(sun8i)</small> || 8 x Cortex-A7 CPU-core<br />
|-<br />
| [[V316|Allwinner V316]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=87</ref> || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|-<br />
| [[V536|Allwinner V536]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=88</ref> || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|-<br />
| [[V831|Allwinner V831]] || <small>(sun8i)</small> || 1 x Cortex-A7 CPU-core<br />
|-<br />
| [[V833|Allwinner V833]] || <small>(sun8i)</small> || 1 x Cortex-A7 CPU-core<br />
|}<br />
<br />
== "X" - (B/MR/S/VR/TV) - series ==<br />
<br />
{| class="wikitable"<br />
| [[B288|Allwinner B288]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=59</ref> || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|-<br />
| [[B300|Allwinner B300]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=86</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|}<br />
<br />
{| class="wikitable"<br />
| [[MR100|Allwinner MR100]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=77</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[MR133|Allwinner MR133]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=81</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|}<br />
<br />
{| class="wikitable"<br />
| [[S3|Allwinner S3]]<ref>https://www.allwinnertech.com/index.php?c=product&a=index&id=78</ref> || <small>(sun8i)</small> || 1 x Cortex-A7 CPU-core <br />
|}<br />
<br />
'''64-bit'''<br />
{| class="wikitable"<br />
| [[VR9|Allwinner VR9]]<ref>https://www.allwinnertech.com/index.php?c=product&a=index&id=65</ref> || <small>(sun50i)</small> || 4 x Cortex-A53 CPU-core<br />
|}<br />
<br />
{| class="wikitable"<br />
| [[MR813|Allwinner MR813]] || <small>(sun50i)</small> || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[MR527|Allwinner MR527]] || <small>(sun55i)</small> || 8 x Cortex-A55 CPU-core<br />
|}<br />
<br />
{| class="wikitable"<br />
| [[TV303|Allwinner TV303]] || <small>(sun50i)</small> || 4 x Cortex-A53 CPU-core<br />
|}<br />
<br />
== "RISC-V"-Series ==<br />
{| class="wikitable"<br />
| [[D1|Allwinner D1]]<ref>https://www.allwinnertech.com/index.php?c=product&a=index&id=97</ref> || <small>(sun20i)</small>&nbsp; || 1 x RISC-V [https://occ.t-head.cn/vendor/cpu/index?id=3817197695983423488 T-Head XuanTie C906] CPU-core<br />
|-<br />
| [[D1s|Allwinner D1s (or F133)]]<ref>https://www.allwinnertech.com/index.php?c=product&a=index&id=101</ref> || <small>(sun20i)</small>&nbsp; || 1 x RISC-V [https://occ.t-head.cn/vendor/cpu/index?id=3817197695983423488 T-Head XuanTie C906] CPU-core<br />
|}<br />
<br />
= 2013 naming scheme change =<br />
<br />
Initially, Allwinner named their SoCs chronologically:<br />
* sun4i = A10<br />
* sun5i = A13/A10s<br />
* sun6i = A31<br />
* sun7i = A20<br />
<br />
but, somewhere in 2013, Allwinner decided to update their naming scheme to be based on the ARM core used instead: (taken from the A80 SDK kernel code).<br />
<br />
Note: SoCs with "?" have never appeared on Allwinner's website. <ref>https://github.com/tinalinux/brandy/blob/r40-v1.y/SUNXI_README</ref><br />
<br />
TODO: Add to the following table: [[F1C800]], [[F23]], [[F25]], [[R11]], [[R328]], [[T2]], [[T5]], [[T8]], [[B300]], [[MR100]], [[VR9]], [[F133]], [[R128]], [[MR813]], [[A527]], [[T133-I]], [[T113-S3]], [[MR527]], [[H133]], [[V851s]], [[V851se]], [[D1s|F133-A]], [[D1s|F133-B]] .<br />
<br />
{| class="wikitable"<br />
! sunxi (arm cores) !! sunxiwx (soc id) !! p (rev id) !! soc name !! cores !! notes<br />
|-<br />
| sun3i (arm926ejs) || sun3iw1 (0x1663) || sun3iw1p1 || [[F1C100s]], [[F1C100A]], [[F1C200s]], [[F1C500]], [[F1C500s]], [[F1C600]], [[F1D100]], [[R6]] || 1xARM926EJ-S<br />
|-<br />
| style="text-align: left;" rowspan="4" | sun4i (cortex-a8) <br />
| sun4iw1 (0x1623) || sun4iw1p1 || [[A10]] || 1xCortex-A8<br />
|-<br />
| style="text-align: left;" rowspan="3" | sun4iw2 (0x1625)<br />
| sun4iw2p1 || [[A13]] || 1xCortex-A8<br />
|-<br />
| sun4iw2p2 || [[A12]] || ?<br />
|-<br />
| sun4iw2p3 || [[A10s]] || 1xCortex-A8<br />
|-<br />
| style="text-align: left;" rowspan="23" | sun8i <br />
(cortex-a7 smp)<br />
<br />
| style="text-align: left;" rowspan="2" | sun8iw1 (0x1633)<br />
<br />
| sun8iw1p1 || [[A31]] || 4xCortex-A7<br />
|-<br />
| sun8iw1p2 || [[A31s]] || 4xCortex-A7<br />
|-<br />
| style="text-align: left;" rowspan="2" | sun8iw2 (0x1651)<br />
<br />
| sun8iw2p1 || [[A20]] || 2xCortex-A7<br />
|-<br />
| sun8iw2p2 || ? || ?<br />
|-<br />
| style="text-align: left;" rowspan="2" | sun8iw3 (0x1650)<br />
<br />
| sun8iw3p1 || [[A23]] || 2xCortex-A7<br />
|-<br />
| sun8iw3p2 || ? || ?<br />
|-<br />
| sun8iw5 (0x1667) || sun8iw5p1 || [[A33]], [[R16]] || 4xCortex-A7<br />
|-<br />
| sun8iw6 (0x1673) || sun8iw6p1 || [[A83T]], [[H8]], [[H80]], [[V66]], [[R58]] || 8xCortex-A7<br />
|-<br />
| sun8iw7 (0x1680) || sun8iw7p1 || [[H3]], [[H2+]] || 4xCortex-A7<br />
|-<br />
| style="text-align: left;" rowspan="2" | sun8iw8 (0x1681)<br />
<br />
| sun8iw8p1 || [[V3]], [[S3]], [[V3s]] || 1xCortex-A7 || called V30 in allwinner's kernel source<br />
|-<br />
| sun8iw8p2 || ? || ? || called V33 in allwinner's kernel source<br />
|-<br />
| sun8iw10 (0x1699) || sun8iw10p1 || [[B288]], [[B100]] || 2xCortex-A7<br />
|-<br />
| style="text-align: left;" rowspan="4" | sun8iw11 (0x1701)<br />
<br />
| sun8iw11p1 || [[R40]], [[V40]], [[T3]], [[A40i]], [[A20e]]? || 4xCortex-A7<br />
|-<br />
| sun8iw11p2 || ?? || 4xCortex-A7<br />
|-<br />
| sun8iw11p3 || ?? || 4xCortex-A7<br />
|-<br />
| sun8iw11p4 || ?? || 4xCortex-A7<br />
|-<br />
| sun8iw12 (0x1721) || sun8iw12p1 || [[V5]], [[V100]] || 4xCortex-A7<br />
|-<br />
| sun8iw15 (0x1755) || sun8iw15p1 || [[A50]], [[MR133]], [[R311]] || 4xCortex-A7<br />
|-<br />
| sun8iw16 (0x1816) || sun8iw16p1 || [[V313]], [[V316]], [[V526]], [[V536]], [[V5V200]] || 2xCortex-A7<br />
|-<br />
| sun8iw17 (0x1708) || sun8iw17p1 || [[T7]] || 6xCortex-A7<br />
|-<br />
| sun8iw19 || sun8iw19p1 || [[V533]], [[V833]], [[V831]] || 1xCortex-A7<br />
|-<br />
| sun8iw20 || sun8iw20p1 || [[R528]], [[T113]] || 2xCortex-A7<br />
|-<br />
| sun8iw21 || sun8iw21p1 || [[V853]] || 1xCortex-A7 1xE907 AMP<br />
|-<br />
| style="text-align: left;" rowspan="2" | sun9i <br />
(cortex-a15/cortex-a7 big.LITTLE) <br />
<br />
| style="text-align: left;" rowspan="2" | sun9iw1 (0x1639)<br />
| sun9iw1p1 || [[A80]] || 4xCortex-A7 + 4xCortex-A15<br />
|-<br />
| sun9iw1p2 || [[A80T]] || ?<br />
|-<br />
| style="text-align: left;" | sun20i <br />
(xuantie-c906) <br />
| sun20iw1 (0x1859) || sun20iw1p1 || [[D1]] || 1xC906<br />
|-<br />
| style="text-align: left;" rowspan="8" | sun50i <br />
(cortex-a53 smp) <br />
| sun50iw1 (0x1689) || sun50iw1p1 || [[A64]], [[H64]], [[R18]] || 4xCortex-A53<br />
|-<br />
| sun50iw2 (0x1718) || sun50iw2p1 || [[H5]] || 4xCortex-A53<br />
|-<br />
| sun50iw3 (0x1719) || sun50iw3p1 || [[A63]] || 4xCortex-A53<br />
|-<br />
| sun50iw6 (0x1728) || sun50iw6p1 || [[H6]] || 4xCortex-A53<br />
|-<br />
| sun50iw9 (0x1823) || sun50iw9p1 || [[H313]], [[H503]], [[H513]], [[H616]], [[H618]], [[H700]], [[T507]], [[T517]] || 4xCortex-A53<br />
|-<br />
| sun50iw10 (0x1855) || sun50iw10p1 || [[A100]], [[A133]], [[A53]], [[T509]], [[R818]], [[B810]] || 4xCortex-A53<br />
|-<br />
| sun50iw11 (0x1851) || sun50iw11p1 || [[R329]] || 2xCortex-A53<br />
|-<br />
| sun50iw12 (0x1860) || sun50iw12p1 || [[TV303]] ||4xCortex-A53<br />
|-<br />
| style="text-align: left;" rowspan="1" | sun55i <br />
(cortex-a55 smp big.LITTLE) <br />
| sun55iw3 (0x1890) || sun55iw3p1 || [[A523]], [[T527]], [[R828]] || 8xCortex-A55<br />
|-<br />
| style="text-align: left;" rowspan="2" | sun60i <br />
(cortex-a76 smp big.LITTLE) <br />
| sun60iw1 (0x1xxx) || sun60iw1p1 || [[T736]] || 2xCortex-A76 + 6xCortex-A55<br />
|-<br />
| sun60iw2 (0x1xxx) || sun60iw2p1 || [[A733]] || 2xCortex-A76 + 6xCortex-A55<br />
|-<br />
|}<br />
<br />
This new naming scheme is of absolutely no value with respect to the rest of the SoC. The actual ARM core(s) used are usually the least important piece of information for SoC support. This table completely ignores the fact that A20 is an updated A10 and is pin compatible. It also ignores the fact that A31 introduced a lot of changes which were carried on to the A23/A33 and possibly A80 parts. It therefore is quite likely that this naming scheme was purely a marketing decision, and that Allwinner marketing will change its mind again.<br />
<br />
= Features =<br />
* CPU: ARMv7-A [http://en.wikipedia.org/wiki/ARM_Cortex-A7 Cortex-A7], [http://en.wikipedia.org/wiki/ARM_Cortex-A15 Cortex-A15] or [http://en.wikipedia.org/wiki/ARM_Cortex-A8 Cortex-A8] Central Processor Unit with (co-)processor extensions:<br />
** Advanced SIMD: [http://en.wikipedia.org/wiki/ARM_architecture#Advanced_SIMD_.28NEON.29 NEON] (ARM's extended general-purpose advanced SIMD vector processing extension engine)<br />
** [[Vector Floating Point Unit]] ([http://en.wikipedia.org/wiki/ARM_architecture#Floating-point_.28VFP.29 VFPU]): ARM VFPv3 lite (Cortex-A8) / VFPv4 (Cortex-A7)<br />
** Security Extensions: <br />
*** [http://en.wikipedia.org/wiki/ARM_architecture#Security_extensions_.28TrustZone.29 TrustZone] secure world<br />
*** [[Security_System|Security accelerator]] supporting AES, DES, 3DES, SHA-1, MD5 and pseudo-random number generation<br />
** [http://en.wikipedia.org/wiki/ARM_architecture#Thumb-2 Thumb-2] instruction set extension for optimized code to reduce memory footprint and improve performance<br />
* GPU: [[Mali400]], Mali400-MP2, SGX544 or PowerVR G6230 Graphics Procesor Unit, supporting OpenGL ES2.<br />
* VPU: [[Cedar Engine]] (Video Processor Unit for audio and video hardware decoding or encoding)<br />
* HDMI-transmitter with [http://en.wikipedia.org/wiki/HDMI#CEC HDMI CEC] (Consumer Electronics Control), with exception of A13 which lacks HDMI-transmitter and SATA-controller<ref>[http://olimex.wordpress.com/2012/04/24/cortex-a8-in-tqfp-sure-allwinner-a13/ "Cortex A8 in TQFP? sure Allwinner A13"] ''Retrieved 23 September 2012''</ref><br />
* Hardware virtualization capabilities (Cortex-A7 only).<br />
* Up to 4GB memory (Cortex-A8), Up to 1TB memory with LPAE (Cortex-A7 only).<br />
<br />
== Comparison table ==<br />
{| class="wikitable"<br />
! scope="row" | !! [[A10]] !! [[A10s]] !! [[A13]] !! [[A20]] !! [[A23]] !! [[A31]] !! [[A31s]] !! [[A33]] !! [[A80]]<br />
|-<br />
! scope="row" | Generation <br />
| sun4i || sun5i || sun5i || sun7i || sun8i || sun6i || sun6i || sun8i || sun9i <br />
|-<br />
! scope="row" | CPU<br />
| Cortex-A8 || Cortex-A8 || Cortex-A8 || Cortex-A7 || Cortex-A7 ||Cortex-A7 || Cortex-A7 || Cortex-A7 || Cortex-A7 / A15 <br />
|-<br />
! scope="row" | CPU Maximum frequency<br />
| 1 GHz|| 1 GHz || 1 GHz|| 960 MHz|| 1.5 GHz || ? GHz || ? GHz || 1.5 GHz || 2 (??) GHz<br />
|-<br />
! scope="row" | Cores<br />
| 1 || 1 || 1 || 2 || 2 || 4 || 4 || 4 || 2 x 4<br />
|-<br />
! scope="row" | Extensions<br />
| NEON, VFPv3, Thumb-2 || NEON, VFPv3, Thumb-2 || NEON, VFPv3, Thumb-2 || NEON, VFPv3 / VFPv4, Thumb-2 ||NEON, VFPv3 / VFPv4, Thumb-2 || NEON, VFPv3 / VFPv4, Thumb-2 || NEON, VFPv3 / VFPv4, Thumb-2 || NEON, VFPv3 / VFPv4, Thumb-2 || ? (A80)<br />
|-<br />
! scope="row" | Memory<br />
| DDR2, DDR3</br> (max 2GB @ DDR800) || DDR2, DDR3</br> (max 2GB @ DDR800) || DDR2, DDR3</br> (max 512MB @ DDR800) || LPDDR3, DDR3,</br>LPDDR2 || DDR3</br>(max 1GB) || 2-channel DDR3, LPDDR2, </br>2-channel DDR3L, DDR3U || DDR3, DDR3L, LPDDR2 || single-channel DDR3, DDR3L</br>(max 1GB) || 2-channel DDR3, DDR3L, LPDDR3, LPDDR2</br> up to 8GB<br />
|-<br />
! scope="row" | GPU<br />
| [[Mali400]]</br>320&nbsp;MHz || [[Mali400]]</br>320&nbsp;MHz || [[Mali400]]</br>320&nbsp;MHz || [[Mali400]]-MP2</br>350&nbsp;MHz || [[Mali400]]-MP2 || SGX544</br>200&nbsp;MHz || SGX544</br>200&nbsp;MHz || [[Mali400]]-MP2 || 64-core PowerVR G6230<br />
|-<br />
! scope="row" | GPU API<br />
| OpenGL ES 2.0, OpenVG 1.1 || OpenGL ES 2.0, OpenVG 1.1 || OpenGL ES 2.0, OpenVG 1.1 || OpenGL ES 2.0, OpenVG 1.1 || OpenGL ES 2.0, OpenVG 1.1 || OpenGL ES 2.0, OpenVG 1.1, OpenCL 1.1, and DirectX 9.3 || OpenGL ES 2.0, OpenVG 1.1, OpenCL 1.1, and DirectX 9.3 || OpenGL ES 2.0, OpenVG 1.1 || OpenGL 3.x, OpenGL ES Next,3.0,2.0, Open CL 1.x, DirectX 11 level 9_3/10_0<ref>http://www.imgtec.com/news/detail.asp?ID=845</ref><br />
|-<br />
! scope="row" | [[Cedar Engine|Video decoder]]<br />
| 2160p || 1080p || 1080p || 2160p, 4K×2K, 1080p 3D || 1080p@60fps || 2160p, 4K×2K, 1080p 3D || 2160p, 1080p 3D || 1080p@60fps || ? (A80)<br />
|-<br />
! scope="row" | [[Cedar Engine|Video encoder]]<br />
| H.264 1080p@30fps, JPEG || H.264 1080p@30fps, JPEG || H.264 1080p@30fps, JPEG || H.264 1080p@30fps, JPEG || 1080p@60fps || H.264 1080p@60fps, JPEG || H264 1080p@30fps, 720p@60fps || H.264 1080p@60fps, JPEG || H.264 HP/VP8 4Kx2K@30fp<br />
|-<br />
! scope="row" | Audio decoder<br />
| AC3, DTS || ? || ? || AC3, DTS || - || ? (A31) || ? (A31S) || ? (A33) || ? (A80)<br />
|-<br />
! scope="row" | Video interfaces<br />
| HDMI 1.3, YPbPr, VGA, CPU/RGB/LVDS LCD || HDMI 1.3, RGB/LVDS LCD || RGB LCD, VGA|| HDMI 1.4, CVBS, YPbPr, VGA, CPU/RGB/LVDS LCD || CPU/RGB/LVDS LCD, MIPI DSI || HDMI 1.4, MIPI DSI, 2-channel LVDS, 2-channel RGB LCD || HDMI 1.4, LVDS, RGB LCD || CPU/RGB/LVDS LCD, MIPI DSI || HDMI 4K, RGB LCD 2048x1536@60fps, dual-channel LVDS 1920x1080@60fps, 4-lane MIPI DSI 1920x1200@60fps, 4-lane eDP 2560x1600@60fps<br />
|-<br />
! scope="row" | Audio interfaces<br />
| I2S, SPDIF, AC97 || I2S, AC97 || I2S, AC97 || I2S, PCM, AC97 || I2S, PCM || 2 I2S, 2 PCM || I2S, 2 PCM || ? (A33) || ? (A80)<br />
|-<br />
! scope="row" | USB OTG<br />
| 1 || 1 || 1 || 1 || 1 || 1 || 1 || ? (A33) || 1<br />
|-<br />
! scope="row" | USB Host<br />
| 2 || 1 || 1 || 2 || 1 || 2 || 2 || ? (A33) || 2x USB Host, USB 3.0/2.0 Dual-Role (host/device)<br />
|-<br />
! scope="row" | Ethernet<br />
| EMAC || EMAC || - || EMAC/GMAC || - || GMAC || GMAC || - || GMAC<br />
|-<br />
! scope="row" | Storage<br />
| NAND (max 64GB), SATA II, SD Card 3.0 || NAND (max 64GB), SD Card 3.0 || NAND (max 64GB), SD Card 3.0 || NAND, MMC, [http://olimex.wordpress.com/2013/04/05/allwinners-a10-and-a20-are-they-really-pin-to-pin-compatible-and-drop-in-replacement/#comment-5452 SATA] || raw NAND, eMMC, SD card || 4 x SD Card, eMMC NAND, 2-channel raw NAND || 4 x SD Card, eMMC NAND, raw NAND || 3 x SD Card, eMMC NAND, raw NAND || 4 x SD/MMC<br />
|-<br />
! scope="row" | Package<br />
| BGA441</br>19&nbsp;mm&nbsp;×&nbsp;19&nbsp;mm</br>0.80&nbsp;mm Pitch || BGA336</br>14&nbsp;mm&nbsp;×&nbsp;14&nbsp;mm</br>0.65&nbsp;mm Pitch || eLQFP176</br>20&nbsp;mm&nbsp;×&nbsp;20&nbsp;mm ||BGA441</br>19&nbsp;mm&nbsp;×&nbsp;19&nbsp;mm</br>0.80&nbsp;mm Pitch || FBGA280</br>14&nbsp;mm&nbsp;x&nbsp;14&nbsp;mm&nbsp;x&nbsp;1.4&nbsp;mm</br>0.80&nbsp;mm Pitch || BGA609</br>18&nbsp;mm&nbsp;×&nbsp;8&nbsp;mm</br>0.65&nbsp;mm Pitch || ? (A31S) || ? (Allwinner: pin compatible with A23) || ? (A80)<br />
|-<br />
! scope="row" | Lithography<br />
| 55 nm || 55 nm|| 55 nm || 40 nm || 40 nm || 40 nm || 40 nm || 40 nm || 28 nm<br />
|}<br />
<ref>https://web.archive.org/web/20130301050520/http://blog.thinkteletronics.com/all-mobile-socsolutions/ All Mobile Soc/Solutions.</ref><br />
<br />
= References =<br />
<references /><br />
<br />
[[Category:System on Chip]]</div>
Frozeus
https://linux-sunxi.org/index.php?title=Linux_mainlining_effort&diff=25325
Linux mainlining effort
2023-05-02T21:40:11Z
<p>Frozeus: H6 Deinterlace has been merged in 5.5</p>
<hr />
<div>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.<br />
<br />
=Overview=<br />
The idea is to submit the code needed to run the Linux kernel on Allwinner SoCs upstream, ie. to the official Linux kernel.<br />
<br />
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.<ref>http://www.elinux.org/images/a/ad/Arm-soc-checklist.pdf</ref><ref>[http://www.cnx-software.com/2013/01/16/your-new-arm-soc-linux-support-check-list-elce-2012/ Your New ARM SoC Linux Support Check-List – ELCE 2012]</ref><br />
<br />
Where relevant, I have attempted to include who is currently working on an item, mostly separate from any particular mainlining goal.<br />
<br />
=Status=<br />
<br />
The [[Mainline_Kernel_Howto|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|Mainline U-Boot howto]].<br />
<br />
The [[:Category:Mainline_Kernel | Mainline Kernel category ]] gives an overview of currently supported devices.<br />
<br />
== Status Matrix ==<br />
<br />
The goal of this matrix is to give an easy view of work on each SoC worked on by linux-sunxi.<br />
<br />
{| class="wikitable" style="text-align: center; width: 100%"<br />
|-<br />
! colspan="2" style="text-align: left; width: 13%" | Model<br />
! [[F1C100s|F1C-<br>100s<br>200s]]<br />
! [[A10]]<br />
! [[A10s]]<br />
! [[A13]]<br>[[R8]]<br />
! [[GR8]]<br />
! [[A20]]<br>[[T2]]<br />
! [[R40]]<br>[[T3]]<br>[[A40i]]<br />
! [[A80]]<br />
! [[A31]]<br />
! [[A23]]<br />
! [[A33]]<br>[[R16]]<br />
! [[A83T]]<br />
! [[H3]]<br />
! [[S3]]<br>[[S3L]]<br>[[V3]]<br>[[V3s]]<br />
! [[A64]]<br />
! [[H5]]<br />
! [[H6]]<br />
! [[A50]]<br />
! [[V831]]<br>[[V833]]<br />
! [[H616]]<br />
! [[A100]]<br>[[A133]]<br />
! [[R329]]<br />
! [[D1]]<br />
<br />
|-<br />
| style="text-align: left;" rowspan="4" | ADC<br />
| style="text-align: left;" | GPADC<br />
| N/A<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | [[LRADC|LRADC]]<br />
| style="background: lightgreen;" | 6.2<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: darkgreen; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.19<br />
| style="background: lightgreen;" | 5.19<br />
<br />
|-<br />
| style="text-align: left;" | Thermal<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 5.7<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| N/A<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" | Touch<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.0<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" rowspan="6" | Audio<br />
| style="text-align: left;" | AC97<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | [[Audio Codec|Analog Codec]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.11<br />
| N/A<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" | Audio Hub<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | DMIC<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 6.1<br />
| style="background: darkgreen; color: white;" | ?<br />
| N/A<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
<br />
|-<br />
| style="text-align: left;" | I2S<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: darkgreen; color: white;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.11<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.18<br />
| style="background: lightgreen;" | 5.18<br />
<br />
|-<br />
| style="text-align: left;" | [[SPDIF]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.7<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.7<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.11<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" rowspan="4" | [[CSI|Camera]]<br />
| style="text-align: left;" | BT656<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
<br />
|-<br />
| style="text-align: left;" | ISP<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
<br />
|-<br />
| style="text-align: left;" | MIPI CSI-2<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| N/A<br />
| style="background: lightgreen;" | 5.19<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
<br />
|-<br />
| style="text-align: left;" | Parallel<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | CAN bus<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 5.17<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Clocks<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.10<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.10<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | [[Linux_mainlining_effort#Core_Stuff|WIP]]<br />
| style="background: lightgreen;" | 5.12<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: orange;" | WIP<br />
| style="background: lightgreen;" | 5.17<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | CPUFreq (DVFS)<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.9<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | CPUIdle<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: orange;" | Crust<br />
| style="background: red;" | NO<br />
| style="background: orange;" | Crust<br />
| style="background: orange;" | Crust<br />
| style="background: orange;" | Crust<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: orange;" | SBI<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[Cryptographic_Hardware_Accelerators|Crypto]]<br />
| N/A<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | 6.3<br />
<br />
|-<br />
| style="text-align: left;" rowspan="9" | [https://dri.freedesktop.org/wiki/DRM/ Display (DRM)]<br />
| style="text-align: left;" | CVBS<br />
| style="background: red;" | NO<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9 ?<br />
| style="background: lightgreen;" | 4.7<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | G2D<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | HDMI Audio<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | HDMI CEC<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.14<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.17<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | HDMI Video<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.13<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.17<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" | LVDS<br />
| N/A<br />
| style="background: darkgreen; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.7<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.16<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | MIPI DSI<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.6<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | 6.2<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 6.2<br />
<br />
|-<br />
| style="text-align: left;" | RGB<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.7<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.16<br />
| N/A<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 5.3<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
<br />
|-<br />
| style="text-align: left;" | VGA<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Display (SimpleFB)<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | DMA<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 6.1<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.19<br />
<br />
|-<br />
| style="text-align: left;" rowspan="2" | [[Ethernet]]<br />
| style="text-align: left;" | [[Ethernet#EMAC|EMAC]]<br />
| N/A<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.11<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 5.1<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.15<br />
<br />
|-<br />
| style="text-align: left;" | [[Ethernet#GMAC|GMAC]]<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: lightgreen;" | 3.17<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" rowspan="2" | GPU (3D)<br />
| style="text-align: left;" | [[Mali]]<br />
| N/A<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 5.10<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | 5.2<br />
| N/A<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | [[PowerVR]]<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | HW Spinlocks<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[I2C]]<br />
| style="background: lightgreen;" | 6.2<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.13<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | IOMMU<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" rowspan="2" | [[IR]]<br />
| style="text-align: left;" | [[IR|IR RX]]<br />
| style="background: lightgreen;" | 6.2<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.0<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 4.6<br />
| N/A<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | IR TX<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Keypad<br />
| N/A<br />
| style="background: orange;" | WIP<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | WIP<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | LDOs<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | LEDC<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | MBUS<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.17<br />
| style="background: lightgreen;" | 5.17<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | MsgBox<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: lightgreen;" | 5.8<br />
| N/A<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | PCIe<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]] <ref name="h6-pcie">Allwinner H6 has a quirky PCIe controller that doesn't map the PCIe address space properly to CPU,<br />
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/</ref><br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Pinctrl<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | [[Linux_mainlining_effort#Core_Stuff|WIP]]<br />
| style="background: lightgreen;" | 5.12<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: orange;" | WIP<br />
| style="background: lightgreen;" | 6.0<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[PMU]] (perf, DT only)<br />
| N/A<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[PWM_Controller|PWM]]<br />
| style="background: lightgreen;" | 6.2<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" rowspan="2" | Remoteproc<br />
| style="text-align: left;" | AIPU<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | DSP<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[RSB]]<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.3<br />
| N/A<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.12<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[RTC]]<br />
| N/A<br />
| style="background: lightgreen;" | 3.14<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 5.0<br />
| N/A<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| N/A<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | [[Linux_mainlining_effort#Core_Stuff|WIP]]<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
| style="background: lightgreen;" | 6.0<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | SID (eFuse)<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.18<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | SMP<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: lightgreen;" | PSCI<br />
| N/A<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | PSCI<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SPIdev|SPI]]<br />
| style="background: lightgreen;" | 5.19<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.7<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | [[Linux_mainlining_effort#Core_Stuff|WIP]]<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SRAM Controller|SRAM]]<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 5.10<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 4.19<br />
| N/A<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 6.1<br />
<br />
|-<br />
| style="text-align: left;" rowspan="4" | Storage<br />
| style="text-align: left;" | EMCE<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | [[NAND]]<br />
| N/A<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 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 [[MTD_Driver#Challenges|this page]] </ref><br />
| style="background: lightgreen;" | 4.9 <ref name="mlc" /><br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9 <ref name="mlc"/><br />
| style="background: lightgreen;" | 4.9 <ref name="mlc" /><br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| N/A<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | [[SATA]]<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.20<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | [[eMMC|SD/MMC]]<br />
| style="background: lightgreen;" | 5.19<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: orange;" | [[Linux_mainlining_effort#Core_Stuff|WIP]]<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: lightgreen;" | 5.12<br />
| style="background: orange;" | WIP<br />
| style="background: lightgreen;" | 5.18<br />
<br />
|-<br />
| style="text-align: left;" rowspan="3" | Timer<br />
| style="text-align: left;" | Arch Timer<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: orange;" | WIP<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" | HSTIMER<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
<br />
|-<br />
| style="text-align: left;" | TIMER<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 5.14<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.14<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.14<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
<br />
|-<br />
| style="text-align: left;" rowspan="3" | [[USB]]<br />
| style="text-align: left;" | [[USB]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 6.1.3<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.18<br />
<br />
|-<br />
| style="text-align: left;" | [[USB_OTG_Controller_Register_guide#USB_OTG|USB OTG]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 6.1.3<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.18<br />
<br />
|-<br />
| style="text-align: left;" | USB3<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.5<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[Video_Engine|VE]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: red;" | NO<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.17<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Watchdog<br />
| style="background: lightgreen;" | 5.19<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: orange;" | [[Linux_mainlining_effort#Core_Stuff|WIP]]<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 5.16<br />
| style="background: lightgreen;" | 5.16<br />
<br />
|-<br />
! colspan="2" style="text-align: left; width: 13%" | Model<br />
! [[F1C100s|F1C-<br>100s<br>200s]]<br />
! [[A10]]<br />
! [[A10s]]<br />
! [[A13]]<br>[[R8]]<br />
! [[GR8]]<br />
! [[A20]]<br>[[T2]]<br />
! [[R40]]<br>[[T3]]<br>[[A40i]]<br />
! [[A80]]<br />
! [[A31]]<br />
! [[A23]]<br />
! [[A33]]<br>[[R16]]<br />
! [[A83T]]<br />
! [[H3]]<br />
! [[S3]]<br>[[S3L]]<br>[[V3]]<br>[[V3s]]<br />
! [[A64]]<br />
! [[H5]]<br />
! [[H6]]<br />
! [[A50]]<br />
! [[V831]]<br>[[V833]]<br />
! [[H616]]<br />
! [[A100]]<br>[[A133]]<br />
! [[R329]]<br />
! [[D1]]<br />
|}<br />
<br />
{| class="wikitable" style="text-align: center;"<br />
|-<br />
! Legend<br />
|-<br />
| style="background: lightgreen;" | In Linux mainline since version x<br />
|-<br />
| style="background: darkgreen;" | Nobody works on it, but it should be compatible with already done drivers<br />
|-<br />
| style="background: orange;" | Somebody works on it<br />
|-<br />
| style="background: red;" | No support, nobody works on it<br />
|-<br />
| style="background: black; color: white;" | support impossible<br />
|-<br />
| style="background: grey; color: white;" | Status is unknown/to be completed<br />
|}<br />
<br />
== Work In Progress ==<br />
<br />
=== Core Stuff ===<br />
*[[R528]]/[[T113]] Clocks Samuel Holland [https://lore.kernel.org/linux-sunxi/20221231231429.18357-1-samuel@sholland.org/T/ clk: sunxi-ng: Allwinner R528/T113 clock support]<br />
<br />
*[[R329]] Clocks & Pinctrl / RTC / MMC - Icenowy Zheng [https://lore.kernel.org/linux-sunxi/20220422140902.1058101-1-icenowy@aosc.io/T/#u Initial support for Allwinner R329] <br />
<br />
*[[V831]] / [[V833]] Clocks & Pinctrl / RTC / MMC / Watchdog / SPI - Icenowy Zheng [https://patchwork.kernel.org/project/linux-arm-kernel/cover/20201212040157.3639864-1-icenowy@aosc.io/ Support for Allwinner V831 SoC]<br />
<br />
*[[D1]]/[[D1s]] platform support Samuel Holland [https://lore.kernel.org/linux-sunxi/20221231233851.24923-1-samuel@sholland.org/T/#u riscv: Allwinner D1/D1s platform support]<br />
<br />
*[[AR100]] firmware (WiP: Samuel Holland) [https://github.com/crust-firmware/crust ARISC firmware for sunxi SoCs ]<br />
<br />
* [[A13]] PSCI Suspend / Resume / CPUIdle (WiP: Antoine Tenart) [http://lists.denx.de/pipermail/u-boot/2016-September/265453.html patch-v1]<br />
<br />
=== Major drivers ===<br />
* [[F1C100s]] USB Andre Przywara & Icenowy Zheng [https://lore.kernel.org/linux-sunxi/20230111015332.172021-1-andre.przywara@arm.com/T/ ARM: suniv: USB and two new boards support]<br />
<br />
* [[A100]] DMA/PMU/Watchdog/USB2/USB OTG/MMC(eMMC, SD) Frank Lee [https://patchwork.kernel.org/project/linux-arm-kernel/cover/cover.1604988979.git.frank@allwinnertech.com/ Second step support for A100]<br />
<br />
* [[V3s]] ISP (Image Signal Processor) Paul Kocialkowski [https://bootlin.com/blog/initial-allwinner-v3-isp-support-in-mainline-linux/ initial-allwinner-v3-isp-support-in-mainline-linux]<br />
<br />
* [[H6]] Hypervisor for PCIe [https://forum.armbian.com/topic/13529-a-try-on-utilizing-h6-pcie-with-virtualization/ A try on utilizing H6 PCIe with "Virtualization"]<br />
<br />
* [[A64]] / [[H3]] / [[H5]] / [[H6]] HDMI Audio - Clément Péron / Marcus Cooper / Jernej Škrabec [https://patchwork.kernel.org/cover/11510511/ Add Allwinner H3/H5/A64 HDMI audio]<br />
<br />
* [[R40]] MIPI-DSI WIP Jagan Teki [https://patchwork.kernel.org/cover/11314031/ drm/sun4i: Allwinner R40 MIPI-DSI support v3] <br />
<br />
* [[AC100]] Audio codec WiP Ondrej Jirman [https://megous.com/git/linux/commit/?h=orange-pi-5.5&id=170d38d650f67657600d4e0e868e0e7110b89ee1 digital part] [https://megous.com/git/linux/commit/?h=orange-pi-5.5&id=ee424255a6fb9280ac27c1953019b768ca973ca7 analog part]<br />
<br />
* [[V3s]] SRAM & Video Decoding Engine (Cedrus) WiP Martin Cerveny [https://patchwork.kernel.org/project/linux-arm-kernel/list/?series=347787 Enable video decoder] ([https://github.com/mcerveny/linux/commits/v3s_videocodec_v4 testing with attached LCD])<br />
* [[H6]] VP9 decoder (Hantro G2) WiP jernej [https://github.com/jernejsk/linux-1/commits/vp9 branch]<br />
<br />
=== Minor drivers ===<br />
<!-- Please move the newest entry to the top --><br />
* [[F1C100s]] USB PHY Andre Przywara [https://lore.kernel.org/linux-sunxi/20230109012223.4079299-1-andre.przywara@arm.com/T/ phy: sun4i-usb: add support for the USB PHY on F1C100s SoC]<br />
* [[D1]] IOMMU Samuel Holland [https://lore.kernel.org/linux-sunxi/20230103010903.11181-1-samuel@sholland.org/T/ iommu/sun50i: Allwinner D1 support]<br />
* [[D1]] System LDOs Samuel Holland [https://lore.kernel.org/linux-sunxi/20221208084127.17443-1-samuel@sholland.org/T/ regulator: Add support for Allwinner D1 system LDOs]<br />
* [[D1]] Video Engine Samuel Holland [https://lore.kernel.org/linux-sunxi/20221231164628.19688-1-samuel@sholland.org/T/ Allwinner D1 video engine support]<br />
* [[D1]] / [[D1s]] / [[A100]] / [[R329]] LEDC Samuel Holland [https://lore.kernel.org/linux-sunxi/20221231235541.13568-1-samuel@sholland.org/T/#u leds: Allwinner A100 LED controller support]<br />
* [[R40]]/[[T3]]/[[A40i]] RTP/LRADC Evgeny Boger [https://lore.kernel.org/linux-sunxi/20211119191456.510435-1-boger@wirenboard.com/]<br />
* [[R40]]/[[T3]]/[[A40i]] EMAC Evgeny Boger [https://lore.kernel.org/linux-sunxi/20220111160600.58384-1-boger@wirenboard.com/ support for two Ethernet ports on Allwinner R40]<br />
* [[R40]]/[[T3]]/[[A40i]] USB OTG qianfan Zhao [https://lore.kernel.org/linux-sunxi/20220518101706.26869-1-qianfanguijin@163.com/T/ ARM: sun8i-r40: Enable usb otg support]<br />
* [[V3]] I2S Tobias Schramm [https://patchwork.kernel.org/project/linux-arm-kernel/list/?series=482161&archive=both&state=* Add missing peripherals to Allwinner V3s/V3 device trees]<br />
* [[H3]] / [[H5]] CVBS WIP Jernej Skrabec [https://github.com/LibreELEC/LibreELEC.tv/blob/master/projects/Allwinner/patches/linux/0036-wip-h3-h5-cvbs.patch Add H3/H5 TVE support]<br />
* [[A100]] CPUFreq (DVFS) Shuosheng Huang [https://patchwork.kernel.org/project/linux-arm-kernel/list/?series=396055&archive=both&state=* cpufreq: sun50i: add a100 cpufreq support]<br />
* [[A64]] hwspinlock WIP Nikolay Borisov [https://patchwork.kernel.org/cover/11373645/ Add support for hwspinlock on A64 SoC] <br />
* [[A83T]] / [[A64]] / [[H3]] hwspinlock WIP Corentin Labbe (montjoie) [https://lore.kernel.org/patchwork/patch/706512/ RFC,1/3][https://lore.kernel.org/patchwork/patch/706511/ RFC,2/3][https://lore.kernel.org/patchwork/patch/706513/ RFC,3/3]<br />
* [[A10]] / [[A20]] / [[A31]] HDMI Audio WIP Stefan Mavrodiev [https://lore.kernel.org/patchwork/cover/1177803/ Add support for sun4i HDMI audio]<br />
* [[A80]] Thermal sensor WIP Philipp Rossak (embed-3d): https://github.com/embed-3d/linux/branches/all<br />
* [[R40]] PWM (WIP Hao Zhang [https://www.spinics.net/lists/kernel/msg2731498.html patch-v2])<br />
* [[A20]] Keypad (WiP: Yassin Jaffer (ddc) [http://lists.infradead.org/pipermail/linux-arm-kernel/2015-September/370079.html patch])<br />
* sun8i-ce/sun8i-ss RSA/ECC WIP Corentin LABBE (no public patch yet)<br />
* 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/<br />
<br />
=== Drivers that can still be improved/added ===<br />
<br />
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.<br />
<br />
* [[A31]]/[[A31s]] PWM support ([https://patchwork.ozlabs.org/project/linux-pwm/list/?submitter=70938&state=*&archive=both patch-v4] abandoned by Siarhei Volkau)<br />
* sunxi-musb driver lacks DMA support (with current driver, USB gadgets are limited to PIO, limiting speed to 10MiB/s and causing large CPU)<br />
* DE2 driver has buggy layer support, see [https://patchwork.kernel.org/patch/11145803/]<br />
* DE1/DE2/DE3 writeback support<br />
* A64 audiocodec driver components (sun8i-codec and sun50i-codec-analog) lack support for jack detection<br />
<br />
== Planned for next ==<br />
<br />
== Merged into 6.3 ==<br />
<br />
* [[D1]]<br />
** Crypto<br />
** Power Domain<br />
<br />
== Merged into 6.2 ==<br />
<br />
*[[A100]]<br />
** MIPI-DSI<br />
* [[D1]]<br />
** MIPI-DSI<br />
<br />
== Merged into 6.1 ==<br />
<br />
*[[A100]]<br />
** DMA<br />
* [[D1]]<br />
** SRAM<br />
* [[H6]]<br />
** DMIC<br />
** GPU Devfreq<br />
<br />
== Merged into 6.0 ==<br />
<br />
* [[D1]]<br />
** RGB LCD<br />
** I2C<br />
** Pinctrl<br />
** RTC<br />
*[[H616]] [[Orange Pi Zero 2]]<br />
*[[H616]] [[X96 Mate]]<br />
*[[R40]]/[[T3]]/[[A40i]]<br />
** CPUFreq (DVFS) <br />
<br />
== Merged into 5.19 ==<br />
<br />
* [[D1]]<br />
** DMA<br />
** LRADC<br />
* [[F1C100s]] <br />
** SD/MMC<br />
** SPI<br />
** Watchdog<br />
* [[V3s]]<br />
** [https://bootlin.com/blog/linux-5-19-released-bootlin-contributions-inside/ MIPI-CSI2]<br />
<br />
== Merged into 5.18 ==<br />
<br />
* [[D1]]<br />
** I2S<br />
** MMC<br />
** SID<br />
** USB<br />
<br />
== Merged into 5.17 ==<br />
<br />
* [[A64]]/[[H5]]<br />
** DRAM frequency scaling (DEVFREQ)<br />
* [[D1]]<br />
** Clocks<br />
** PLIC<br />
* [[R40]]/[[T3]]/[[A40i]]<br />
** CAN ([https://lore.kernel.org/linux-sunxi/20220111155709.56501-1-boger@wirenboard.com/ series])<br />
<br />
== Merged into 5.16 ==<br />
<br />
* [[R329]]/[[D1]]<br />
** Watchdog<br />
<br />
== Merged into 5.15 (LTS)==<br />
<br />
== Merged into 5.14 ==<br />
*[[H616]]<br />
** PMIC - AXP305<br />
<br />
New Devices Supported<br />
* [[H616]]<br />
** [[Tanix TX6s]]<br />
** [[X96 Mate]]<br />
** [[Xunlong Orange Pi Zero2]]<br />
<br />
== Merged into 5.13 ==<br />
New Devices Supported<br />
* [[A10|A10]]<br />
** Topwise A721 Tablet<br />
<br />
== Merged into 5.12 ==<br />
*[[H616]]<br />
** Clocks<br />
** Pinctrl<br />
** MMC<br />
*[[H6]]<br />
** RSB<br />
*[[A100]]<br />
** MMC<br />
<br />
== Merged into 5.11 ==<br />
*[[H6]]<br />
** [[I2S]]<br />
* multiple SoCs<br />
** [[Cedrus]] VP8 decoding<br />
<br />
New Devices Supported<br />
*[[H3]]<br />
** [[FriendlyArm NanoPi R1]]<br />
** [[FriendlyArm ZeroPi]]<br />
*[[S3]]<br />
** [[Elimo Impetus]]<br />
** [[Elimo Initium]]<br />
<br />
== Merged into 5.10 (LTS) ==<br />
*[[A100]]<br />
** Clocks<br />
** Pinctrl<br />
** [[I2C]]<br />
** Thermal (THS)<br />
<br />
*[[R40]]<br />
** DMA<br />
** GPU [[Mali]]<br />
** [[IR]]<br />
** [[SRAM Controller|SRAM]]<br />
** [[Video_Engine]] | [[Sunxi-Cedrus]]<br />
<br />
*[[V3s]]<br />
** Crypto<br />
** Ethernet<br />
** SimpleFB<br />
** [[SRAM Controller|SRAM]]<br />
<br />
* sun8i-ce/sun8i-ss<br />
** support for PRNG<br />
** support for hashs<br />
** support for TRNG ([[H6]] only)<br />
<br />
New Devices Supported<br />
*[[A100]]<br />
** [[Perf1 board]]<br />
*[[S3l]]<br />
** [[PineCube]]<br />
<br />
== Merged into 5.9 ==<br />
* [[H5]]<br />
** DVFS<br />
<br />
New Devices Supported<br />
* A64<br />
** PinePhone v1.2<br />
<br />
== Merged into 5.8 ==<br />
* [[H6]]<br />
** DVFS<br />
** IOMMU<br />
<br />
* [[A64]] / [[A83T]] / [[H3]] / [[H5]] / [[H6]]<br />
** Message Box<br />
<br />
New Devices Supported<br />
* A20<br />
** [[Olimex_A20-OLinuXino-Lime|OLinuXino Lime (A20)]] eMMC<br />
<br />
== Merged into 5.7 ==<br />
*[[A20]]<br />
** LVDS<br />
<br />
*[[A83T]] and [[A64]]<br />
** Rotate driver<br />
<br />
*[[H6]]<br />
** [[SPIdev|SPI]]<br />
<br />
*[[R40]]<br />
** Thermal<br />
<br />
New Devices Supported<br />
*[[A13]]<br />
** [[PocketBook Touch Lux 3]]<br />
*[[A64]]<br />
** [[PineTab]]<br />
** [[PinePhone]] v1.0 & v1.1<br />
*[[A20]]<br />
** Linutronix Testbox v2<br />
<br />
== Merged into 5.6 ==<br />
* [[A10]]<br />
** CSI (BT656 and Parallel)<br />
<br />
*[[A64]]<br />
** MIPI DSI<br />
** DVFS<br />
<br />
*[[A64]] / [[A83T]] / [[H3]] / [[H5]] / [[H6]]<br />
** Thermal<br />
<br />
*[[H6]]<br />
** PWM<br />
<br />
*[[H3]] / [[H5]] / [[H6]] / [[R40]]<br />
**PMU<br />
<br />
*[[R40]]<br />
** CSI (BT656 and Parallel)<br />
** [[SPIdev|SPI]]<br />
<br />
New Devices Supported<br />
* [[H5]]<br />
** ALL-H3-IT H5 board<br />
** ALL-H5-CC H5 board<br />
* [[H6]]<br />
** [[PineH64]] Model B<br />
<br />
== Merged into 5.5 ==<br />
*[[H3]]<br />
** Deinterlace driver<br />
<br />
*[[H6]]<br />
**Crypto<br />
**GPU(3D) Mali<br />
**USB3 PHY (for boards not needing vbus switching)<br />
<br />
*[[A64]] / [[A80]] / [[A83T]] / [[H3]] / [[H5]] / [[R40]] <br />
**Crypto<br />
<br />
* multiple SoCs<br />
** [[Cedrus]] HEVC/H.265<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** Emlid Neutis<br />
<br />
New Devices Supported<br />
* [[H3]]<br />
** [[FriendlyARM_NanoPi_Duo2]]<br />
<br />
== Merged into 5.4 (LTS)==<br />
* [[A20]]<br />
** CSI (BT656 and Parallel)<br />
* [[A64]]<br />
** IR<br />
* [[H6]]<br />
** IR<br />
** RTC<br />
** SPDIF<br />
New Devices Supported<br />
* [[A64]]<br />
** [[Olimex A64-OLinuXino]] eMMC<br />
* [[H6]]<br />
** [[Tanix TX6]]<br />
* [[S3]]<br />
** [[Lichee Zero Plus]]<br />
<br />
== Merged into 5.3 ==<br />
* [[A64]]<br />
** LRADC<br />
** RGB LCD<br />
* [[A83T]]<br />
** CSI (BT656 and Parallel)<br />
* [[H6]]<br />
** DMA<br />
** Watchdog<br />
* multiple SoCs<br />
** [[Cedrus]] h264<br />
<br />
== Merged into 5.2 ==<br />
* [[A83T]]<br />
** LRADC<br />
** USB OTG<br />
<br />
* [[H6]]<br />
** [[Cedrus]]<br />
<br />
* multiple SoCs<br />
** [[Mali Open Source Driver|Lima]]<br />
** [[Mali Open Source Driver|Panfrost]]<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** Banana-Pi-M2-Zero<br />
<br />
New Devices Supported<br />
* [[H6]]<br />
** [[Beelink GS1]]<br />
** [[Xunlong Orange Pi 3]]<br />
<br />
== Merged into 5.1 ==<br />
* A10<br />
** Cedrus<br />
** PMU<br />
<br />
* A20<br />
** Audio Codec improvements<br />
<br />
* A23<br />
** Display pipeline<br />
** LCD enabled on Q8 A23 tablets<br />
<br />
* A64<br />
** [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c950ca8c35eeb32224a63adc47e12f9e226da241 ARM Architectural Timer errata workaround]<br />
** PMU<br />
** CSI (BT656 and Parallel)<br />
<br />
* A80<br />
** GMAC support<br />
<br />
* CSI in general<br />
** RGR565 support<br />
** JPEG pass-through support<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** [[Banana Pi M2+]]<br />
** [[Banana Pi M2 Ultra]]<br />
<br />
* [[LCD]] enabled on [[A13]] [[Q8]] tablets<br />
<br />
== Merged into 5.0 ==<br />
* A64<br />
** Cedrus<br />
** DTS changes for audio codec<br />
<br />
* F1C100s<br />
** initial F1C100s support<br />
<br />
* H6<br />
** Ethernet<br />
** DE3/HDMI support<br />
** USB 2.0<br />
<br />
* H3 / H5<br />
** CSI (BT656 and Parallel) Support<br />
<br />
* H5<br />
** Cedrus<br />
<br />
* R40<br />
** RTC<br />
<br />
* T3<br />
** initial T3 support<ref>https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b7badd1d7aa61087010803affa19bb83fb5a0af1</ref><br />
<br />
* V3s<br />
** CSI (BT656 and Parallel) Support<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** [[Sinovoip Banana Pi M2 Magic | Banana Pi M2 Magic]]<br />
** [[Banana Pi M3]]<br />
** [[Banana Pi M64]]<br />
** [[Cubietruck]]<br />
** [[Cubietech_Cubietruck_Plus|Cubietruck Plus]]<br />
<br />
New Devices Supported<br />
* [[Xunlong Orange Pi Lite 2]]<br />
* Mapleboard MP130<br />
* LicheePi Nano<br />
* Emlid Neutis N5<br />
<br />
== Merged into 4.20 ==<br />
<br />
* A13 / A20 / A33 / H3<br />
** Cedrus driver<br />
<br />
* A83T<br />
** IR receiver<br />
<br />
* A64<br />
** Cleanup for device tree files<br />
** HDMI support<br />
** Audio codec support (DTS changes will be merged in 5.0)<br />
<br />
* H3 / H5<br />
** SID<br />
<br />
* R40<br />
** SATA<br />
<br />
New Devices Supported<br />
* [[Pine64]] LTS<br />
* [[Xunlong Orange Pi One Plus]]<br />
* [[Xunlong Orange Pi Zero Plus 2]] (H3 variant)<br />
* [[Sinovoip Banana Pi M2+]] (H5 variant)<br />
<br />
== Merged into 4.19 (LTS)==<br />
<br />
* A10 / A13 / A20 / A23 / A33<br />
** SRAM controller / system control<br />
<br />
* A64<br />
** SRAM controller / system control<br />
** Display clocks and bus<br />
** RTC clock output<br />
** PWM<br />
** R_I2C<br />
<br />
* H3<br />
** SRAM controller / system control<br />
<br />
* H6<br />
** MMC<br />
** PMIC<br />
<br />
* R40<br />
** HDMI support<br />
<br />
Board Changes<br />
* SPI flash node for [[Orange Pi PC 2]] and [[Pine64#Variants | Pine64 SoPINE]]<br />
* Use lid switch as wake-up source for A64 based laptops<br />
* LEDs added for [[PineH64]]<br />
<br />
New Devices<br />
* [[Pine Pinebook]]<br />
* Amarula A64-Relic<br />
<br />
== Changes merged up to 4.18 ==<br />
Changes up to 4.18 can be found on [[Linux mainlining history]] page.<br />
<br />
=References=<br />
<references /><br />
<br />
= See also =<br />
* [[Mainline Kernel Howto]]<br />
* [[Possible setups for hacking on mainline]]<br />
* [[Linux Kernel]]<br />
**[[Toolchain]]<br />
<br />
=External Links=<br />
* [http://www.kernel.org kernel.org] - Official website for the Linux Kernel<br />
** [http://github.com/torvalds/linux http://github.com/torvalds/linux] - Linus Torvalds' GitHub account with the upstream Linux kernel<br />
* [http://www.kernel.org/doc/ Linux Kernel documentation index]<br />
* [http://www.kernel.org/doc/man-pages/ Linux Kernel man pages]<br />
* [http://kernelnewbies.org/ Kernel Newbies Site - Excellent source of information for people new to kernel]<br />
* [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=summary Linus' kernel tree for 2.6]<br />
* [https://bugzilla.kernel.org/ Kernel bugzilla] - [https://bugzilla.kernel.org/show_bug.cgi?id=15790 Regressions for each of recent versions]<br />
* [http://www.fsfla.org/svnwiki/selibre/linux-libre/ Linux-libre project - Maintains and distributes fully free kernel]<br />
* [http://lingrok.org/ LinGrok, Linux kernel source code cross-reference]<br />
* [https://elixir.bootlin.com/linux/latest/source?a=arm Bootlin LXR (Linux Cross Reference)]<br />
* [http://lists.infradead.org/pipermail/linux-arm-kernel/ linux-arm-kernel - Mailing list archive]<br />
===How to upstream===<br />
* [http://www.elinux.org/images/a/ad/Arm-soc-checklist.pdf Your new ARM SoC Linux support check-list! by Thomas Petazzoni of Bootlin]<br />
*[http://www.cnx-software.com/2014/03/04/linux-kernel-upstreaming-how-to-linaro-connect-asia-2014/ Linux Kernel Upstreaming How-To (CNXSoft - Embedded Software Development)]<br />
**[http://www.youtube.com/watch?v=dY7fikYZ42c Matt Porter's YouTube video talk on “Upstreaming 101" (LCA14-111)]<br />
***[http://www.linaro.org/documents/download/65f888c674508efcf9bd5d90398a186a530d01c4c78db Matt Porter's presentation slides for “Upstreaming 101" (LCA14-111)]<br />
**[https://www.youtube.com/watch?v=FiQ5uV_Mm5c Matt Porter's YouTube video talk on “Upstreaming 201" (LCA14-112)]<br />
***[http://www.linaro.org/documents/download/7b9920fcc89589bad9063d87d9137f08530d020b71924 Matt Porter's presentation slides for “Upstreaming 201" (LCA14-112)]<br />
*[http://www.cnx-software.com/2011/08/19/how-to-write-and-submit-a-linux-kernel-patch/ How to Write and Submit a Linux Kernel Patch (CNXSoft - Embedded Software Development)]<br />
** [http://www.youtube.com/watch?v=LLBrBBImJt4 YouTube Video- Write and Submit your first Linux kernel Patch]<br />
** [http://www.cnx-software.com/pdf/kernel-tutorial/kernel_patch_tutorial.pdf Greg Kroah-Hartman Kernel Tutorial Write and Submit your first Linux Kernel Patch]<br />
*[http://www.linaro.org/connect-lca14/resources Linaro resources page from LCA (Linaro Connect Asia) 2014]<br />
<br />
=Notes=<br />
<references group=note /><br />
<br />
[[Category:Development]]</div>
Frozeus
https://linux-sunxi.org/index.php?title=Linux_mainlining_effort&diff=25324
Linux mainlining effort
2023-05-02T21:20:57Z
<p>Frozeus: Update Power Domain for D1 merged in 6.3</p>
<hr />
<div>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.<br />
<br />
=Overview=<br />
The idea is to submit the code needed to run the Linux kernel on Allwinner SoCs upstream, ie. to the official Linux kernel.<br />
<br />
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.<ref>http://www.elinux.org/images/a/ad/Arm-soc-checklist.pdf</ref><ref>[http://www.cnx-software.com/2013/01/16/your-new-arm-soc-linux-support-check-list-elce-2012/ Your New ARM SoC Linux Support Check-List – ELCE 2012]</ref><br />
<br />
Where relevant, I have attempted to include who is currently working on an item, mostly separate from any particular mainlining goal.<br />
<br />
=Status=<br />
<br />
The [[Mainline_Kernel_Howto|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|Mainline U-Boot howto]].<br />
<br />
The [[:Category:Mainline_Kernel | Mainline Kernel category ]] gives an overview of currently supported devices.<br />
<br />
== Status Matrix ==<br />
<br />
The goal of this matrix is to give an easy view of work on each SoC worked on by linux-sunxi.<br />
<br />
{| class="wikitable" style="text-align: center; width: 100%"<br />
|-<br />
! colspan="2" style="text-align: left; width: 13%" | Model<br />
! [[F1C100s|F1C-<br>100s<br>200s]]<br />
! [[A10]]<br />
! [[A10s]]<br />
! [[A13]]<br>[[R8]]<br />
! [[GR8]]<br />
! [[A20]]<br>[[T2]]<br />
! [[R40]]<br>[[T3]]<br>[[A40i]]<br />
! [[A80]]<br />
! [[A31]]<br />
! [[A23]]<br />
! [[A33]]<br>[[R16]]<br />
! [[A83T]]<br />
! [[H3]]<br />
! [[S3]]<br>[[S3L]]<br>[[V3]]<br>[[V3s]]<br />
! [[A64]]<br />
! [[H5]]<br />
! [[H6]]<br />
! [[A50]]<br />
! [[V831]]<br>[[V833]]<br />
! [[H616]]<br />
! [[A100]]<br>[[A133]]<br />
! [[R329]]<br />
! [[D1]]<br />
<br />
|-<br />
| style="text-align: left;" rowspan="4" | ADC<br />
| style="text-align: left;" | GPADC<br />
| N/A<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | [[LRADC|LRADC]]<br />
| style="background: lightgreen;" | 6.2<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: darkgreen; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.19<br />
| style="background: lightgreen;" | 5.19<br />
<br />
|-<br />
| style="text-align: left;" | Thermal<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 5.7<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| N/A<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" | Touch<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.0<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" rowspan="6" | Audio<br />
| style="text-align: left;" | AC97<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | [[Audio Codec|Analog Codec]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.11<br />
| N/A<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" | Audio Hub<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | DMIC<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 6.1<br />
| style="background: darkgreen; color: white;" | ?<br />
| N/A<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
<br />
|-<br />
| style="text-align: left;" | I2S<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: darkgreen; color: white;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.11<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.18<br />
| style="background: lightgreen;" | 5.18<br />
<br />
|-<br />
| style="text-align: left;" | [[SPDIF]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.7<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.7<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.11<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" rowspan="4" | [[CSI|Camera]]<br />
| style="text-align: left;" | BT656<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
<br />
|-<br />
| style="text-align: left;" | ISP<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
<br />
|-<br />
| style="text-align: left;" | MIPI CSI-2<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| N/A<br />
| style="background: lightgreen;" | 5.19<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
<br />
|-<br />
| style="text-align: left;" | Parallel<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | CAN bus<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 5.17<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Clocks<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.10<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.10<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | [[Linux_mainlining_effort#Core_Stuff|WIP]]<br />
| style="background: lightgreen;" | 5.12<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: orange;" | WIP<br />
| style="background: lightgreen;" | 5.17<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | CPUFreq (DVFS)<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.9<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | CPUIdle<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: orange;" | Crust<br />
| style="background: red;" | NO<br />
| style="background: orange;" | Crust<br />
| style="background: orange;" | Crust<br />
| style="background: orange;" | Crust<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: orange;" | SBI<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[Cryptographic_Hardware_Accelerators|Crypto]]<br />
| N/A<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | 6.3<br />
<br />
|-<br />
| style="text-align: left;" rowspan="9" | [https://dri.freedesktop.org/wiki/DRM/ Display (DRM)]<br />
| style="text-align: left;" | CVBS<br />
| style="background: red;" | NO<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9 ?<br />
| style="background: lightgreen;" | 4.7<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | G2D<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | HDMI Audio<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | HDMI CEC<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.14<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.17<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | HDMI Video<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.13<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.17<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" | LVDS<br />
| N/A<br />
| style="background: darkgreen; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.7<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.16<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | MIPI DSI<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.6<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | 6.2<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 6.2<br />
<br />
|-<br />
| style="text-align: left;" | RGB<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.7<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.16<br />
| N/A<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 5.3<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
<br />
|-<br />
| style="text-align: left;" | VGA<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Display (SimpleFB)<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | DMA<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 6.1<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.19<br />
<br />
|-<br />
| style="text-align: left;" rowspan="2" | [[Ethernet]]<br />
| style="text-align: left;" | [[Ethernet#EMAC|EMAC]]<br />
| N/A<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.11<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 5.1<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.15<br />
<br />
|-<br />
| style="text-align: left;" | [[Ethernet#GMAC|GMAC]]<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: lightgreen;" | 3.17<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" rowspan="2" | GPU (3D)<br />
| style="text-align: left;" | [[Mali]]<br />
| N/A<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 5.10<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | 5.2<br />
| N/A<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | [[PowerVR]]<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | HW Spinlocks<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[I2C]]<br />
| style="background: lightgreen;" | 6.2<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.13<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | IOMMU<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" rowspan="2" | [[IR]]<br />
| style="text-align: left;" | [[IR|IR RX]]<br />
| style="background: lightgreen;" | 6.2<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.0<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 4.6<br />
| N/A<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | IR TX<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Keypad<br />
| N/A<br />
| style="background: orange;" | WIP<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | WIP<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | LDOs<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | LEDC<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | MBUS<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.17<br />
| style="background: lightgreen;" | 5.17<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | MsgBox<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: lightgreen;" | 5.8<br />
| N/A<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | PCIe<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]] <ref name="h6-pcie">Allwinner H6 has a quirky PCIe controller that doesn't map the PCIe address space properly to CPU,<br />
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/</ref><br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Pinctrl<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | [[Linux_mainlining_effort#Core_Stuff|WIP]]<br />
| style="background: lightgreen;" | 5.12<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: orange;" | WIP<br />
| style="background: lightgreen;" | 6.0<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[PMU]] (perf, DT only)<br />
| N/A<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[PWM_Controller|PWM]]<br />
| style="background: lightgreen;" | 6.2<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" rowspan="2" | Remoteproc<br />
| style="text-align: left;" | AIPU<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | DSP<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[RSB]]<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.3<br />
| N/A<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.12<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[RTC]]<br />
| N/A<br />
| style="background: lightgreen;" | 3.14<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 5.0<br />
| N/A<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| N/A<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | [[Linux_mainlining_effort#Core_Stuff|WIP]]<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
| style="background: lightgreen;" | 6.0<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | SID (eFuse)<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.18<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | SMP<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: lightgreen;" | PSCI<br />
| N/A<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | PSCI<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SPIdev|SPI]]<br />
| style="background: lightgreen;" | 5.19<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.7<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | [[Linux_mainlining_effort#Core_Stuff|WIP]]<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SRAM Controller|SRAM]]<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 5.10<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 4.19<br />
| N/A<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 6.1<br />
<br />
|-<br />
| style="text-align: left;" rowspan="4" | Storage<br />
| style="text-align: left;" | EMCE<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | [[NAND]]<br />
| N/A<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 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 [[MTD_Driver#Challenges|this page]] </ref><br />
| style="background: lightgreen;" | 4.9 <ref name="mlc" /><br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9 <ref name="mlc"/><br />
| style="background: lightgreen;" | 4.9 <ref name="mlc" /><br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| N/A<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | [[SATA]]<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.20<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | [[eMMC|SD/MMC]]<br />
| style="background: lightgreen;" | 5.19<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: orange;" | [[Linux_mainlining_effort#Core_Stuff|WIP]]<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: lightgreen;" | 5.12<br />
| style="background: orange;" | WIP<br />
| style="background: lightgreen;" | 5.18<br />
<br />
|-<br />
| style="text-align: left;" rowspan="3" | Timer<br />
| style="text-align: left;" | Arch Timer<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: orange;" | WIP<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" | HSTIMER<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
<br />
|-<br />
| style="text-align: left;" | TIMER<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 5.14<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.14<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.14<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
<br />
|-<br />
| style="text-align: left;" rowspan="3" | [[USB]]<br />
| style="text-align: left;" | [[USB]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 6.1.3<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.18<br />
<br />
|-<br />
| style="text-align: left;" | [[USB_OTG_Controller_Register_guide#USB_OTG|USB OTG]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 6.1.3<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.18<br />
<br />
|-<br />
| style="text-align: left;" | USB3<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.5<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[Video_Engine|VE]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: red;" | NO<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.17<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Watchdog<br />
| style="background: lightgreen;" | 5.19<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: orange;" | [[Linux_mainlining_effort#Core_Stuff|WIP]]<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 5.16<br />
| style="background: lightgreen;" | 5.16<br />
<br />
|-<br />
! colspan="2" style="text-align: left; width: 13%" | Model<br />
! [[F1C100s|F1C-<br>100s<br>200s]]<br />
! [[A10]]<br />
! [[A10s]]<br />
! [[A13]]<br>[[R8]]<br />
! [[GR8]]<br />
! [[A20]]<br>[[T2]]<br />
! [[R40]]<br>[[T3]]<br>[[A40i]]<br />
! [[A80]]<br />
! [[A31]]<br />
! [[A23]]<br />
! [[A33]]<br>[[R16]]<br />
! [[A83T]]<br />
! [[H3]]<br />
! [[S3]]<br>[[S3L]]<br>[[V3]]<br>[[V3s]]<br />
! [[A64]]<br />
! [[H5]]<br />
! [[H6]]<br />
! [[A50]]<br />
! [[V831]]<br>[[V833]]<br />
! [[H616]]<br />
! [[A100]]<br>[[A133]]<br />
! [[R329]]<br />
! [[D1]]<br />
|}<br />
<br />
{| class="wikitable" style="text-align: center;"<br />
|-<br />
! Legend<br />
|-<br />
| style="background: lightgreen;" | In Linux mainline since version x<br />
|-<br />
| style="background: darkgreen;" | Nobody works on it, but it should be compatible with already done drivers<br />
|-<br />
| style="background: orange;" | Somebody works on it<br />
|-<br />
| style="background: red;" | No support, nobody works on it<br />
|-<br />
| style="background: black; color: white;" | support impossible<br />
|-<br />
| style="background: grey; color: white;" | Status is unknown/to be completed<br />
|}<br />
<br />
== Work In Progress ==<br />
<br />
=== Core Stuff ===<br />
*[[R528]]/[[T113]] Clocks Samuel Holland [https://lore.kernel.org/linux-sunxi/20221231231429.18357-1-samuel@sholland.org/T/ clk: sunxi-ng: Allwinner R528/T113 clock support]<br />
<br />
*[[R329]] Clocks & Pinctrl / RTC / MMC - Icenowy Zheng [https://lore.kernel.org/linux-sunxi/20220422140902.1058101-1-icenowy@aosc.io/T/#u Initial support for Allwinner R329] <br />
<br />
*[[V831]] / [[V833]] Clocks & Pinctrl / RTC / MMC / Watchdog / SPI - Icenowy Zheng [https://patchwork.kernel.org/project/linux-arm-kernel/cover/20201212040157.3639864-1-icenowy@aosc.io/ Support for Allwinner V831 SoC]<br />
<br />
*[[D1]]/[[D1s]] platform support Samuel Holland [https://lore.kernel.org/linux-sunxi/20221231233851.24923-1-samuel@sholland.org/T/#u riscv: Allwinner D1/D1s platform support]<br />
<br />
*[[AR100]] firmware (WiP: Samuel Holland) [https://github.com/crust-firmware/crust ARISC firmware for sunxi SoCs ]<br />
<br />
* [[A13]] PSCI Suspend / Resume / CPUIdle (WiP: Antoine Tenart) [http://lists.denx.de/pipermail/u-boot/2016-September/265453.html patch-v1]<br />
<br />
=== Major drivers ===<br />
* [[F1C100s]] USB Andre Przywara & Icenowy Zheng [https://lore.kernel.org/linux-sunxi/20230111015332.172021-1-andre.przywara@arm.com/T/ ARM: suniv: USB and two new boards support]<br />
<br />
* [[A100]] DMA/PMU/Watchdog/USB2/USB OTG/MMC(eMMC, SD) Frank Lee [https://patchwork.kernel.org/project/linux-arm-kernel/cover/cover.1604988979.git.frank@allwinnertech.com/ Second step support for A100]<br />
<br />
* [[V3s]] ISP (Image Signal Processor) Paul Kocialkowski [https://bootlin.com/blog/initial-allwinner-v3-isp-support-in-mainline-linux/ initial-allwinner-v3-isp-support-in-mainline-linux]<br />
<br />
* [[H6]] Hypervisor for PCIe [https://forum.armbian.com/topic/13529-a-try-on-utilizing-h6-pcie-with-virtualization/ A try on utilizing H6 PCIe with "Virtualization"]<br />
<br />
* [[A64]] / [[H3]] / [[H5]] / [[H6]] HDMI Audio - Clément Péron / Marcus Cooper / Jernej Škrabec [https://patchwork.kernel.org/cover/11510511/ Add Allwinner H3/H5/A64 HDMI audio]<br />
<br />
* [[R40]] MIPI-DSI WIP Jagan Teki [https://patchwork.kernel.org/cover/11314031/ drm/sun4i: Allwinner R40 MIPI-DSI support v3] <br />
<br />
* [[AC100]] Audio codec WiP Ondrej Jirman [https://megous.com/git/linux/commit/?h=orange-pi-5.5&id=170d38d650f67657600d4e0e868e0e7110b89ee1 digital part] [https://megous.com/git/linux/commit/?h=orange-pi-5.5&id=ee424255a6fb9280ac27c1953019b768ca973ca7 analog part]<br />
<br />
* [[V3s]] SRAM & Video Decoding Engine (Cedrus) WiP Martin Cerveny [https://patchwork.kernel.org/project/linux-arm-kernel/list/?series=347787 Enable video decoder] ([https://github.com/mcerveny/linux/commits/v3s_videocodec_v4 testing with attached LCD])<br />
* [[H6]] VP9 decoder (Hantro G2) WiP jernej [https://github.com/jernejsk/linux-1/commits/vp9 branch]<br />
<br />
=== Minor drivers ===<br />
<!-- Please move the newest entry to the top --><br />
* [[F1C100s]] USB PHY Andre Przywara [https://lore.kernel.org/linux-sunxi/20230109012223.4079299-1-andre.przywara@arm.com/T/ phy: sun4i-usb: add support for the USB PHY on F1C100s SoC]<br />
* [[D1]] IOMMU Samuel Holland [https://lore.kernel.org/linux-sunxi/20230103010903.11181-1-samuel@sholland.org/T/ iommu/sun50i: Allwinner D1 support]<br />
* [[D1]] System LDOs Samuel Holland [https://lore.kernel.org/linux-sunxi/20221208084127.17443-1-samuel@sholland.org/T/ regulator: Add support for Allwinner D1 system LDOs]<br />
* [[D1]] Video Engine Samuel Holland [https://lore.kernel.org/linux-sunxi/20221231164628.19688-1-samuel@sholland.org/T/ Allwinner D1 video engine support]<br />
* [[D1]] / [[D1s]] / [[A100]] / [[R329]] LEDC Samuel Holland [https://lore.kernel.org/linux-sunxi/20221231235541.13568-1-samuel@sholland.org/T/#u leds: Allwinner A100 LED controller support]<br />
* [[H6]] Deinterlace driver Jernej Skrabec [https://lore.kernel.org/linux-sunxi/20221101123201.3021129-1-jernej.skrabec@gmail.com/T/ media: sunxi: Add H6 deinterlace driver]<br />
* [[R40]]/[[T3]]/[[A40i]] RTP/LRADC Evgeny Boger [https://lore.kernel.org/linux-sunxi/20211119191456.510435-1-boger@wirenboard.com/]<br />
* [[R40]]/[[T3]]/[[A40i]] EMAC Evgeny Boger [https://lore.kernel.org/linux-sunxi/20220111160600.58384-1-boger@wirenboard.com/ support for two Ethernet ports on Allwinner R40]<br />
* [[R40]]/[[T3]]/[[A40i]] USB OTG qianfan Zhao [https://lore.kernel.org/linux-sunxi/20220518101706.26869-1-qianfanguijin@163.com/T/ ARM: sun8i-r40: Enable usb otg support]<br />
* [[V3]] I2S Tobias Schramm [https://patchwork.kernel.org/project/linux-arm-kernel/list/?series=482161&archive=both&state=* Add missing peripherals to Allwinner V3s/V3 device trees]<br />
* [[H3]] / [[H5]] CVBS WIP Jernej Skrabec [https://github.com/LibreELEC/LibreELEC.tv/blob/master/projects/Allwinner/patches/linux/0036-wip-h3-h5-cvbs.patch Add H3/H5 TVE support]<br />
* [[A100]] CPUFreq (DVFS) Shuosheng Huang [https://patchwork.kernel.org/project/linux-arm-kernel/list/?series=396055&archive=both&state=* cpufreq: sun50i: add a100 cpufreq support]<br />
* [[A64]] hwspinlock WIP Nikolay Borisov [https://patchwork.kernel.org/cover/11373645/ Add support for hwspinlock on A64 SoC] <br />
* [[A83T]] / [[A64]] / [[H3]] hwspinlock WIP Corentin Labbe (montjoie) [https://lore.kernel.org/patchwork/patch/706512/ RFC,1/3][https://lore.kernel.org/patchwork/patch/706511/ RFC,2/3][https://lore.kernel.org/patchwork/patch/706513/ RFC,3/3]<br />
* [[A10]] / [[A20]] / [[A31]] HDMI Audio WIP Stefan Mavrodiev [https://lore.kernel.org/patchwork/cover/1177803/ Add support for sun4i HDMI audio]<br />
* [[A80]] Thermal sensor WIP Philipp Rossak (embed-3d): https://github.com/embed-3d/linux/branches/all<br />
* [[R40]] PWM (WIP Hao Zhang [https://www.spinics.net/lists/kernel/msg2731498.html patch-v2])<br />
* [[A20]] Keypad (WiP: Yassin Jaffer (ddc) [http://lists.infradead.org/pipermail/linux-arm-kernel/2015-September/370079.html patch])<br />
* sun8i-ce/sun8i-ss RSA/ECC WIP Corentin LABBE (no public patch yet)<br />
* 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/<br />
<br />
=== Drivers that can still be improved/added ===<br />
<br />
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.<br />
<br />
* [[A31]]/[[A31s]] PWM support ([https://patchwork.ozlabs.org/project/linux-pwm/list/?submitter=70938&state=*&archive=both patch-v4] abandoned by Siarhei Volkau)<br />
* sunxi-musb driver lacks DMA support (with current driver, USB gadgets are limited to PIO, limiting speed to 10MiB/s and causing large CPU)<br />
* DE2 driver has buggy layer support, see [https://patchwork.kernel.org/patch/11145803/]<br />
* DE1/DE2/DE3 writeback support<br />
* A64 audiocodec driver components (sun8i-codec and sun50i-codec-analog) lack support for jack detection<br />
<br />
== Planned for next ==<br />
<br />
== Merged into 6.3 ==<br />
<br />
* [[D1]]<br />
** Crypto<br />
** Power Domain<br />
<br />
== Merged into 6.2 ==<br />
<br />
*[[A100]]<br />
** MIPI-DSI<br />
* [[D1]]<br />
** MIPI-DSI<br />
<br />
== Merged into 6.1 ==<br />
<br />
*[[A100]]<br />
** DMA<br />
* [[D1]]<br />
** SRAM<br />
* [[H6]]<br />
** DMIC<br />
** GPU Devfreq<br />
<br />
== Merged into 6.0 ==<br />
<br />
* [[D1]]<br />
** RGB LCD<br />
** I2C<br />
** Pinctrl<br />
** RTC<br />
*[[H616]] [[Orange Pi Zero 2]]<br />
*[[H616]] [[X96 Mate]]<br />
*[[R40]]/[[T3]]/[[A40i]]<br />
** CPUFreq (DVFS) <br />
<br />
== Merged into 5.19 ==<br />
<br />
* [[D1]]<br />
** DMA<br />
** LRADC<br />
* [[F1C100s]] <br />
** SD/MMC<br />
** SPI<br />
** Watchdog<br />
* [[V3s]]<br />
** [https://bootlin.com/blog/linux-5-19-released-bootlin-contributions-inside/ MIPI-CSI2]<br />
<br />
== Merged into 5.18 ==<br />
<br />
* [[D1]]<br />
** I2S<br />
** MMC<br />
** SID<br />
** USB<br />
<br />
== Merged into 5.17 ==<br />
<br />
* [[A64]]/[[H5]]<br />
** DRAM frequency scaling (DEVFREQ)<br />
* [[D1]]<br />
** Clocks<br />
** PLIC<br />
* [[R40]]/[[T3]]/[[A40i]]<br />
** CAN ([https://lore.kernel.org/linux-sunxi/20220111155709.56501-1-boger@wirenboard.com/ series])<br />
<br />
== Merged into 5.16 ==<br />
<br />
* [[R329]]/[[D1]]<br />
** Watchdog<br />
<br />
== Merged into 5.15 (LTS)==<br />
<br />
== Merged into 5.14 ==<br />
*[[H616]]<br />
** PMIC - AXP305<br />
<br />
New Devices Supported<br />
* [[H616]]<br />
** [[Tanix TX6s]]<br />
** [[X96 Mate]]<br />
** [[Xunlong Orange Pi Zero2]]<br />
<br />
== Merged into 5.13 ==<br />
New Devices Supported<br />
* [[A10|A10]]<br />
** Topwise A721 Tablet<br />
<br />
== Merged into 5.12 ==<br />
*[[H616]]<br />
** Clocks<br />
** Pinctrl<br />
** MMC<br />
*[[H6]]<br />
** RSB<br />
*[[A100]]<br />
** MMC<br />
<br />
== Merged into 5.11 ==<br />
*[[H6]]<br />
** [[I2S]]<br />
* multiple SoCs<br />
** [[Cedrus]] VP8 decoding<br />
<br />
New Devices Supported<br />
*[[H3]]<br />
** [[FriendlyArm NanoPi R1]]<br />
** [[FriendlyArm ZeroPi]]<br />
*[[S3]]<br />
** [[Elimo Impetus]]<br />
** [[Elimo Initium]]<br />
<br />
== Merged into 5.10 (LTS) ==<br />
*[[A100]]<br />
** Clocks<br />
** Pinctrl<br />
** [[I2C]]<br />
** Thermal (THS)<br />
<br />
*[[R40]]<br />
** DMA<br />
** GPU [[Mali]]<br />
** [[IR]]<br />
** [[SRAM Controller|SRAM]]<br />
** [[Video_Engine]] | [[Sunxi-Cedrus]]<br />
<br />
*[[V3s]]<br />
** Crypto<br />
** Ethernet<br />
** SimpleFB<br />
** [[SRAM Controller|SRAM]]<br />
<br />
* sun8i-ce/sun8i-ss<br />
** support for PRNG<br />
** support for hashs<br />
** support for TRNG ([[H6]] only)<br />
<br />
New Devices Supported<br />
*[[A100]]<br />
** [[Perf1 board]]<br />
*[[S3l]]<br />
** [[PineCube]]<br />
<br />
== Merged into 5.9 ==<br />
* [[H5]]<br />
** DVFS<br />
<br />
New Devices Supported<br />
* A64<br />
** PinePhone v1.2<br />
<br />
== Merged into 5.8 ==<br />
* [[H6]]<br />
** DVFS<br />
** IOMMU<br />
<br />
* [[A64]] / [[A83T]] / [[H3]] / [[H5]] / [[H6]]<br />
** Message Box<br />
<br />
New Devices Supported<br />
* A20<br />
** [[Olimex_A20-OLinuXino-Lime|OLinuXino Lime (A20)]] eMMC<br />
<br />
== Merged into 5.7 ==<br />
*[[A20]]<br />
** LVDS<br />
<br />
*[[A83T]] and [[A64]]<br />
** Rotate driver<br />
<br />
*[[H6]]<br />
** [[SPIdev|SPI]]<br />
<br />
*[[R40]]<br />
** Thermal<br />
<br />
New Devices Supported<br />
*[[A13]]<br />
** [[PocketBook Touch Lux 3]]<br />
*[[A64]]<br />
** [[PineTab]]<br />
** [[PinePhone]] v1.0 & v1.1<br />
*[[A20]]<br />
** Linutronix Testbox v2<br />
<br />
== Merged into 5.6 ==<br />
* [[A10]]<br />
** CSI (BT656 and Parallel)<br />
<br />
*[[A64]]<br />
** MIPI DSI<br />
** DVFS<br />
<br />
*[[A64]] / [[A83T]] / [[H3]] / [[H5]] / [[H6]]<br />
** Thermal<br />
<br />
*[[H6]]<br />
** PWM<br />
<br />
*[[H3]] / [[H5]] / [[H6]] / [[R40]]<br />
**PMU<br />
<br />
*[[R40]]<br />
** CSI (BT656 and Parallel)<br />
** [[SPIdev|SPI]]<br />
<br />
New Devices Supported<br />
* [[H5]]<br />
** ALL-H3-IT H5 board<br />
** ALL-H5-CC H5 board<br />
* [[H6]]<br />
** [[PineH64]] Model B<br />
<br />
== Merged into 5.5 ==<br />
*[[H3]]<br />
** Deinterlace driver<br />
<br />
*[[H6]]<br />
**Crypto<br />
**GPU(3D) Mali<br />
**USB3 PHY (for boards not needing vbus switching)<br />
<br />
*[[A64]] / [[A80]] / [[A83T]] / [[H3]] / [[H5]] / [[R40]] <br />
**Crypto<br />
<br />
* multiple SoCs<br />
** [[Cedrus]] HEVC/H.265<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** Emlid Neutis<br />
<br />
New Devices Supported<br />
* [[H3]]<br />
** [[FriendlyARM_NanoPi_Duo2]]<br />
<br />
== Merged into 5.4 (LTS)==<br />
* [[A20]]<br />
** CSI (BT656 and Parallel)<br />
* [[A64]]<br />
** IR<br />
* [[H6]]<br />
** IR<br />
** RTC<br />
** SPDIF<br />
New Devices Supported<br />
* [[A64]]<br />
** [[Olimex A64-OLinuXino]] eMMC<br />
* [[H6]]<br />
** [[Tanix TX6]]<br />
* [[S3]]<br />
** [[Lichee Zero Plus]]<br />
<br />
== Merged into 5.3 ==<br />
* [[A64]]<br />
** LRADC<br />
** RGB LCD<br />
* [[A83T]]<br />
** CSI (BT656 and Parallel)<br />
* [[H6]]<br />
** DMA<br />
** Watchdog<br />
* multiple SoCs<br />
** [[Cedrus]] h264<br />
<br />
== Merged into 5.2 ==<br />
* [[A83T]]<br />
** LRADC<br />
** USB OTG<br />
<br />
* [[H6]]<br />
** [[Cedrus]]<br />
<br />
* multiple SoCs<br />
** [[Mali Open Source Driver|Lima]]<br />
** [[Mali Open Source Driver|Panfrost]]<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** Banana-Pi-M2-Zero<br />
<br />
New Devices Supported<br />
* [[H6]]<br />
** [[Beelink GS1]]<br />
** [[Xunlong Orange Pi 3]]<br />
<br />
== Merged into 5.1 ==<br />
* A10<br />
** Cedrus<br />
** PMU<br />
<br />
* A20<br />
** Audio Codec improvements<br />
<br />
* A23<br />
** Display pipeline<br />
** LCD enabled on Q8 A23 tablets<br />
<br />
* A64<br />
** [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c950ca8c35eeb32224a63adc47e12f9e226da241 ARM Architectural Timer errata workaround]<br />
** PMU<br />
** CSI (BT656 and Parallel)<br />
<br />
* A80<br />
** GMAC support<br />
<br />
* CSI in general<br />
** RGR565 support<br />
** JPEG pass-through support<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** [[Banana Pi M2+]]<br />
** [[Banana Pi M2 Ultra]]<br />
<br />
* [[LCD]] enabled on [[A13]] [[Q8]] tablets<br />
<br />
== Merged into 5.0 ==<br />
* A64<br />
** Cedrus<br />
** DTS changes for audio codec<br />
<br />
* F1C100s<br />
** initial F1C100s support<br />
<br />
* H6<br />
** Ethernet<br />
** DE3/HDMI support<br />
** USB 2.0<br />
<br />
* H3 / H5<br />
** CSI (BT656 and Parallel) Support<br />
<br />
* H5<br />
** Cedrus<br />
<br />
* R40<br />
** RTC<br />
<br />
* T3<br />
** initial T3 support<ref>https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b7badd1d7aa61087010803affa19bb83fb5a0af1</ref><br />
<br />
* V3s<br />
** CSI (BT656 and Parallel) Support<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** [[Sinovoip Banana Pi M2 Magic | Banana Pi M2 Magic]]<br />
** [[Banana Pi M3]]<br />
** [[Banana Pi M64]]<br />
** [[Cubietruck]]<br />
** [[Cubietech_Cubietruck_Plus|Cubietruck Plus]]<br />
<br />
New Devices Supported<br />
* [[Xunlong Orange Pi Lite 2]]<br />
* Mapleboard MP130<br />
* LicheePi Nano<br />
* Emlid Neutis N5<br />
<br />
== Merged into 4.20 ==<br />
<br />
* A13 / A20 / A33 / H3<br />
** Cedrus driver<br />
<br />
* A83T<br />
** IR receiver<br />
<br />
* A64<br />
** Cleanup for device tree files<br />
** HDMI support<br />
** Audio codec support (DTS changes will be merged in 5.0)<br />
<br />
* H3 / H5<br />
** SID<br />
<br />
* R40<br />
** SATA<br />
<br />
New Devices Supported<br />
* [[Pine64]] LTS<br />
* [[Xunlong Orange Pi One Plus]]<br />
* [[Xunlong Orange Pi Zero Plus 2]] (H3 variant)<br />
* [[Sinovoip Banana Pi M2+]] (H5 variant)<br />
<br />
== Merged into 4.19 (LTS)==<br />
<br />
* A10 / A13 / A20 / A23 / A33<br />
** SRAM controller / system control<br />
<br />
* A64<br />
** SRAM controller / system control<br />
** Display clocks and bus<br />
** RTC clock output<br />
** PWM<br />
** R_I2C<br />
<br />
* H3<br />
** SRAM controller / system control<br />
<br />
* H6<br />
** MMC<br />
** PMIC<br />
<br />
* R40<br />
** HDMI support<br />
<br />
Board Changes<br />
* SPI flash node for [[Orange Pi PC 2]] and [[Pine64#Variants | Pine64 SoPINE]]<br />
* Use lid switch as wake-up source for A64 based laptops<br />
* LEDs added for [[PineH64]]<br />
<br />
New Devices<br />
* [[Pine Pinebook]]<br />
* Amarula A64-Relic<br />
<br />
== Changes merged up to 4.18 ==<br />
Changes up to 4.18 can be found on [[Linux mainlining history]] page.<br />
<br />
=References=<br />
<references /><br />
<br />
= See also =<br />
* [[Mainline Kernel Howto]]<br />
* [[Possible setups for hacking on mainline]]<br />
* [[Linux Kernel]]<br />
**[[Toolchain]]<br />
<br />
=External Links=<br />
* [http://www.kernel.org kernel.org] - Official website for the Linux Kernel<br />
** [http://github.com/torvalds/linux http://github.com/torvalds/linux] - Linus Torvalds' GitHub account with the upstream Linux kernel<br />
* [http://www.kernel.org/doc/ Linux Kernel documentation index]<br />
* [http://www.kernel.org/doc/man-pages/ Linux Kernel man pages]<br />
* [http://kernelnewbies.org/ Kernel Newbies Site - Excellent source of information for people new to kernel]<br />
* [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=summary Linus' kernel tree for 2.6]<br />
* [https://bugzilla.kernel.org/ Kernel bugzilla] - [https://bugzilla.kernel.org/show_bug.cgi?id=15790 Regressions for each of recent versions]<br />
* [http://www.fsfla.org/svnwiki/selibre/linux-libre/ Linux-libre project - Maintains and distributes fully free kernel]<br />
* [http://lingrok.org/ LinGrok, Linux kernel source code cross-reference]<br />
* [https://elixir.bootlin.com/linux/latest/source?a=arm Bootlin LXR (Linux Cross Reference)]<br />
* [http://lists.infradead.org/pipermail/linux-arm-kernel/ linux-arm-kernel - Mailing list archive]<br />
===How to upstream===<br />
* [http://www.elinux.org/images/a/ad/Arm-soc-checklist.pdf Your new ARM SoC Linux support check-list! by Thomas Petazzoni of Bootlin]<br />
*[http://www.cnx-software.com/2014/03/04/linux-kernel-upstreaming-how-to-linaro-connect-asia-2014/ Linux Kernel Upstreaming How-To (CNXSoft - Embedded Software Development)]<br />
**[http://www.youtube.com/watch?v=dY7fikYZ42c Matt Porter's YouTube video talk on “Upstreaming 101" (LCA14-111)]<br />
***[http://www.linaro.org/documents/download/65f888c674508efcf9bd5d90398a186a530d01c4c78db Matt Porter's presentation slides for “Upstreaming 101" (LCA14-111)]<br />
**[https://www.youtube.com/watch?v=FiQ5uV_Mm5c Matt Porter's YouTube video talk on “Upstreaming 201" (LCA14-112)]<br />
***[http://www.linaro.org/documents/download/7b9920fcc89589bad9063d87d9137f08530d020b71924 Matt Porter's presentation slides for “Upstreaming 201" (LCA14-112)]<br />
*[http://www.cnx-software.com/2011/08/19/how-to-write-and-submit-a-linux-kernel-patch/ How to Write and Submit a Linux Kernel Patch (CNXSoft - Embedded Software Development)]<br />
** [http://www.youtube.com/watch?v=LLBrBBImJt4 YouTube Video- Write and Submit your first Linux kernel Patch]<br />
** [http://www.cnx-software.com/pdf/kernel-tutorial/kernel_patch_tutorial.pdf Greg Kroah-Hartman Kernel Tutorial Write and Submit your first Linux Kernel Patch]<br />
*[http://www.linaro.org/connect-lca14/resources Linaro resources page from LCA (Linaro Connect Asia) 2014]<br />
<br />
=Notes=<br />
<references group=note /><br />
<br />
[[Category:Development]]</div>
Frozeus
https://linux-sunxi.org/index.php?title=Linux_mainlining_effort&diff=25323
Linux mainlining effort
2023-05-02T21:16:27Z
<p>Frozeus: Add Crypto for D1 merged in 6.3</p>
<hr />
<div>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.<br />
<br />
=Overview=<br />
The idea is to submit the code needed to run the Linux kernel on Allwinner SoCs upstream, ie. to the official Linux kernel.<br />
<br />
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.<ref>http://www.elinux.org/images/a/ad/Arm-soc-checklist.pdf</ref><ref>[http://www.cnx-software.com/2013/01/16/your-new-arm-soc-linux-support-check-list-elce-2012/ Your New ARM SoC Linux Support Check-List – ELCE 2012]</ref><br />
<br />
Where relevant, I have attempted to include who is currently working on an item, mostly separate from any particular mainlining goal.<br />
<br />
=Status=<br />
<br />
The [[Mainline_Kernel_Howto|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|Mainline U-Boot howto]].<br />
<br />
The [[:Category:Mainline_Kernel | Mainline Kernel category ]] gives an overview of currently supported devices.<br />
<br />
== Status Matrix ==<br />
<br />
The goal of this matrix is to give an easy view of work on each SoC worked on by linux-sunxi.<br />
<br />
{| class="wikitable" style="text-align: center; width: 100%"<br />
|-<br />
! colspan="2" style="text-align: left; width: 13%" | Model<br />
! [[F1C100s|F1C-<br>100s<br>200s]]<br />
! [[A10]]<br />
! [[A10s]]<br />
! [[A13]]<br>[[R8]]<br />
! [[GR8]]<br />
! [[A20]]<br>[[T2]]<br />
! [[R40]]<br>[[T3]]<br>[[A40i]]<br />
! [[A80]]<br />
! [[A31]]<br />
! [[A23]]<br />
! [[A33]]<br>[[R16]]<br />
! [[A83T]]<br />
! [[H3]]<br />
! [[S3]]<br>[[S3L]]<br>[[V3]]<br>[[V3s]]<br />
! [[A64]]<br />
! [[H5]]<br />
! [[H6]]<br />
! [[A50]]<br />
! [[V831]]<br>[[V833]]<br />
! [[H616]]<br />
! [[A100]]<br>[[A133]]<br />
! [[R329]]<br />
! [[D1]]<br />
<br />
|-<br />
| style="text-align: left;" rowspan="4" | ADC<br />
| style="text-align: left;" | GPADC<br />
| N/A<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | [[LRADC|LRADC]]<br />
| style="background: lightgreen;" | 6.2<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: darkgreen; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.19<br />
| style="background: lightgreen;" | 5.19<br />
<br />
|-<br />
| style="text-align: left;" | Thermal<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 5.7<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| N/A<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" | Touch<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.0<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" rowspan="6" | Audio<br />
| style="text-align: left;" | AC97<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | [[Audio Codec|Analog Codec]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.11<br />
| N/A<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" | Audio Hub<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | DMIC<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 6.1<br />
| style="background: darkgreen; color: white;" | ?<br />
| N/A<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
<br />
|-<br />
| style="text-align: left;" | I2S<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: darkgreen; color: white;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.11<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.18<br />
| style="background: lightgreen;" | 5.18<br />
<br />
|-<br />
| style="text-align: left;" | [[SPDIF]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.7<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.7<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.11<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" rowspan="4" | [[CSI|Camera]]<br />
| style="text-align: left;" | BT656<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
<br />
|-<br />
| style="text-align: left;" | ISP<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
<br />
|-<br />
| style="text-align: left;" | MIPI CSI-2<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| N/A<br />
| style="background: lightgreen;" | 5.19<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
<br />
|-<br />
| style="text-align: left;" | Parallel<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | CAN bus<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 5.17<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Clocks<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.10<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.10<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | [[Linux_mainlining_effort#Core_Stuff|WIP]]<br />
| style="background: lightgreen;" | 5.12<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: orange;" | WIP<br />
| style="background: lightgreen;" | 5.17<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | CPUFreq (DVFS)<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.9<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | CPUIdle<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: orange;" | Crust<br />
| style="background: red;" | NO<br />
| style="background: orange;" | Crust<br />
| style="background: orange;" | Crust<br />
| style="background: orange;" | Crust<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: orange;" | SBI<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[Cryptographic_Hardware_Accelerators|Crypto]]<br />
| N/A<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | 6.3<br />
<br />
|-<br />
| style="text-align: left;" rowspan="9" | [https://dri.freedesktop.org/wiki/DRM/ Display (DRM)]<br />
| style="text-align: left;" | CVBS<br />
| style="background: red;" | NO<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9 ?<br />
| style="background: lightgreen;" | 4.7<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | G2D<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | HDMI Audio<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | HDMI CEC<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.14<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.17<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | HDMI Video<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.13<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.17<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" | LVDS<br />
| N/A<br />
| style="background: darkgreen; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.7<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.16<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | MIPI DSI<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.6<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | 6.2<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 6.2<br />
<br />
|-<br />
| style="text-align: left;" | RGB<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.7<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.16<br />
| N/A<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 5.3<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
<br />
|-<br />
| style="text-align: left;" | VGA<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Display (SimpleFB)<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | DMA<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 6.1<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.19<br />
<br />
|-<br />
| style="text-align: left;" rowspan="2" | [[Ethernet]]<br />
| style="text-align: left;" | [[Ethernet#EMAC|EMAC]]<br />
| N/A<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.11<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 5.1<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.15<br />
<br />
|-<br />
| style="text-align: left;" | [[Ethernet#GMAC|GMAC]]<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: lightgreen;" | 3.17<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" rowspan="2" | GPU (3D)<br />
| style="text-align: left;" | [[Mali]]<br />
| N/A<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 5.10<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | 5.2<br />
| N/A<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | [[PowerVR]]<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | HW Spinlocks<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[I2C]]<br />
| style="background: lightgreen;" | 6.2<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.13<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | IOMMU<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" rowspan="2" | [[IR]]<br />
| style="text-align: left;" | [[IR|IR RX]]<br />
| style="background: lightgreen;" | 6.2<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.0<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 4.6<br />
| N/A<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | IR TX<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Keypad<br />
| N/A<br />
| style="background: orange;" | WIP<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | WIP<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | LDOs<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | LEDC<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | MBUS<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.17<br />
| style="background: lightgreen;" | 5.17<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | MsgBox<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: lightgreen;" | 5.8<br />
| N/A<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | PCIe<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]] <ref name="h6-pcie">Allwinner H6 has a quirky PCIe controller that doesn't map the PCIe address space properly to CPU,<br />
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/</ref><br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Pinctrl<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | [[Linux_mainlining_effort#Core_Stuff|WIP]]<br />
| style="background: lightgreen;" | 5.12<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: orange;" | WIP<br />
| style="background: lightgreen;" | 6.0<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[PMU]] (perf, DT only)<br />
| N/A<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[PWM_Controller|PWM]]<br />
| style="background: lightgreen;" | 6.2<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" rowspan="2" | Remoteproc<br />
| style="text-align: left;" | AIPU<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | DSP<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[RSB]]<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.3<br />
| N/A<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.12<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[RTC]]<br />
| N/A<br />
| style="background: lightgreen;" | 3.14<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 5.0<br />
| N/A<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| N/A<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | [[Linux_mainlining_effort#Core_Stuff|WIP]]<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
| style="background: lightgreen;" | 6.0<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | SID (eFuse)<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.18<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | SMP<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: lightgreen;" | PSCI<br />
| N/A<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | PSCI<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SPIdev|SPI]]<br />
| style="background: lightgreen;" | 5.19<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.7<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | [[Linux_mainlining_effort#Core_Stuff|WIP]]<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SRAM Controller|SRAM]]<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 5.10<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 4.19<br />
| N/A<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 6.1<br />
<br />
|-<br />
| style="text-align: left;" rowspan="4" | Storage<br />
| style="text-align: left;" | EMCE<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | [[NAND]]<br />
| N/A<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 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 [[MTD_Driver#Challenges|this page]] </ref><br />
| style="background: lightgreen;" | 4.9 <ref name="mlc" /><br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9 <ref name="mlc"/><br />
| style="background: lightgreen;" | 4.9 <ref name="mlc" /><br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| N/A<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | [[SATA]]<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.20<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | [[eMMC|SD/MMC]]<br />
| style="background: lightgreen;" | 5.19<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: orange;" | [[Linux_mainlining_effort#Core_Stuff|WIP]]<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: lightgreen;" | 5.12<br />
| style="background: orange;" | WIP<br />
| style="background: lightgreen;" | 5.18<br />
<br />
|-<br />
| style="text-align: left;" rowspan="3" | Timer<br />
| style="text-align: left;" | Arch Timer<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: orange;" | WIP<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" | HSTIMER<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
<br />
|-<br />
| style="text-align: left;" | TIMER<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 5.14<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.14<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.14<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
<br />
|-<br />
| style="text-align: left;" rowspan="3" | [[USB]]<br />
| style="text-align: left;" | [[USB]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 6.1.3<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.18<br />
<br />
|-<br />
| style="text-align: left;" | [[USB_OTG_Controller_Register_guide#USB_OTG|USB OTG]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 6.1.3<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.18<br />
<br />
|-<br />
| style="text-align: left;" | USB3<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.5<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[Video_Engine|VE]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: red;" | NO<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.17<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Watchdog<br />
| style="background: lightgreen;" | 5.19<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: orange;" | [[Linux_mainlining_effort#Core_Stuff|WIP]]<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 5.16<br />
| style="background: lightgreen;" | 5.16<br />
<br />
|-<br />
! colspan="2" style="text-align: left; width: 13%" | Model<br />
! [[F1C100s|F1C-<br>100s<br>200s]]<br />
! [[A10]]<br />
! [[A10s]]<br />
! [[A13]]<br>[[R8]]<br />
! [[GR8]]<br />
! [[A20]]<br>[[T2]]<br />
! [[R40]]<br>[[T3]]<br>[[A40i]]<br />
! [[A80]]<br />
! [[A31]]<br />
! [[A23]]<br />
! [[A33]]<br>[[R16]]<br />
! [[A83T]]<br />
! [[H3]]<br />
! [[S3]]<br>[[S3L]]<br>[[V3]]<br>[[V3s]]<br />
! [[A64]]<br />
! [[H5]]<br />
! [[H6]]<br />
! [[A50]]<br />
! [[V831]]<br>[[V833]]<br />
! [[H616]]<br />
! [[A100]]<br>[[A133]]<br />
! [[R329]]<br />
! [[D1]]<br />
|}<br />
<br />
{| class="wikitable" style="text-align: center;"<br />
|-<br />
! Legend<br />
|-<br />
| style="background: lightgreen;" | In Linux mainline since version x<br />
|-<br />
| style="background: darkgreen;" | Nobody works on it, but it should be compatible with already done drivers<br />
|-<br />
| style="background: orange;" | Somebody works on it<br />
|-<br />
| style="background: red;" | No support, nobody works on it<br />
|-<br />
| style="background: black; color: white;" | support impossible<br />
|-<br />
| style="background: grey; color: white;" | Status is unknown/to be completed<br />
|}<br />
<br />
== Work In Progress ==<br />
<br />
=== Core Stuff ===<br />
*[[R528]]/[[T113]] Clocks Samuel Holland [https://lore.kernel.org/linux-sunxi/20221231231429.18357-1-samuel@sholland.org/T/ clk: sunxi-ng: Allwinner R528/T113 clock support]<br />
<br />
*[[R329]] Clocks & Pinctrl / RTC / MMC - Icenowy Zheng [https://lore.kernel.org/linux-sunxi/20220422140902.1058101-1-icenowy@aosc.io/T/#u Initial support for Allwinner R329] <br />
<br />
*[[V831]] / [[V833]] Clocks & Pinctrl / RTC / MMC / Watchdog / SPI - Icenowy Zheng [https://patchwork.kernel.org/project/linux-arm-kernel/cover/20201212040157.3639864-1-icenowy@aosc.io/ Support for Allwinner V831 SoC]<br />
<br />
*[[D1]]/[[D1s]] platform support Samuel Holland [https://lore.kernel.org/linux-sunxi/20221231233851.24923-1-samuel@sholland.org/T/#u riscv: Allwinner D1/D1s platform support]<br />
<br />
*[[AR100]] firmware (WiP: Samuel Holland) [https://github.com/crust-firmware/crust ARISC firmware for sunxi SoCs ]<br />
<br />
* [[A13]] PSCI Suspend / Resume / CPUIdle (WiP: Antoine Tenart) [http://lists.denx.de/pipermail/u-boot/2016-September/265453.html patch-v1]<br />
<br />
=== Major drivers ===<br />
* [[F1C100s]] USB Andre Przywara & Icenowy Zheng [https://lore.kernel.org/linux-sunxi/20230111015332.172021-1-andre.przywara@arm.com/T/ ARM: suniv: USB and two new boards support]<br />
<br />
* [[A100]] DMA/PMU/Watchdog/USB2/USB OTG/MMC(eMMC, SD) Frank Lee [https://patchwork.kernel.org/project/linux-arm-kernel/cover/cover.1604988979.git.frank@allwinnertech.com/ Second step support for A100]<br />
<br />
* [[V3s]] ISP (Image Signal Processor) Paul Kocialkowski [https://bootlin.com/blog/initial-allwinner-v3-isp-support-in-mainline-linux/ initial-allwinner-v3-isp-support-in-mainline-linux]<br />
<br />
* [[H6]] Hypervisor for PCIe [https://forum.armbian.com/topic/13529-a-try-on-utilizing-h6-pcie-with-virtualization/ A try on utilizing H6 PCIe with "Virtualization"]<br />
<br />
* [[A64]] / [[H3]] / [[H5]] / [[H6]] HDMI Audio - Clément Péron / Marcus Cooper / Jernej Škrabec [https://patchwork.kernel.org/cover/11510511/ Add Allwinner H3/H5/A64 HDMI audio]<br />
<br />
* [[R40]] MIPI-DSI WIP Jagan Teki [https://patchwork.kernel.org/cover/11314031/ drm/sun4i: Allwinner R40 MIPI-DSI support v3] <br />
<br />
* [[AC100]] Audio codec WiP Ondrej Jirman [https://megous.com/git/linux/commit/?h=orange-pi-5.5&id=170d38d650f67657600d4e0e868e0e7110b89ee1 digital part] [https://megous.com/git/linux/commit/?h=orange-pi-5.5&id=ee424255a6fb9280ac27c1953019b768ca973ca7 analog part]<br />
<br />
* [[V3s]] SRAM & Video Decoding Engine (Cedrus) WiP Martin Cerveny [https://patchwork.kernel.org/project/linux-arm-kernel/list/?series=347787 Enable video decoder] ([https://github.com/mcerveny/linux/commits/v3s_videocodec_v4 testing with attached LCD])<br />
* [[H6]] VP9 decoder (Hantro G2) WiP jernej [https://github.com/jernejsk/linux-1/commits/vp9 branch]<br />
<br />
=== Minor drivers ===<br />
<!-- Please move the newest entry to the top --><br />
* [[F1C100s]] USB PHY Andre Przywara [https://lore.kernel.org/linux-sunxi/20230109012223.4079299-1-andre.przywara@arm.com/T/ phy: sun4i-usb: add support for the USB PHY on F1C100s SoC]<br />
* [[D1]] IOMMU Samuel Holland [https://lore.kernel.org/linux-sunxi/20230103010903.11181-1-samuel@sholland.org/T/ iommu/sun50i: Allwinner D1 support]<br />
* [[D1]] System LDOs Samuel Holland [https://lore.kernel.org/linux-sunxi/20221208084127.17443-1-samuel@sholland.org/T/ regulator: Add support for Allwinner D1 system LDOs]<br />
* [[D1]] Power domain Samuel Holland [https://lore.kernel.org/linux-sunxi/20221231160402.16157-1-samuel@sholland.org/T/ Allwinner power domain support]<br />
* [[D1]] Video Engine Samuel Holland [https://lore.kernel.org/linux-sunxi/20221231164628.19688-1-samuel@sholland.org/T/ Allwinner D1 video engine support]<br />
* [[D1]] / [[D1s]] / [[A100]] / [[R329]] LEDC Samuel Holland [https://lore.kernel.org/linux-sunxi/20221231235541.13568-1-samuel@sholland.org/T/#u leds: Allwinner A100 LED controller support]<br />
* [[H6]] Deinterlace driver Jernej Skrabec [https://lore.kernel.org/linux-sunxi/20221101123201.3021129-1-jernej.skrabec@gmail.com/T/ media: sunxi: Add H6 deinterlace driver]<br />
* [[R40]]/[[T3]]/[[A40i]] RTP/LRADC Evgeny Boger [https://lore.kernel.org/linux-sunxi/20211119191456.510435-1-boger@wirenboard.com/]<br />
* [[R40]]/[[T3]]/[[A40i]] EMAC Evgeny Boger [https://lore.kernel.org/linux-sunxi/20220111160600.58384-1-boger@wirenboard.com/ support for two Ethernet ports on Allwinner R40]<br />
* [[R40]]/[[T3]]/[[A40i]] USB OTG qianfan Zhao [https://lore.kernel.org/linux-sunxi/20220518101706.26869-1-qianfanguijin@163.com/T/ ARM: sun8i-r40: Enable usb otg support]<br />
* [[V3]] I2S Tobias Schramm [https://patchwork.kernel.org/project/linux-arm-kernel/list/?series=482161&archive=both&state=* Add missing peripherals to Allwinner V3s/V3 device trees]<br />
* [[H3]] / [[H5]] CVBS WIP Jernej Skrabec [https://github.com/LibreELEC/LibreELEC.tv/blob/master/projects/Allwinner/patches/linux/0036-wip-h3-h5-cvbs.patch Add H3/H5 TVE support]<br />
* [[A100]] CPUFreq (DVFS) Shuosheng Huang [https://patchwork.kernel.org/project/linux-arm-kernel/list/?series=396055&archive=both&state=* cpufreq: sun50i: add a100 cpufreq support]<br />
* [[A64]] hwspinlock WIP Nikolay Borisov [https://patchwork.kernel.org/cover/11373645/ Add support for hwspinlock on A64 SoC] <br />
* [[A83T]] / [[A64]] / [[H3]] hwspinlock WIP Corentin Labbe (montjoie) [https://lore.kernel.org/patchwork/patch/706512/ RFC,1/3][https://lore.kernel.org/patchwork/patch/706511/ RFC,2/3][https://lore.kernel.org/patchwork/patch/706513/ RFC,3/3]<br />
* [[A10]] / [[A20]] / [[A31]] HDMI Audio WIP Stefan Mavrodiev [https://lore.kernel.org/patchwork/cover/1177803/ Add support for sun4i HDMI audio]<br />
* [[A80]] Thermal sensor WIP Philipp Rossak (embed-3d): https://github.com/embed-3d/linux/branches/all<br />
* [[R40]] PWM (WIP Hao Zhang [https://www.spinics.net/lists/kernel/msg2731498.html patch-v2])<br />
* [[A20]] Keypad (WiP: Yassin Jaffer (ddc) [http://lists.infradead.org/pipermail/linux-arm-kernel/2015-September/370079.html patch])<br />
* sun8i-ce/sun8i-ss RSA/ECC WIP Corentin LABBE (no public patch yet)<br />
* 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/<br />
<br />
=== Drivers that can still be improved/added ===<br />
<br />
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.<br />
<br />
* [[A31]]/[[A31s]] PWM support ([https://patchwork.ozlabs.org/project/linux-pwm/list/?submitter=70938&state=*&archive=both patch-v4] abandoned by Siarhei Volkau)<br />
* sunxi-musb driver lacks DMA support (with current driver, USB gadgets are limited to PIO, limiting speed to 10MiB/s and causing large CPU)<br />
* DE2 driver has buggy layer support, see [https://patchwork.kernel.org/patch/11145803/]<br />
* DE1/DE2/DE3 writeback support<br />
* A64 audiocodec driver components (sun8i-codec and sun50i-codec-analog) lack support for jack detection<br />
<br />
== Planned for next ==<br />
<br />
== Merged into 6.3 ==<br />
<br />
* [[D1]]<br />
** Crypto<br />
<br />
== Merged into 6.2 ==<br />
<br />
*[[A100]]<br />
** MIPI-DSI<br />
* [[D1]]<br />
** MIPI-DSI<br />
<br />
== Merged into 6.1 ==<br />
<br />
*[[A100]]<br />
** DMA<br />
* [[D1]]<br />
** SRAM<br />
* [[H6]]<br />
** DMIC<br />
** GPU Devfreq<br />
<br />
== Merged into 6.0 ==<br />
<br />
* [[D1]]<br />
** RGB LCD<br />
** I2C<br />
** Pinctrl<br />
** RTC<br />
*[[H616]] [[Orange Pi Zero 2]]<br />
*[[H616]] [[X96 Mate]]<br />
*[[R40]]/[[T3]]/[[A40i]]<br />
** CPUFreq (DVFS) <br />
<br />
== Merged into 5.19 ==<br />
<br />
* [[D1]]<br />
** DMA<br />
** LRADC<br />
* [[F1C100s]] <br />
** SD/MMC<br />
** SPI<br />
** Watchdog<br />
* [[V3s]]<br />
** [https://bootlin.com/blog/linux-5-19-released-bootlin-contributions-inside/ MIPI-CSI2]<br />
<br />
== Merged into 5.18 ==<br />
<br />
* [[D1]]<br />
** I2S<br />
** MMC<br />
** SID<br />
** USB<br />
<br />
== Merged into 5.17 ==<br />
<br />
* [[A64]]/[[H5]]<br />
** DRAM frequency scaling (DEVFREQ)<br />
* [[D1]]<br />
** Clocks<br />
** PLIC<br />
* [[R40]]/[[T3]]/[[A40i]]<br />
** CAN ([https://lore.kernel.org/linux-sunxi/20220111155709.56501-1-boger@wirenboard.com/ series])<br />
<br />
== Merged into 5.16 ==<br />
<br />
* [[R329]]/[[D1]]<br />
** Watchdog<br />
<br />
== Merged into 5.15 (LTS)==<br />
<br />
== Merged into 5.14 ==<br />
*[[H616]]<br />
** PMIC - AXP305<br />
<br />
New Devices Supported<br />
* [[H616]]<br />
** [[Tanix TX6s]]<br />
** [[X96 Mate]]<br />
** [[Xunlong Orange Pi Zero2]]<br />
<br />
== Merged into 5.13 ==<br />
New Devices Supported<br />
* [[A10|A10]]<br />
** Topwise A721 Tablet<br />
<br />
== Merged into 5.12 ==<br />
*[[H616]]<br />
** Clocks<br />
** Pinctrl<br />
** MMC<br />
*[[H6]]<br />
** RSB<br />
*[[A100]]<br />
** MMC<br />
<br />
== Merged into 5.11 ==<br />
*[[H6]]<br />
** [[I2S]]<br />
* multiple SoCs<br />
** [[Cedrus]] VP8 decoding<br />
<br />
New Devices Supported<br />
*[[H3]]<br />
** [[FriendlyArm NanoPi R1]]<br />
** [[FriendlyArm ZeroPi]]<br />
*[[S3]]<br />
** [[Elimo Impetus]]<br />
** [[Elimo Initium]]<br />
<br />
== Merged into 5.10 (LTS) ==<br />
*[[A100]]<br />
** Clocks<br />
** Pinctrl<br />
** [[I2C]]<br />
** Thermal (THS)<br />
<br />
*[[R40]]<br />
** DMA<br />
** GPU [[Mali]]<br />
** [[IR]]<br />
** [[SRAM Controller|SRAM]]<br />
** [[Video_Engine]] | [[Sunxi-Cedrus]]<br />
<br />
*[[V3s]]<br />
** Crypto<br />
** Ethernet<br />
** SimpleFB<br />
** [[SRAM Controller|SRAM]]<br />
<br />
* sun8i-ce/sun8i-ss<br />
** support for PRNG<br />
** support for hashs<br />
** support for TRNG ([[H6]] only)<br />
<br />
New Devices Supported<br />
*[[A100]]<br />
** [[Perf1 board]]<br />
*[[S3l]]<br />
** [[PineCube]]<br />
<br />
== Merged into 5.9 ==<br />
* [[H5]]<br />
** DVFS<br />
<br />
New Devices Supported<br />
* A64<br />
** PinePhone v1.2<br />
<br />
== Merged into 5.8 ==<br />
* [[H6]]<br />
** DVFS<br />
** IOMMU<br />
<br />
* [[A64]] / [[A83T]] / [[H3]] / [[H5]] / [[H6]]<br />
** Message Box<br />
<br />
New Devices Supported<br />
* A20<br />
** [[Olimex_A20-OLinuXino-Lime|OLinuXino Lime (A20)]] eMMC<br />
<br />
== Merged into 5.7 ==<br />
*[[A20]]<br />
** LVDS<br />
<br />
*[[A83T]] and [[A64]]<br />
** Rotate driver<br />
<br />
*[[H6]]<br />
** [[SPIdev|SPI]]<br />
<br />
*[[R40]]<br />
** Thermal<br />
<br />
New Devices Supported<br />
*[[A13]]<br />
** [[PocketBook Touch Lux 3]]<br />
*[[A64]]<br />
** [[PineTab]]<br />
** [[PinePhone]] v1.0 & v1.1<br />
*[[A20]]<br />
** Linutronix Testbox v2<br />
<br />
== Merged into 5.6 ==<br />
* [[A10]]<br />
** CSI (BT656 and Parallel)<br />
<br />
*[[A64]]<br />
** MIPI DSI<br />
** DVFS<br />
<br />
*[[A64]] / [[A83T]] / [[H3]] / [[H5]] / [[H6]]<br />
** Thermal<br />
<br />
*[[H6]]<br />
** PWM<br />
<br />
*[[H3]] / [[H5]] / [[H6]] / [[R40]]<br />
**PMU<br />
<br />
*[[R40]]<br />
** CSI (BT656 and Parallel)<br />
** [[SPIdev|SPI]]<br />
<br />
New Devices Supported<br />
* [[H5]]<br />
** ALL-H3-IT H5 board<br />
** ALL-H5-CC H5 board<br />
* [[H6]]<br />
** [[PineH64]] Model B<br />
<br />
== Merged into 5.5 ==<br />
*[[H3]]<br />
** Deinterlace driver<br />
<br />
*[[H6]]<br />
**Crypto<br />
**GPU(3D) Mali<br />
**USB3 PHY (for boards not needing vbus switching)<br />
<br />
*[[A64]] / [[A80]] / [[A83T]] / [[H3]] / [[H5]] / [[R40]] <br />
**Crypto<br />
<br />
* multiple SoCs<br />
** [[Cedrus]] HEVC/H.265<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** Emlid Neutis<br />
<br />
New Devices Supported<br />
* [[H3]]<br />
** [[FriendlyARM_NanoPi_Duo2]]<br />
<br />
== Merged into 5.4 (LTS)==<br />
* [[A20]]<br />
** CSI (BT656 and Parallel)<br />
* [[A64]]<br />
** IR<br />
* [[H6]]<br />
** IR<br />
** RTC<br />
** SPDIF<br />
New Devices Supported<br />
* [[A64]]<br />
** [[Olimex A64-OLinuXino]] eMMC<br />
* [[H6]]<br />
** [[Tanix TX6]]<br />
* [[S3]]<br />
** [[Lichee Zero Plus]]<br />
<br />
== Merged into 5.3 ==<br />
* [[A64]]<br />
** LRADC<br />
** RGB LCD<br />
* [[A83T]]<br />
** CSI (BT656 and Parallel)<br />
* [[H6]]<br />
** DMA<br />
** Watchdog<br />
* multiple SoCs<br />
** [[Cedrus]] h264<br />
<br />
== Merged into 5.2 ==<br />
* [[A83T]]<br />
** LRADC<br />
** USB OTG<br />
<br />
* [[H6]]<br />
** [[Cedrus]]<br />
<br />
* multiple SoCs<br />
** [[Mali Open Source Driver|Lima]]<br />
** [[Mali Open Source Driver|Panfrost]]<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** Banana-Pi-M2-Zero<br />
<br />
New Devices Supported<br />
* [[H6]]<br />
** [[Beelink GS1]]<br />
** [[Xunlong Orange Pi 3]]<br />
<br />
== Merged into 5.1 ==<br />
* A10<br />
** Cedrus<br />
** PMU<br />
<br />
* A20<br />
** Audio Codec improvements<br />
<br />
* A23<br />
** Display pipeline<br />
** LCD enabled on Q8 A23 tablets<br />
<br />
* A64<br />
** [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c950ca8c35eeb32224a63adc47e12f9e226da241 ARM Architectural Timer errata workaround]<br />
** PMU<br />
** CSI (BT656 and Parallel)<br />
<br />
* A80<br />
** GMAC support<br />
<br />
* CSI in general<br />
** RGR565 support<br />
** JPEG pass-through support<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** [[Banana Pi M2+]]<br />
** [[Banana Pi M2 Ultra]]<br />
<br />
* [[LCD]] enabled on [[A13]] [[Q8]] tablets<br />
<br />
== Merged into 5.0 ==<br />
* A64<br />
** Cedrus<br />
** DTS changes for audio codec<br />
<br />
* F1C100s<br />
** initial F1C100s support<br />
<br />
* H6<br />
** Ethernet<br />
** DE3/HDMI support<br />
** USB 2.0<br />
<br />
* H3 / H5<br />
** CSI (BT656 and Parallel) Support<br />
<br />
* H5<br />
** Cedrus<br />
<br />
* R40<br />
** RTC<br />
<br />
* T3<br />
** initial T3 support<ref>https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b7badd1d7aa61087010803affa19bb83fb5a0af1</ref><br />
<br />
* V3s<br />
** CSI (BT656 and Parallel) Support<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** [[Sinovoip Banana Pi M2 Magic | Banana Pi M2 Magic]]<br />
** [[Banana Pi M3]]<br />
** [[Banana Pi M64]]<br />
** [[Cubietruck]]<br />
** [[Cubietech_Cubietruck_Plus|Cubietruck Plus]]<br />
<br />
New Devices Supported<br />
* [[Xunlong Orange Pi Lite 2]]<br />
* Mapleboard MP130<br />
* LicheePi Nano<br />
* Emlid Neutis N5<br />
<br />
== Merged into 4.20 ==<br />
<br />
* A13 / A20 / A33 / H3<br />
** Cedrus driver<br />
<br />
* A83T<br />
** IR receiver<br />
<br />
* A64<br />
** Cleanup for device tree files<br />
** HDMI support<br />
** Audio codec support (DTS changes will be merged in 5.0)<br />
<br />
* H3 / H5<br />
** SID<br />
<br />
* R40<br />
** SATA<br />
<br />
New Devices Supported<br />
* [[Pine64]] LTS<br />
* [[Xunlong Orange Pi One Plus]]<br />
* [[Xunlong Orange Pi Zero Plus 2]] (H3 variant)<br />
* [[Sinovoip Banana Pi M2+]] (H5 variant)<br />
<br />
== Merged into 4.19 (LTS)==<br />
<br />
* A10 / A13 / A20 / A23 / A33<br />
** SRAM controller / system control<br />
<br />
* A64<br />
** SRAM controller / system control<br />
** Display clocks and bus<br />
** RTC clock output<br />
** PWM<br />
** R_I2C<br />
<br />
* H3<br />
** SRAM controller / system control<br />
<br />
* H6<br />
** MMC<br />
** PMIC<br />
<br />
* R40<br />
** HDMI support<br />
<br />
Board Changes<br />
* SPI flash node for [[Orange Pi PC 2]] and [[Pine64#Variants | Pine64 SoPINE]]<br />
* Use lid switch as wake-up source for A64 based laptops<br />
* LEDs added for [[PineH64]]<br />
<br />
New Devices<br />
* [[Pine Pinebook]]<br />
* Amarula A64-Relic<br />
<br />
== Changes merged up to 4.18 ==<br />
Changes up to 4.18 can be found on [[Linux mainlining history]] page.<br />
<br />
=References=<br />
<references /><br />
<br />
= See also =<br />
* [[Mainline Kernel Howto]]<br />
* [[Possible setups for hacking on mainline]]<br />
* [[Linux Kernel]]<br />
**[[Toolchain]]<br />
<br />
=External Links=<br />
* [http://www.kernel.org kernel.org] - Official website for the Linux Kernel<br />
** [http://github.com/torvalds/linux http://github.com/torvalds/linux] - Linus Torvalds' GitHub account with the upstream Linux kernel<br />
* [http://www.kernel.org/doc/ Linux Kernel documentation index]<br />
* [http://www.kernel.org/doc/man-pages/ Linux Kernel man pages]<br />
* [http://kernelnewbies.org/ Kernel Newbies Site - Excellent source of information for people new to kernel]<br />
* [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=summary Linus' kernel tree for 2.6]<br />
* [https://bugzilla.kernel.org/ Kernel bugzilla] - [https://bugzilla.kernel.org/show_bug.cgi?id=15790 Regressions for each of recent versions]<br />
* [http://www.fsfla.org/svnwiki/selibre/linux-libre/ Linux-libre project - Maintains and distributes fully free kernel]<br />
* [http://lingrok.org/ LinGrok, Linux kernel source code cross-reference]<br />
* [https://elixir.bootlin.com/linux/latest/source?a=arm Bootlin LXR (Linux Cross Reference)]<br />
* [http://lists.infradead.org/pipermail/linux-arm-kernel/ linux-arm-kernel - Mailing list archive]<br />
===How to upstream===<br />
* [http://www.elinux.org/images/a/ad/Arm-soc-checklist.pdf Your new ARM SoC Linux support check-list! by Thomas Petazzoni of Bootlin]<br />
*[http://www.cnx-software.com/2014/03/04/linux-kernel-upstreaming-how-to-linaro-connect-asia-2014/ Linux Kernel Upstreaming How-To (CNXSoft - Embedded Software Development)]<br />
**[http://www.youtube.com/watch?v=dY7fikYZ42c Matt Porter's YouTube video talk on “Upstreaming 101" (LCA14-111)]<br />
***[http://www.linaro.org/documents/download/65f888c674508efcf9bd5d90398a186a530d01c4c78db Matt Porter's presentation slides for “Upstreaming 101" (LCA14-111)]<br />
**[https://www.youtube.com/watch?v=FiQ5uV_Mm5c Matt Porter's YouTube video talk on “Upstreaming 201" (LCA14-112)]<br />
***[http://www.linaro.org/documents/download/7b9920fcc89589bad9063d87d9137f08530d020b71924 Matt Porter's presentation slides for “Upstreaming 201" (LCA14-112)]<br />
*[http://www.cnx-software.com/2011/08/19/how-to-write-and-submit-a-linux-kernel-patch/ How to Write and Submit a Linux Kernel Patch (CNXSoft - Embedded Software Development)]<br />
** [http://www.youtube.com/watch?v=LLBrBBImJt4 YouTube Video- Write and Submit your first Linux kernel Patch]<br />
** [http://www.cnx-software.com/pdf/kernel-tutorial/kernel_patch_tutorial.pdf Greg Kroah-Hartman Kernel Tutorial Write and Submit your first Linux Kernel Patch]<br />
*[http://www.linaro.org/connect-lca14/resources Linaro resources page from LCA (Linaro Connect Asia) 2014]<br />
<br />
=Notes=<br />
<references group=note /><br />
<br />
[[Category:Development]]</div>
Frozeus
https://linux-sunxi.org/index.php?title=Linux_mainlining_effort&diff=25322
Linux mainlining effort
2023-05-02T21:12:11Z
<p>Frozeus: Merged in 5.18</p>
<hr />
<div>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.<br />
<br />
=Overview=<br />
The idea is to submit the code needed to run the Linux kernel on Allwinner SoCs upstream, ie. to the official Linux kernel.<br />
<br />
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.<ref>http://www.elinux.org/images/a/ad/Arm-soc-checklist.pdf</ref><ref>[http://www.cnx-software.com/2013/01/16/your-new-arm-soc-linux-support-check-list-elce-2012/ Your New ARM SoC Linux Support Check-List – ELCE 2012]</ref><br />
<br />
Where relevant, I have attempted to include who is currently working on an item, mostly separate from any particular mainlining goal.<br />
<br />
=Status=<br />
<br />
The [[Mainline_Kernel_Howto|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|Mainline U-Boot howto]].<br />
<br />
The [[:Category:Mainline_Kernel | Mainline Kernel category ]] gives an overview of currently supported devices.<br />
<br />
== Status Matrix ==<br />
<br />
The goal of this matrix is to give an easy view of work on each SoC worked on by linux-sunxi.<br />
<br />
{| class="wikitable" style="text-align: center; width: 100%"<br />
|-<br />
! colspan="2" style="text-align: left; width: 13%" | Model<br />
! [[F1C100s|F1C-<br>100s<br>200s]]<br />
! [[A10]]<br />
! [[A10s]]<br />
! [[A13]]<br>[[R8]]<br />
! [[GR8]]<br />
! [[A20]]<br>[[T2]]<br />
! [[R40]]<br>[[T3]]<br>[[A40i]]<br />
! [[A80]]<br />
! [[A31]]<br />
! [[A23]]<br />
! [[A33]]<br>[[R16]]<br />
! [[A83T]]<br />
! [[H3]]<br />
! [[S3]]<br>[[S3L]]<br>[[V3]]<br>[[V3s]]<br />
! [[A64]]<br />
! [[H5]]<br />
! [[H6]]<br />
! [[A50]]<br />
! [[V831]]<br>[[V833]]<br />
! [[H616]]<br />
! [[A100]]<br>[[A133]]<br />
! [[R329]]<br />
! [[D1]]<br />
<br />
|-<br />
| style="text-align: left;" rowspan="4" | ADC<br />
| style="text-align: left;" | GPADC<br />
| N/A<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | [[LRADC|LRADC]]<br />
| style="background: lightgreen;" | 6.2<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: darkgreen; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.19<br />
| style="background: lightgreen;" | 5.19<br />
<br />
|-<br />
| style="text-align: left;" | Thermal<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 5.7<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| N/A<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" | Touch<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.0<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" rowspan="6" | Audio<br />
| style="text-align: left;" | AC97<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | [[Audio Codec|Analog Codec]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.11<br />
| N/A<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" | Audio Hub<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | DMIC<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 6.1<br />
| style="background: darkgreen; color: white;" | ?<br />
| N/A<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
<br />
|-<br />
| style="text-align: left;" | I2S<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: darkgreen; color: white;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.11<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.18<br />
| style="background: lightgreen;" | 5.18<br />
<br />
|-<br />
| style="text-align: left;" | [[SPDIF]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.7<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.7<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.11<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" rowspan="4" | [[CSI|Camera]]<br />
| style="text-align: left;" | BT656<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
<br />
|-<br />
| style="text-align: left;" | ISP<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
<br />
|-<br />
| style="text-align: left;" | MIPI CSI-2<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| N/A<br />
| style="background: lightgreen;" | 5.19<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
<br />
|-<br />
| style="text-align: left;" | Parallel<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | CAN bus<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 5.17<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Clocks<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.10<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.10<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | [[Linux_mainlining_effort#Core_Stuff|WIP]]<br />
| style="background: lightgreen;" | 5.12<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: orange;" | WIP<br />
| style="background: lightgreen;" | 5.17<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | CPUFreq (DVFS)<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.9<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | CPUIdle<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: orange;" | Crust<br />
| style="background: red;" | NO<br />
| style="background: orange;" | Crust<br />
| style="background: orange;" | Crust<br />
| style="background: orange;" | Crust<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: orange;" | SBI<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[Cryptographic_Hardware_Accelerators|Crypto]]<br />
| N/A<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" rowspan="9" | [https://dri.freedesktop.org/wiki/DRM/ Display (DRM)]<br />
| style="text-align: left;" | CVBS<br />
| style="background: red;" | NO<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9 ?<br />
| style="background: lightgreen;" | 4.7<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | G2D<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | HDMI Audio<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | HDMI CEC<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.14<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.17<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | HDMI Video<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.13<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.17<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" | LVDS<br />
| N/A<br />
| style="background: darkgreen; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.7<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.16<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | MIPI DSI<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.6<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | 6.2<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 6.2<br />
<br />
|-<br />
| style="text-align: left;" | RGB<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.7<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.16<br />
| N/A<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 5.3<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
<br />
|-<br />
| style="text-align: left;" | VGA<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Display (SimpleFB)<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | DMA<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 6.1<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.19<br />
<br />
|-<br />
| style="text-align: left;" rowspan="2" | [[Ethernet]]<br />
| style="text-align: left;" | [[Ethernet#EMAC|EMAC]]<br />
| N/A<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.11<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 5.1<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.15<br />
<br />
|-<br />
| style="text-align: left;" | [[Ethernet#GMAC|GMAC]]<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: lightgreen;" | 3.17<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" rowspan="2" | GPU (3D)<br />
| style="text-align: left;" | [[Mali]]<br />
| N/A<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 5.10<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | 5.2<br />
| N/A<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | [[PowerVR]]<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | HW Spinlocks<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[I2C]]<br />
| style="background: lightgreen;" | 6.2<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.13<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | IOMMU<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" rowspan="2" | [[IR]]<br />
| style="text-align: left;" | [[IR|IR RX]]<br />
| style="background: lightgreen;" | 6.2<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.0<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 4.6<br />
| N/A<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | IR TX<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Keypad<br />
| N/A<br />
| style="background: orange;" | WIP<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | WIP<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | LDOs<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | LEDC<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | MBUS<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.17<br />
| style="background: lightgreen;" | 5.17<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | MsgBox<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: lightgreen;" | 5.8<br />
| N/A<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | PCIe<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]] <ref name="h6-pcie">Allwinner H6 has a quirky PCIe controller that doesn't map the PCIe address space properly to CPU,<br />
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/</ref><br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Pinctrl<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | [[Linux_mainlining_effort#Core_Stuff|WIP]]<br />
| style="background: lightgreen;" | 5.12<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: orange;" | WIP<br />
| style="background: lightgreen;" | 6.0<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[PMU]] (perf, DT only)<br />
| N/A<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[PWM_Controller|PWM]]<br />
| style="background: lightgreen;" | 6.2<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" rowspan="2" | Remoteproc<br />
| style="text-align: left;" | AIPU<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | DSP<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[RSB]]<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.3<br />
| N/A<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.12<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[RTC]]<br />
| N/A<br />
| style="background: lightgreen;" | 3.14<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 5.0<br />
| N/A<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| N/A<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | [[Linux_mainlining_effort#Core_Stuff|WIP]]<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
| style="background: lightgreen;" | 6.0<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | SID (eFuse)<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.18<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | SMP<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: lightgreen;" | PSCI<br />
| N/A<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | PSCI<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SPIdev|SPI]]<br />
| style="background: lightgreen;" | 5.19<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.7<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | [[Linux_mainlining_effort#Core_Stuff|WIP]]<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SRAM Controller|SRAM]]<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 5.10<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 4.19<br />
| N/A<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 6.1<br />
<br />
|-<br />
| style="text-align: left;" rowspan="4" | Storage<br />
| style="text-align: left;" | EMCE<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | [[NAND]]<br />
| N/A<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 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 [[MTD_Driver#Challenges|this page]] </ref><br />
| style="background: lightgreen;" | 4.9 <ref name="mlc" /><br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9 <ref name="mlc"/><br />
| style="background: lightgreen;" | 4.9 <ref name="mlc" /><br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| N/A<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | [[SATA]]<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.20<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | [[eMMC|SD/MMC]]<br />
| style="background: lightgreen;" | 5.19<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: orange;" | [[Linux_mainlining_effort#Core_Stuff|WIP]]<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: lightgreen;" | 5.12<br />
| style="background: orange;" | WIP<br />
| style="background: lightgreen;" | 5.18<br />
<br />
|-<br />
| style="text-align: left;" rowspan="3" | Timer<br />
| style="text-align: left;" | Arch Timer<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: orange;" | WIP<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" | HSTIMER<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
<br />
|-<br />
| style="text-align: left;" | TIMER<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 5.14<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.14<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.14<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
<br />
|-<br />
| style="text-align: left;" rowspan="3" | [[USB]]<br />
| style="text-align: left;" | [[USB]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 6.1.3<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.18<br />
<br />
|-<br />
| style="text-align: left;" | [[USB_OTG_Controller_Register_guide#USB_OTG|USB OTG]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 6.1.3<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.18<br />
<br />
|-<br />
| style="text-align: left;" | USB3<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.5<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[Video_Engine|VE]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: red;" | NO<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.17<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Watchdog<br />
| style="background: lightgreen;" | 5.19<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: orange;" | [[Linux_mainlining_effort#Core_Stuff|WIP]]<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 5.16<br />
| style="background: lightgreen;" | 5.16<br />
<br />
|-<br />
! colspan="2" style="text-align: left; width: 13%" | Model<br />
! [[F1C100s|F1C-<br>100s<br>200s]]<br />
! [[A10]]<br />
! [[A10s]]<br />
! [[A13]]<br>[[R8]]<br />
! [[GR8]]<br />
! [[A20]]<br>[[T2]]<br />
! [[R40]]<br>[[T3]]<br>[[A40i]]<br />
! [[A80]]<br />
! [[A31]]<br />
! [[A23]]<br />
! [[A33]]<br>[[R16]]<br />
! [[A83T]]<br />
! [[H3]]<br />
! [[S3]]<br>[[S3L]]<br>[[V3]]<br>[[V3s]]<br />
! [[A64]]<br />
! [[H5]]<br />
! [[H6]]<br />
! [[A50]]<br />
! [[V831]]<br>[[V833]]<br />
! [[H616]]<br />
! [[A100]]<br>[[A133]]<br />
! [[R329]]<br />
! [[D1]]<br />
|}<br />
<br />
{| class="wikitable" style="text-align: center;"<br />
|-<br />
! Legend<br />
|-<br />
| style="background: lightgreen;" | In Linux mainline since version x<br />
|-<br />
| style="background: darkgreen;" | Nobody works on it, but it should be compatible with already done drivers<br />
|-<br />
| style="background: orange;" | Somebody works on it<br />
|-<br />
| style="background: red;" | No support, nobody works on it<br />
|-<br />
| style="background: black; color: white;" | support impossible<br />
|-<br />
| style="background: grey; color: white;" | Status is unknown/to be completed<br />
|}<br />
<br />
== Work In Progress ==<br />
<br />
=== Core Stuff ===<br />
*[[R528]]/[[T113]] Clocks Samuel Holland [https://lore.kernel.org/linux-sunxi/20221231231429.18357-1-samuel@sholland.org/T/ clk: sunxi-ng: Allwinner R528/T113 clock support]<br />
<br />
*[[R329]] Clocks & Pinctrl / RTC / MMC - Icenowy Zheng [https://lore.kernel.org/linux-sunxi/20220422140902.1058101-1-icenowy@aosc.io/T/#u Initial support for Allwinner R329] <br />
<br />
*[[V831]] / [[V833]] Clocks & Pinctrl / RTC / MMC / Watchdog / SPI - Icenowy Zheng [https://patchwork.kernel.org/project/linux-arm-kernel/cover/20201212040157.3639864-1-icenowy@aosc.io/ Support for Allwinner V831 SoC]<br />
<br />
*[[D1]]/[[D1s]] platform support Samuel Holland [https://lore.kernel.org/linux-sunxi/20221231233851.24923-1-samuel@sholland.org/T/#u riscv: Allwinner D1/D1s platform support]<br />
<br />
*[[AR100]] firmware (WiP: Samuel Holland) [https://github.com/crust-firmware/crust ARISC firmware for sunxi SoCs ]<br />
<br />
* [[A13]] PSCI Suspend / Resume / CPUIdle (WiP: Antoine Tenart) [http://lists.denx.de/pipermail/u-boot/2016-September/265453.html patch-v1]<br />
<br />
=== Major drivers ===<br />
* [[F1C100s]] USB Andre Przywara & Icenowy Zheng [https://lore.kernel.org/linux-sunxi/20230111015332.172021-1-andre.przywara@arm.com/T/ ARM: suniv: USB and two new boards support]<br />
<br />
* [[A100]] DMA/PMU/Watchdog/USB2/USB OTG/MMC(eMMC, SD) Frank Lee [https://patchwork.kernel.org/project/linux-arm-kernel/cover/cover.1604988979.git.frank@allwinnertech.com/ Second step support for A100]<br />
<br />
* [[V3s]] ISP (Image Signal Processor) Paul Kocialkowski [https://bootlin.com/blog/initial-allwinner-v3-isp-support-in-mainline-linux/ initial-allwinner-v3-isp-support-in-mainline-linux]<br />
<br />
* [[H6]] Hypervisor for PCIe [https://forum.armbian.com/topic/13529-a-try-on-utilizing-h6-pcie-with-virtualization/ A try on utilizing H6 PCIe with "Virtualization"]<br />
<br />
* [[A64]] / [[H3]] / [[H5]] / [[H6]] HDMI Audio - Clément Péron / Marcus Cooper / Jernej Škrabec [https://patchwork.kernel.org/cover/11510511/ Add Allwinner H3/H5/A64 HDMI audio]<br />
<br />
* [[R40]] MIPI-DSI WIP Jagan Teki [https://patchwork.kernel.org/cover/11314031/ drm/sun4i: Allwinner R40 MIPI-DSI support v3] <br />
<br />
* [[AC100]] Audio codec WiP Ondrej Jirman [https://megous.com/git/linux/commit/?h=orange-pi-5.5&id=170d38d650f67657600d4e0e868e0e7110b89ee1 digital part] [https://megous.com/git/linux/commit/?h=orange-pi-5.5&id=ee424255a6fb9280ac27c1953019b768ca973ca7 analog part]<br />
<br />
* [[V3s]] SRAM & Video Decoding Engine (Cedrus) WiP Martin Cerveny [https://patchwork.kernel.org/project/linux-arm-kernel/list/?series=347787 Enable video decoder] ([https://github.com/mcerveny/linux/commits/v3s_videocodec_v4 testing with attached LCD])<br />
* [[H6]] VP9 decoder (Hantro G2) WiP jernej [https://github.com/jernejsk/linux-1/commits/vp9 branch]<br />
<br />
=== Minor drivers ===<br />
<!-- Please move the newest entry to the top --><br />
* [[F1C100s]] USB PHY Andre Przywara [https://lore.kernel.org/linux-sunxi/20230109012223.4079299-1-andre.przywara@arm.com/T/ phy: sun4i-usb: add support for the USB PHY on F1C100s SoC]<br />
* [[D1]] IOMMU Samuel Holland [https://lore.kernel.org/linux-sunxi/20230103010903.11181-1-samuel@sholland.org/T/ iommu/sun50i: Allwinner D1 support]<br />
* [[D1]] System LDOs Samuel Holland [https://lore.kernel.org/linux-sunxi/20221208084127.17443-1-samuel@sholland.org/T/ regulator: Add support for Allwinner D1 system LDOs]<br />
* [[D1]] Power domain Samuel Holland [https://lore.kernel.org/linux-sunxi/20221231160402.16157-1-samuel@sholland.org/T/ Allwinner power domain support]<br />
* [[D1]] Video Engine Samuel Holland [https://lore.kernel.org/linux-sunxi/20221231164628.19688-1-samuel@sholland.org/T/ Allwinner D1 video engine support]<br />
* [[D1]] Crypto Samuel Holland [https://lore.kernel.org/linux-sunxi/20221231220146.646-1-samuel@sholland.org/T/ crypto: Allwinner D1 crypto support]<br />
* [[D1]] / [[D1s]] / [[A100]] / [[R329]] LEDC Samuel Holland [https://lore.kernel.org/linux-sunxi/20221231235541.13568-1-samuel@sholland.org/T/#u leds: Allwinner A100 LED controller support]<br />
* [[H6]] Deinterlace driver Jernej Skrabec [https://lore.kernel.org/linux-sunxi/20221101123201.3021129-1-jernej.skrabec@gmail.com/T/ media: sunxi: Add H6 deinterlace driver]<br />
* [[R40]]/[[T3]]/[[A40i]] RTP/LRADC Evgeny Boger [https://lore.kernel.org/linux-sunxi/20211119191456.510435-1-boger@wirenboard.com/]<br />
* [[R40]]/[[T3]]/[[A40i]] EMAC Evgeny Boger [https://lore.kernel.org/linux-sunxi/20220111160600.58384-1-boger@wirenboard.com/ support for two Ethernet ports on Allwinner R40]<br />
* [[R40]]/[[T3]]/[[A40i]] USB OTG qianfan Zhao [https://lore.kernel.org/linux-sunxi/20220518101706.26869-1-qianfanguijin@163.com/T/ ARM: sun8i-r40: Enable usb otg support]<br />
* [[V3]] I2S Tobias Schramm [https://patchwork.kernel.org/project/linux-arm-kernel/list/?series=482161&archive=both&state=* Add missing peripherals to Allwinner V3s/V3 device trees]<br />
* [[H3]] / [[H5]] CVBS WIP Jernej Skrabec [https://github.com/LibreELEC/LibreELEC.tv/blob/master/projects/Allwinner/patches/linux/0036-wip-h3-h5-cvbs.patch Add H3/H5 TVE support]<br />
* [[A100]] CPUFreq (DVFS) Shuosheng Huang [https://patchwork.kernel.org/project/linux-arm-kernel/list/?series=396055&archive=both&state=* cpufreq: sun50i: add a100 cpufreq support]<br />
* [[A64]] hwspinlock WIP Nikolay Borisov [https://patchwork.kernel.org/cover/11373645/ Add support for hwspinlock on A64 SoC] <br />
* [[A83T]] / [[A64]] / [[H3]] hwspinlock WIP Corentin Labbe (montjoie) [https://lore.kernel.org/patchwork/patch/706512/ RFC,1/3][https://lore.kernel.org/patchwork/patch/706511/ RFC,2/3][https://lore.kernel.org/patchwork/patch/706513/ RFC,3/3]<br />
* [[A10]] / [[A20]] / [[A31]] HDMI Audio WIP Stefan Mavrodiev [https://lore.kernel.org/patchwork/cover/1177803/ Add support for sun4i HDMI audio]<br />
* [[A80]] Thermal sensor WIP Philipp Rossak (embed-3d): https://github.com/embed-3d/linux/branches/all<br />
* [[R40]] PWM (WIP Hao Zhang [https://www.spinics.net/lists/kernel/msg2731498.html patch-v2])<br />
* [[A20]] Keypad (WiP: Yassin Jaffer (ddc) [http://lists.infradead.org/pipermail/linux-arm-kernel/2015-September/370079.html patch])<br />
* sun8i-ce/sun8i-ss RSA/ECC WIP Corentin LABBE (no public patch yet)<br />
* 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/<br />
<br />
=== Drivers that can still be improved/added ===<br />
<br />
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.<br />
<br />
* [[A31]]/[[A31s]] PWM support ([https://patchwork.ozlabs.org/project/linux-pwm/list/?submitter=70938&state=*&archive=both patch-v4] abandoned by Siarhei Volkau)<br />
* sunxi-musb driver lacks DMA support (with current driver, USB gadgets are limited to PIO, limiting speed to 10MiB/s and causing large CPU)<br />
* DE2 driver has buggy layer support, see [https://patchwork.kernel.org/patch/11145803/]<br />
* DE1/DE2/DE3 writeback support<br />
* A64 audiocodec driver components (sun8i-codec and sun50i-codec-analog) lack support for jack detection<br />
<br />
== Planned for next ==<br />
<br />
== Merged into 6.2 ==<br />
<br />
*[[A100]]<br />
** MIPI-DSI<br />
* [[D1]]<br />
** MIPI-DSI<br />
<br />
== Merged into 6.1 ==<br />
<br />
*[[A100]]<br />
** DMA<br />
* [[D1]]<br />
** SRAM<br />
* [[H6]]<br />
** DMIC<br />
** GPU Devfreq<br />
<br />
== Merged into 6.0 ==<br />
<br />
* [[D1]]<br />
** RGB LCD<br />
** I2C<br />
** Pinctrl<br />
** RTC<br />
*[[H616]] [[Orange Pi Zero 2]]<br />
*[[H616]] [[X96 Mate]]<br />
*[[R40]]/[[T3]]/[[A40i]]<br />
** CPUFreq (DVFS) <br />
<br />
== Merged into 5.19 ==<br />
<br />
* [[D1]]<br />
** DMA<br />
** LRADC<br />
* [[F1C100s]] <br />
** SD/MMC<br />
** SPI<br />
** Watchdog<br />
* [[V3s]]<br />
** [https://bootlin.com/blog/linux-5-19-released-bootlin-contributions-inside/ MIPI-CSI2]<br />
<br />
== Merged into 5.18 ==<br />
<br />
* [[D1]]<br />
** I2S<br />
** MMC<br />
** SID<br />
** USB<br />
<br />
== Merged into 5.17 ==<br />
<br />
* [[A64]]/[[H5]]<br />
** DRAM frequency scaling (DEVFREQ)<br />
* [[D1]]<br />
** Clocks<br />
** PLIC<br />
* [[R40]]/[[T3]]/[[A40i]]<br />
** CAN ([https://lore.kernel.org/linux-sunxi/20220111155709.56501-1-boger@wirenboard.com/ series])<br />
<br />
== Merged into 5.16 ==<br />
<br />
* [[R329]]/[[D1]]<br />
** Watchdog<br />
<br />
== Merged into 5.15 (LTS)==<br />
<br />
== Merged into 5.14 ==<br />
*[[H616]]<br />
** PMIC - AXP305<br />
<br />
New Devices Supported<br />
* [[H616]]<br />
** [[Tanix TX6s]]<br />
** [[X96 Mate]]<br />
** [[Xunlong Orange Pi Zero2]]<br />
<br />
== Merged into 5.13 ==<br />
New Devices Supported<br />
* [[A10|A10]]<br />
** Topwise A721 Tablet<br />
<br />
== Merged into 5.12 ==<br />
*[[H616]]<br />
** Clocks<br />
** Pinctrl<br />
** MMC<br />
*[[H6]]<br />
** RSB<br />
*[[A100]]<br />
** MMC<br />
<br />
== Merged into 5.11 ==<br />
*[[H6]]<br />
** [[I2S]]<br />
* multiple SoCs<br />
** [[Cedrus]] VP8 decoding<br />
<br />
New Devices Supported<br />
*[[H3]]<br />
** [[FriendlyArm NanoPi R1]]<br />
** [[FriendlyArm ZeroPi]]<br />
*[[S3]]<br />
** [[Elimo Impetus]]<br />
** [[Elimo Initium]]<br />
<br />
== Merged into 5.10 (LTS) ==<br />
*[[A100]]<br />
** Clocks<br />
** Pinctrl<br />
** [[I2C]]<br />
** Thermal (THS)<br />
<br />
*[[R40]]<br />
** DMA<br />
** GPU [[Mali]]<br />
** [[IR]]<br />
** [[SRAM Controller|SRAM]]<br />
** [[Video_Engine]] | [[Sunxi-Cedrus]]<br />
<br />
*[[V3s]]<br />
** Crypto<br />
** Ethernet<br />
** SimpleFB<br />
** [[SRAM Controller|SRAM]]<br />
<br />
* sun8i-ce/sun8i-ss<br />
** support for PRNG<br />
** support for hashs<br />
** support for TRNG ([[H6]] only)<br />
<br />
New Devices Supported<br />
*[[A100]]<br />
** [[Perf1 board]]<br />
*[[S3l]]<br />
** [[PineCube]]<br />
<br />
== Merged into 5.9 ==<br />
* [[H5]]<br />
** DVFS<br />
<br />
New Devices Supported<br />
* A64<br />
** PinePhone v1.2<br />
<br />
== Merged into 5.8 ==<br />
* [[H6]]<br />
** DVFS<br />
** IOMMU<br />
<br />
* [[A64]] / [[A83T]] / [[H3]] / [[H5]] / [[H6]]<br />
** Message Box<br />
<br />
New Devices Supported<br />
* A20<br />
** [[Olimex_A20-OLinuXino-Lime|OLinuXino Lime (A20)]] eMMC<br />
<br />
== Merged into 5.7 ==<br />
*[[A20]]<br />
** LVDS<br />
<br />
*[[A83T]] and [[A64]]<br />
** Rotate driver<br />
<br />
*[[H6]]<br />
** [[SPIdev|SPI]]<br />
<br />
*[[R40]]<br />
** Thermal<br />
<br />
New Devices Supported<br />
*[[A13]]<br />
** [[PocketBook Touch Lux 3]]<br />
*[[A64]]<br />
** [[PineTab]]<br />
** [[PinePhone]] v1.0 & v1.1<br />
*[[A20]]<br />
** Linutronix Testbox v2<br />
<br />
== Merged into 5.6 ==<br />
* [[A10]]<br />
** CSI (BT656 and Parallel)<br />
<br />
*[[A64]]<br />
** MIPI DSI<br />
** DVFS<br />
<br />
*[[A64]] / [[A83T]] / [[H3]] / [[H5]] / [[H6]]<br />
** Thermal<br />
<br />
*[[H6]]<br />
** PWM<br />
<br />
*[[H3]] / [[H5]] / [[H6]] / [[R40]]<br />
**PMU<br />
<br />
*[[R40]]<br />
** CSI (BT656 and Parallel)<br />
** [[SPIdev|SPI]]<br />
<br />
New Devices Supported<br />
* [[H5]]<br />
** ALL-H3-IT H5 board<br />
** ALL-H5-CC H5 board<br />
* [[H6]]<br />
** [[PineH64]] Model B<br />
<br />
== Merged into 5.5 ==<br />
*[[H3]]<br />
** Deinterlace driver<br />
<br />
*[[H6]]<br />
**Crypto<br />
**GPU(3D) Mali<br />
**USB3 PHY (for boards not needing vbus switching)<br />
<br />
*[[A64]] / [[A80]] / [[A83T]] / [[H3]] / [[H5]] / [[R40]] <br />
**Crypto<br />
<br />
* multiple SoCs<br />
** [[Cedrus]] HEVC/H.265<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** Emlid Neutis<br />
<br />
New Devices Supported<br />
* [[H3]]<br />
** [[FriendlyARM_NanoPi_Duo2]]<br />
<br />
== Merged into 5.4 (LTS)==<br />
* [[A20]]<br />
** CSI (BT656 and Parallel)<br />
* [[A64]]<br />
** IR<br />
* [[H6]]<br />
** IR<br />
** RTC<br />
** SPDIF<br />
New Devices Supported<br />
* [[A64]]<br />
** [[Olimex A64-OLinuXino]] eMMC<br />
* [[H6]]<br />
** [[Tanix TX6]]<br />
* [[S3]]<br />
** [[Lichee Zero Plus]]<br />
<br />
== Merged into 5.3 ==<br />
* [[A64]]<br />
** LRADC<br />
** RGB LCD<br />
* [[A83T]]<br />
** CSI (BT656 and Parallel)<br />
* [[H6]]<br />
** DMA<br />
** Watchdog<br />
* multiple SoCs<br />
** [[Cedrus]] h264<br />
<br />
== Merged into 5.2 ==<br />
* [[A83T]]<br />
** LRADC<br />
** USB OTG<br />
<br />
* [[H6]]<br />
** [[Cedrus]]<br />
<br />
* multiple SoCs<br />
** [[Mali Open Source Driver|Lima]]<br />
** [[Mali Open Source Driver|Panfrost]]<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** Banana-Pi-M2-Zero<br />
<br />
New Devices Supported<br />
* [[H6]]<br />
** [[Beelink GS1]]<br />
** [[Xunlong Orange Pi 3]]<br />
<br />
== Merged into 5.1 ==<br />
* A10<br />
** Cedrus<br />
** PMU<br />
<br />
* A20<br />
** Audio Codec improvements<br />
<br />
* A23<br />
** Display pipeline<br />
** LCD enabled on Q8 A23 tablets<br />
<br />
* A64<br />
** [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c950ca8c35eeb32224a63adc47e12f9e226da241 ARM Architectural Timer errata workaround]<br />
** PMU<br />
** CSI (BT656 and Parallel)<br />
<br />
* A80<br />
** GMAC support<br />
<br />
* CSI in general<br />
** RGR565 support<br />
** JPEG pass-through support<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** [[Banana Pi M2+]]<br />
** [[Banana Pi M2 Ultra]]<br />
<br />
* [[LCD]] enabled on [[A13]] [[Q8]] tablets<br />
<br />
== Merged into 5.0 ==<br />
* A64<br />
** Cedrus<br />
** DTS changes for audio codec<br />
<br />
* F1C100s<br />
** initial F1C100s support<br />
<br />
* H6<br />
** Ethernet<br />
** DE3/HDMI support<br />
** USB 2.0<br />
<br />
* H3 / H5<br />
** CSI (BT656 and Parallel) Support<br />
<br />
* H5<br />
** Cedrus<br />
<br />
* R40<br />
** RTC<br />
<br />
* T3<br />
** initial T3 support<ref>https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b7badd1d7aa61087010803affa19bb83fb5a0af1</ref><br />
<br />
* V3s<br />
** CSI (BT656 and Parallel) Support<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** [[Sinovoip Banana Pi M2 Magic | Banana Pi M2 Magic]]<br />
** [[Banana Pi M3]]<br />
** [[Banana Pi M64]]<br />
** [[Cubietruck]]<br />
** [[Cubietech_Cubietruck_Plus|Cubietruck Plus]]<br />
<br />
New Devices Supported<br />
* [[Xunlong Orange Pi Lite 2]]<br />
* Mapleboard MP130<br />
* LicheePi Nano<br />
* Emlid Neutis N5<br />
<br />
== Merged into 4.20 ==<br />
<br />
* A13 / A20 / A33 / H3<br />
** Cedrus driver<br />
<br />
* A83T<br />
** IR receiver<br />
<br />
* A64<br />
** Cleanup for device tree files<br />
** HDMI support<br />
** Audio codec support (DTS changes will be merged in 5.0)<br />
<br />
* H3 / H5<br />
** SID<br />
<br />
* R40<br />
** SATA<br />
<br />
New Devices Supported<br />
* [[Pine64]] LTS<br />
* [[Xunlong Orange Pi One Plus]]<br />
* [[Xunlong Orange Pi Zero Plus 2]] (H3 variant)<br />
* [[Sinovoip Banana Pi M2+]] (H5 variant)<br />
<br />
== Merged into 4.19 (LTS)==<br />
<br />
* A10 / A13 / A20 / A23 / A33<br />
** SRAM controller / system control<br />
<br />
* A64<br />
** SRAM controller / system control<br />
** Display clocks and bus<br />
** RTC clock output<br />
** PWM<br />
** R_I2C<br />
<br />
* H3<br />
** SRAM controller / system control<br />
<br />
* H6<br />
** MMC<br />
** PMIC<br />
<br />
* R40<br />
** HDMI support<br />
<br />
Board Changes<br />
* SPI flash node for [[Orange Pi PC 2]] and [[Pine64#Variants | Pine64 SoPINE]]<br />
* Use lid switch as wake-up source for A64 based laptops<br />
* LEDs added for [[PineH64]]<br />
<br />
New Devices<br />
* [[Pine Pinebook]]<br />
* Amarula A64-Relic<br />
<br />
== Changes merged up to 4.18 ==<br />
Changes up to 4.18 can be found on [[Linux mainlining history]] page.<br />
<br />
=References=<br />
<references /><br />
<br />
= See also =<br />
* [[Mainline Kernel Howto]]<br />
* [[Possible setups for hacking on mainline]]<br />
* [[Linux Kernel]]<br />
**[[Toolchain]]<br />
<br />
=External Links=<br />
* [http://www.kernel.org kernel.org] - Official website for the Linux Kernel<br />
** [http://github.com/torvalds/linux http://github.com/torvalds/linux] - Linus Torvalds' GitHub account with the upstream Linux kernel<br />
* [http://www.kernel.org/doc/ Linux Kernel documentation index]<br />
* [http://www.kernel.org/doc/man-pages/ Linux Kernel man pages]<br />
* [http://kernelnewbies.org/ Kernel Newbies Site - Excellent source of information for people new to kernel]<br />
* [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=summary Linus' kernel tree for 2.6]<br />
* [https://bugzilla.kernel.org/ Kernel bugzilla] - [https://bugzilla.kernel.org/show_bug.cgi?id=15790 Regressions for each of recent versions]<br />
* [http://www.fsfla.org/svnwiki/selibre/linux-libre/ Linux-libre project - Maintains and distributes fully free kernel]<br />
* [http://lingrok.org/ LinGrok, Linux kernel source code cross-reference]<br />
* [https://elixir.bootlin.com/linux/latest/source?a=arm Bootlin LXR (Linux Cross Reference)]<br />
* [http://lists.infradead.org/pipermail/linux-arm-kernel/ linux-arm-kernel - Mailing list archive]<br />
===How to upstream===<br />
* [http://www.elinux.org/images/a/ad/Arm-soc-checklist.pdf Your new ARM SoC Linux support check-list! by Thomas Petazzoni of Bootlin]<br />
*[http://www.cnx-software.com/2014/03/04/linux-kernel-upstreaming-how-to-linaro-connect-asia-2014/ Linux Kernel Upstreaming How-To (CNXSoft - Embedded Software Development)]<br />
**[http://www.youtube.com/watch?v=dY7fikYZ42c Matt Porter's YouTube video talk on “Upstreaming 101" (LCA14-111)]<br />
***[http://www.linaro.org/documents/download/65f888c674508efcf9bd5d90398a186a530d01c4c78db Matt Porter's presentation slides for “Upstreaming 101" (LCA14-111)]<br />
**[https://www.youtube.com/watch?v=FiQ5uV_Mm5c Matt Porter's YouTube video talk on “Upstreaming 201" (LCA14-112)]<br />
***[http://www.linaro.org/documents/download/7b9920fcc89589bad9063d87d9137f08530d020b71924 Matt Porter's presentation slides for “Upstreaming 201" (LCA14-112)]<br />
*[http://www.cnx-software.com/2011/08/19/how-to-write-and-submit-a-linux-kernel-patch/ How to Write and Submit a Linux Kernel Patch (CNXSoft - Embedded Software Development)]<br />
** [http://www.youtube.com/watch?v=LLBrBBImJt4 YouTube Video- Write and Submit your first Linux kernel Patch]<br />
** [http://www.cnx-software.com/pdf/kernel-tutorial/kernel_patch_tutorial.pdf Greg Kroah-Hartman Kernel Tutorial Write and Submit your first Linux Kernel Patch]<br />
*[http://www.linaro.org/connect-lca14/resources Linaro resources page from LCA (Linaro Connect Asia) 2014]<br />
<br />
=Notes=<br />
<references group=note /><br />
<br />
[[Category:Development]]</div>
Frozeus
https://linux-sunxi.org/index.php?title=Linux_mainlining_effort&diff=25128
Linux mainlining effort
2022-11-01T18:17:50Z
<p>Frozeus: DMA for A100 in 6.1</p>
<hr />
<div>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.<br />
<br />
=Overview=<br />
The idea is to submit the code needed to run the Linux kernel on Allwinner SoCs upstream, ie. to the official Linux kernel.<br />
<br />
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.<ref>http://www.elinux.org/images/a/ad/Arm-soc-checklist.pdf</ref><ref>[http://www.cnx-software.com/2013/01/16/your-new-arm-soc-linux-support-check-list-elce-2012/ Your New ARM SoC Linux Support Check-List – ELCE 2012]</ref><br />
<br />
Where relevant, I have attempted to include who is currently working on an item, mostly separate from any particular mainlining goal.<br />
<br />
=Status=<br />
<br />
The [[Mainline_Kernel_Howto|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|Mainline U-Boot howto]].<br />
<br />
The [[:Category:Mainline_Kernel | Mainline Kernel category ]] gives an overview of currently supported devices.<br />
<br />
== Status Matrix ==<br />
<br />
The goal of this matrix is to give an easy view of work on each SoC worked on by linux-sunxi.<br />
<br />
{| class="wikitable" style="text-align: center; width: 100%"<br />
|-<br />
! colspan="2" style="text-align: left; width: 13%" | Model<br />
! [[F1C100s|F1C-<br>100s<br>200s]]<br />
! [[A10]]<br />
! [[A10s]]<br />
! [[A13]]<br>[[R8]]<br />
! [[GR8]]<br />
! [[A20]]<br>[[T2]]<br />
! [[R40]]<br>[[T3]]<br>[[A40i]]<br />
! [[A80]]<br />
! [[A31]]<br />
! [[A23]]<br />
! [[A33]]<br>[[R16]]<br />
! [[A83T]]<br />
! [[H3]]<br />
! [[S3]]<br>[[S3L]]<br>[[V3]]<br>[[V3s]]<br />
! [[A64]]<br />
! [[H5]]<br />
! [[H6]]<br />
! [[A50]]<br />
! [[V831]]<br>[[V833]]<br />
! [[H616]]<br />
! [[A100]]<br>[[A133]]<br />
! [[R329]]<br />
! [[D1]]<br />
<br />
|-<br />
| style="text-align: left;" rowspan="4" | ADC<br />
| style="text-align: left;" | GPADC<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | LRADC<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: darkgreen; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.19<br />
| style="background: lightgreen;" | 5.19<br />
<br />
|-<br />
| style="text-align: left;" | Thermal<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 5.7<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| N/A<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" | Touch<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.0<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" rowspan="6" | Audio<br />
| style="text-align: left;" | AC97<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | [[Audio Codec|Analog Codec]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.11<br />
| N/A<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" | Audio Hub<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | DMIC<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 6.1<br />
| style="background: orange;" | WIP<br />
| N/A<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" | I2S<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: darkgreen; color: white;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.11<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.18<br />
| style="background: lightgreen;" | 5.18<br />
<br />
|-<br />
| style="text-align: left;" | [[SPDIF]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.7<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.7<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.11<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" rowspan="4" | [[CSI|Camera]]<br />
| style="text-align: left;" | BT656<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
<br />
|-<br />
| style="text-align: left;" | ISP<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
<br />
|-<br />
| style="text-align: left;" | MIPI CSI-2<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| N/A<br />
| style="background: lightgreen;" | 5.19<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
<br />
|-<br />
| style="text-align: left;" | Parallel<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Clocks<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.10<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.10<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
| style="background: lightgreen;" | 5.12<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: orange;" | WIP<br />
| style="background: lightgreen;" | 5.17<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | CPUFreq (DVFS)<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.9<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | CPUIdle<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: orange;" | Crust<br />
| style="background: red;" | NO<br />
| style="background: orange;" | Crust<br />
| style="background: orange;" | Crust<br />
| style="background: orange;" | Crust<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: orange;" | SBI<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[Cryptographic_Hardware_Accelerators|Crypto]]<br />
| N/A<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" rowspan="9" | [https://dri.freedesktop.org/wiki/DRM/ Display (DRM)]<br />
| style="text-align: left;" | CVBS<br />
| style="background: red;" | NO<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9 ?<br />
| style="background: lightgreen;" | 4.7<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | G2D<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | HDMI Audio<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | HDMI CEC<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.14<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.17<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | HDMI Video<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.13<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.17<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" | LVDS<br />
| N/A<br />
| style="background: darkgreen; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.7<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.16<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | MIPI DSI<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.6<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
<br />
|-<br />
| style="text-align: left;" | RGB<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.7<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.16<br />
| N/A<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 5.3<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
<br />
|-<br />
| style="text-align: left;" | VGA<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Display (SimpleFB)<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | DMA<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 6.1<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.19<br />
<br />
|-<br />
| style="text-align: left;" rowspan="2" | [[Ethernet]]<br />
| style="text-align: left;" | [[Ethernet#EMAC|EMAC]]<br />
| N/A<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.11<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 5.1<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.15<br />
<br />
|-<br />
| style="text-align: left;" | [[Ethernet#GMAC|GMAC]]<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: lightgreen;" | 3.17<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" rowspan="2" | GPU (3D)<br />
| style="text-align: left;" | [[Mali]]<br />
| N/A<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 5.10<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | 5.2<br />
| N/A<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | [[PowerVR]]<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | HW Spinlocks<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[I2C]]<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.13<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | IOMMU<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" rowspan="2" | [[IR]]<br />
| style="text-align: left;" | [[IR|IR RX]]<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.0<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 4.6<br />
| N/A<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | IR TX<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Keypad<br />
| N/A<br />
| style="background: orange;" | WIP<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | WIP<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | LDOs<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | LEDC<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | MBUS<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.17<br />
| style="background: lightgreen;" | 5.17<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | MsgBox<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: lightgreen;" | 5.8<br />
| N/A<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | PCIe<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]] <ref name="h6-pcie">Allwinner H6 has a quirky PCIe controller that doesn't map the PCIe address space properly to CPU,<br />
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/</ref><br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Pinctrl<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
| style="background: lightgreen;" | 5.12<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: orange;" | WIP<br />
| style="background: lightgreen;" | 6.0<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[PMU]] (perf, DT only)<br />
| N/A<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[PWM_Controller|PWM]]<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" rowspan="2" | Remoteproc<br />
| style="text-align: left;" | AIPU<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | DSP<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[RSB]]<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.3<br />
| N/A<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.12<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[RTC]]<br />
| N/A<br />
| style="background: lightgreen;" | 3.14<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 5.0<br />
| N/A<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| N/A<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
| style="background: lightgreen;" | 6.0<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | SID (eFuse)<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.18<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | SMP<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: lightgreen;" | PSCI<br />
| N/A<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | PSCI<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SPIdev|SPI]]<br />
| style="background: lightgreen;" | 5.19<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.7<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SRAM Controller|SRAM]]<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 5.10<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 4.19<br />
| N/A<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
<br />
|-<br />
| style="text-align: left;" rowspan="4" | Storage<br />
| style="text-align: left;" | EMCE<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | [[NAND]]<br />
| N/A<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 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 [[MTD_Driver#Challenges|this page]] </ref><br />
| style="background: lightgreen;" | 4.9 <ref name="mlc" /><br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9 <ref name="mlc"/><br />
| style="background: lightgreen;" | 4.9 <ref name="mlc" /><br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| N/A<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | [[SATA]]<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.20<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | [[eMMC|SD/MMC]]<br />
| style="background: lightgreen;" | 5.19<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: lightgreen;" | 5.12<br />
| style="background: orange;" | WIP<br />
| style="background: lightgreen;" | 5.18<br />
<br />
|-<br />
| style="text-align: left;" rowspan="3" | Timer<br />
| style="text-align: left;" | Arch Timer<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: orange;" | WIP<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" | HSTIMER<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
<br />
|-<br />
| style="text-align: left;" | TIMER<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 5.14<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.14<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.14<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
<br />
|-<br />
| style="text-align: left;" rowspan="3" | [[USB]]<br />
| style="text-align: left;" | [[USB]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.18<br />
<br />
|-<br />
| style="text-align: left;" | [[USB_OTG_Controller_Register_guide#USB_OTG|USB OTG]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.18<br />
<br />
|-<br />
| style="text-align: left;" | USB3<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.5<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[Video_Engine|VE]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: red;" | NO<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.17<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Watchdog<br />
| style="background: lightgreen;" | 5.19<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 5.16<br />
| style="background: lightgreen;" | 5.16<br />
<br />
|-<br />
! colspan="2" style="text-align: left; width: 13%" | Model<br />
! [[F1C100s|F1C-<br>100s<br>200s]]<br />
! [[A10]]<br />
! [[A10s]]<br />
! [[A13]]<br>[[R8]]<br />
! [[GR8]]<br />
! [[A20]]<br>[[T2]]<br />
! [[R40]]<br>[[T3]]<br>[[A40i]]<br />
! [[A80]]<br />
! [[A31]]<br />
! [[A23]]<br />
! [[A33]]<br>[[R16]]<br />
! [[A83T]]<br />
! [[H3]]<br />
! [[S3]]<br>[[S3L]]<br>[[V3]]<br>[[V3s]]<br />
! [[A64]]<br />
! [[H5]]<br />
! [[H6]]<br />
! [[A50]]<br />
! [[V831]]<br>[[V833]]<br />
! [[H616]]<br />
! [[A100]]<br>[[A133]]<br />
! [[R329]]<br />
! [[D1]]<br />
|}<br />
<br />
{| class="wikitable" style="text-align: center;"<br />
|-<br />
! Legend<br />
|-<br />
| style="background: lightgreen;" | In Linux mainline since version x<br />
|-<br />
| style="background: darkgreen;" | Nobody works on it, but it should be compatible with already done drivers<br />
|-<br />
| style="background: orange;" | Somebody works on it<br />
|-<br />
| style="background: red;" | No support, nobody works on it<br />
|-<br />
| style="background: black; color: white;" | support impossible<br />
|-<br />
| style="background: grey; color: white;" | Status is unknown/to be completed<br />
|}<br />
<br />
== Work In Progress ==<br />
<br />
=== Core Stuff ===<br />
*[[V831]] / [[V833]] Clocks & Pinctrl / RTC / MMC / Watchdog / SPI - Icenowy Zheng [https://patchwork.kernel.org/project/linux-arm-kernel/cover/20201212040157.3639864-1-icenowy@aosc.io/ Support for Allwinner V831 SoC]<br />
<br />
*[[H616]] USB, RTC, PMIC, ... Andre Przywara [https://github.com/apritzel/linux/commits/h616-v6-WIP arm64: sunxi: Initial Allwinner H616 SoC support]<br />
<br />
*[[D1]] SoC and driver support - Samuel Holland: [https://github.com/smaeul/linux/commits/riscv/d1-wip development branch], [https://gist.github.com/smaeul/bf35d0e50ef08bbc8c3e71aec41dd723 boot log]<br />
<br />
*[[AR100]] firmware (WiP: Samuel Holland) [https://github.com/crust-firmware/crust ARISC firmware for sunxi SoCs ]<br />
<br />
* [[A13]] PSCI Suspend / Resume / CPUIdle (WiP: Antoine Tenart) [http://lists.denx.de/pipermail/u-boot/2016-September/265453.html patch-v1]<br />
<br />
=== Major drivers ===<br />
*[[H616]] USB Andre Przywara [https://lore.kernel.org/linux-sunxi/20221031111358.3387297-1-andre.przywara@arm.com/T/ arm64: sunxi: h616: Add USB support]<br />
<br />
* [[F1C100s]] USB WIP Icenowy Zheng [https://lore.kernel.org/linux-sunxi/20221012055602.1544944-1-uwu@icenowy.me/T/#t SUNIV USB and PopStick support (and updating mailmap)]<br />
<br />
* [[A100]] / [[D1]] MIPI DSI Samuel Holland [https://patchwork.kernel.org/project/linux-arm-kernel/list/?series=667093 drm/sun4i: dsi: Support the A100/D1 controller variant] <br />
<br />
* [[A100]] DMA/PMU/Watchdog/USB2/USB OTG/MMC(eMMC, SD) Frank Lee [https://patchwork.kernel.org/project/linux-arm-kernel/cover/cover.1604988979.git.frank@allwinnertech.com/ Second step support for A100]<br />
<br />
* [[V3s]] ISP (Image Signal Processor) Paul Kocialkowski [https://bootlin.com/blog/initial-allwinner-v3-isp-support-in-mainline-linux/ initial-allwinner-v3-isp-support-in-mainline-linux]<br />
<br />
* [[H6]] Hypervisor for PCIe [https://forum.armbian.com/topic/13529-a-try-on-utilizing-h6-pcie-with-virtualization/ A try on utilizing H6 PCIe with "Virtualization"]<br />
<br />
* [[A64]] / [[H3]] / [[H5]] / [[H6]] HDMI Audio - Clément Péron / Marcus Cooper / Jernej Škrabec [https://patchwork.kernel.org/cover/11510511/ Add Allwinner H3/H5/A64 HDMI audio]<br />
<br />
* [[R40]] MIPI-DSI WIP Jagan Teki [https://patchwork.kernel.org/cover/11314031/ drm/sun4i: Allwinner R40 MIPI-DSI support v3] <br />
<br />
* [[AC100]] Audio codec WiP Ondrej Jirman [https://megous.com/git/linux/commit/?h=orange-pi-5.5&id=170d38d650f67657600d4e0e868e0e7110b89ee1 digital part] [https://megous.com/git/linux/commit/?h=orange-pi-5.5&id=ee424255a6fb9280ac27c1953019b768ca973ca7 analog part]<br />
<br />
* [[V3s]] SRAM & Video Decoding Engine (Cedrus) WiP Martin Cerveny [https://patchwork.kernel.org/project/linux-arm-kernel/list/?series=347787 Enable video decoder] ([https://github.com/mcerveny/linux/commits/v3s_videocodec_v4 testing with attached LCD])<br />
* [[H6]] VP9 decoder (Hantro G2) WiP jernej [https://github.com/jernejsk/linux-1/commits/vp9 branch]<br />
<br />
=== Minor drivers ===<br />
<!-- Please move the newest entry to the top --><br />
* [[F1C100s]] LRADC / IR / I2C / PWM Andre Przywara [https://lore.kernel.org/linux-sunxi/20221101141658.3631342-1-andre.przywara@arm.com/T/ ARM: dts: suniv: F1C100s: add more peripherals]<br />
* [[H6]] Deinterlace driver Jernej Skrabec [https://lore.kernel.org/linux-sunxi/20221101123201.3021129-1-jernej.skrabec@gmail.com/T/ media: sunxi: Add H6 deinterlace driver]<br />
* [[D1]] SRAM Samuel Holland [https://patchwork.kernel.org/project/linux-arm-kernel/list/?series=664387 soc: sunxi: sram: Fixes and D1 support] <br />
* [[R40]]/[[T3]]/[[A40i]] RTP/LRADC Evgeny Boger [https://lore.kernel.org/linux-sunxi/20211119191456.510435-1-boger@wirenboard.com/]<br />
* [[R40]]/[[T3]]/[[A40i]] EMAC Evgeny Boger [https://lore.kernel.org/linux-sunxi/20220111160600.58384-1-boger@wirenboard.com/ support for two Ethernet ports on Allwinner R40]<br />
* [[R40]]/[[T3]]/[[A40i]] USB OTG qianfan Zhao [https://lore.kernel.org/linux-sunxi/20220518101706.26869-1-qianfanguijin@163.com/T/ ARM: sun8i-r40: Enable usb otg support]<br />
* [[V3]] I2S Tobias Schramm [https://patchwork.kernel.org/project/linux-arm-kernel/list/?series=482161&archive=both&state=* Add missing peripherals to Allwinner V3s/V3 device trees]<br />
* [[H3]] / [[H5]] CVBS WIP Jernej Skrabec [https://github.com/LibreELEC/LibreELEC.tv/blob/master/projects/Allwinner/patches/linux/0036-wip-h3-h5-cvbs.patch Add H3/H5 TVE support]<br />
* [[A100]] CPUFreq (DVFS) Shuosheng Huang [https://patchwork.kernel.org/project/linux-arm-kernel/list/?series=396055&archive=both&state=* cpufreq: sun50i: add a100 cpufreq support]<br />
* [[A64]] hwspinlock WIP Nikolay Borisov [https://patchwork.kernel.org/cover/11373645/ Add support for hwspinlock on A64 SoC] <br />
* [[A83T]] / [[A64]] / [[H3]] hwspinlock WIP Corentin Labbe (montjoie) [https://lore.kernel.org/patchwork/patch/706512/ RFC,1/3][https://lore.kernel.org/patchwork/patch/706511/ RFC,2/3][https://lore.kernel.org/patchwork/patch/706513/ RFC,3/3]<br />
* [[A10]] / [[A20]] / [[A31]] HDMI Audio WIP Stefan Mavrodiev [https://lore.kernel.org/patchwork/cover/1177803/ Add support for sun4i HDMI audio]<br />
* [[A80]] Thermal sensor WIP Philipp Rossak (embed-3d): https://github.com/embed-3d/linux/branches/all<br />
* [[R40]] PWM (WIP Hao Zhang [https://www.spinics.net/lists/kernel/msg2731498.html patch-v2])<br />
* [[A20]] Keypad (WiP: Yassin Jaffer (ddc) [http://lists.infradead.org/pipermail/linux-arm-kernel/2015-September/370079.html patch])<br />
* sun8i-ce/sun8i-ss RSA/ECC WIP Corentin LABBE (no public patch yet)<br />
* 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/<br />
<br />
=== Drivers that can still be improved/added ===<br />
<br />
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.<br />
<br />
* [[A31]]/[[A31s]] PWM support ([https://patchwork.ozlabs.org/project/linux-pwm/list/?submitter=70938&state=*&archive=both patch-v4] abandoned by Siarhei Volkau)<br />
* sunxi-musb driver lacks DMA support (with current driver, USB gadgets are limited to PIO, limiting speed to 10MiB/s and causing large CPU)<br />
* DE2 driver has buggy layer support, see [https://patchwork.kernel.org/patch/11145803/]<br />
* DE1/DE2/DE3 writeback support<br />
* A64 audiocodec driver components (sun8i-codec and sun50i-codec-analog) lack support for jack detection<br />
<br />
== Planned for next ==<br />
* [[D1]]<br />
** RGB LCD<br />
** I2C<br />
** Pinctrl<br />
** RTC<br />
<br />
== Merged into 6.1 ==<br />
<br />
*[[A100]]<br />
** DMA<br />
* [[H6]]<br />
** DMIC<br />
** GPU Devfreq<br />
<br />
== Merged into 6.0 ==<br />
*[[H616]] [[Orange Pi Zero 2]]<br />
*[[H616]] [[X96 Mate]]<br />
*[[R40]]/[[T3]]/[[A40i]]<br />
** CPUFreq (DVFS) <br />
<br />
== Merged into 5.19 ==<br />
<br />
* [[D1]]<br />
** DMA<br />
** LRADC<br />
* [[F1C100s]] <br />
** SD/MMC<br />
** SPI<br />
** Watchdog<br />
* [[V3s]]<br />
** [https://bootlin.com/blog/linux-5-19-released-bootlin-contributions-inside/ MIPI-CSI2]<br />
<br />
== Merged into 5.18 ==<br />
<br />
* [[D1]]<br />
** I2S<br />
** MMC<br />
** SID<br />
** USB<br />
<br />
== Merged into 5.17 ==<br />
<br />
* [[A64]]/[[H5]]<br />
** DRAM frequency scaling (DEVFREQ)<br />
* [[D1]]<br />
** Clocks<br />
** PLIC<br />
* [[R40]]/[[T3]]/[[A40i]]<br />
** CAN ([https://lore.kernel.org/linux-sunxi/20220111155709.56501-1-boger@wirenboard.com/ series])<br />
<br />
== Merged into 5.16 ==<br />
<br />
* [[R329]]/[[D1]]<br />
** Watchdog<br />
<br />
== Merged into 5.15 (LTS)==<br />
<br />
== Merged into 5.14 ==<br />
*[[H616]]<br />
** PMIC - AXP305<br />
<br />
New Devices Supported<br />
* [[H616]]<br />
** [[Tanix TX6s]]<br />
** [[X96 Mate]]<br />
** [[Xunlong Orange Pi Zero2]]<br />
<br />
== Merged into 5.13 ==<br />
New Devices Supported<br />
* [[A10|A10]]<br />
** Topwise A721 Tablet<br />
<br />
== Merged into 5.12 ==<br />
*[[H616]]<br />
** Clocks<br />
** Pinctrl<br />
** MMC<br />
*[[H6]]<br />
** RSB<br />
*[[A100]]<br />
** MMC<br />
<br />
== Merged into 5.11 ==<br />
*[[H6]]<br />
** [[I2S]]<br />
* multiple SoCs<br />
** [[Cedrus]] VP8 decoding<br />
<br />
New Devices Supported<br />
*[[H3]]<br />
** [[FriendlyArm NanoPi R1]]<br />
** [[FriendlyArm ZeroPi]]<br />
*[[S3]]<br />
** [[Elimo Impetus]]<br />
** [[Elimo Initium]]<br />
<br />
== Merged into 5.10 (LTS) ==<br />
*[[A100]]<br />
** Clocks<br />
** Pinctrl<br />
** [[I2C]]<br />
** Thermal (THS)<br />
<br />
*[[R40]]<br />
** DMA<br />
** GPU [[Mali]]<br />
** [[IR]]<br />
** [[SRAM Controller|SRAM]]<br />
** [[Video_Engine]] | [[Sunxi-Cedrus]]<br />
<br />
*[[V3s]]<br />
** Crypto<br />
** Ethernet<br />
** SimpleFB<br />
** [[SRAM Controller|SRAM]]<br />
<br />
* sun8i-ce/sun8i-ss<br />
** support for PRNG<br />
** support for hashs<br />
** support for TRNG ([[H6]] only)<br />
<br />
New Devices Supported<br />
*[[A100]]<br />
** [[Perf1 board]]<br />
*[[S3l]]<br />
** [[PineCube]]<br />
<br />
== Merged into 5.9 ==<br />
* [[H5]]<br />
** DVFS<br />
<br />
New Devices Supported<br />
* A64<br />
** PinePhone v1.2<br />
<br />
== Merged into 5.8 ==<br />
* [[H6]]<br />
** DVFS<br />
** IOMMU<br />
<br />
* [[A64]] / [[A83T]] / [[H3]] / [[H5]] / [[H6]]<br />
** Message Box<br />
<br />
New Devices Supported<br />
* A20<br />
** [[Olimex_A20-OLinuXino-Lime|OLinuXino Lime (A20)]] eMMC<br />
<br />
== Merged into 5.7 ==<br />
*[[A20]]<br />
** LVDS<br />
<br />
*[[A83T]] and [[A64]]<br />
** Rotate driver<br />
<br />
*[[H6]]<br />
** [[SPIdev|SPI]]<br />
<br />
*[[R40]]<br />
** Thermal<br />
<br />
New Devices Supported<br />
*[[A13]]<br />
** [[PocketBook Touch Lux 3]]<br />
*[[A64]]<br />
** [[PineTab]]<br />
** [[PinePhone]] v1.0 & v1.1<br />
*[[A20]]<br />
** Linutronix Testbox v2<br />
<br />
== Merged into 5.6 ==<br />
* [[A10]]<br />
** CSI (BT656 and Parallel)<br />
<br />
*[[A64]]<br />
** MIPI DSI<br />
** DVFS<br />
<br />
*[[A64]] / [[A83T]] / [[H3]] / [[H5]] / [[H6]]<br />
** Thermal<br />
<br />
*[[H6]]<br />
** PWM<br />
<br />
*[[H3]] / [[H5]] / [[H6]] / [[R40]]<br />
**PMU<br />
<br />
*[[R40]]<br />
** CSI (BT656 and Parallel)<br />
** [[SPIdev|SPI]]<br />
<br />
New Devices Supported<br />
* [[H5]]<br />
** ALL-H3-IT H5 board<br />
** ALL-H5-CC H5 board<br />
* [[H6]]<br />
** [[PineH64]] Model B<br />
<br />
== Merged into 5.5 ==<br />
*[[H3]]<br />
** Deinterlace driver<br />
<br />
*[[H6]]<br />
**Crypto<br />
**GPU(3D) Mali<br />
**USB3 PHY (for boards not needing vbus switching)<br />
<br />
*[[A64]] / [[A80]] / [[A83T]] / [[H3]] / [[H5]] / [[R40]] <br />
**Crypto<br />
<br />
* multiple SoCs<br />
** [[Cedrus]] HEVC/H.265<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** Emlid Neutis<br />
<br />
New Devices Supported<br />
* [[H3]]<br />
** [[FriendlyARM_NanoPi_Duo2]]<br />
<br />
== Merged into 5.4 (LTS)==<br />
* [[A20]]<br />
** CSI (BT656 and Parallel)<br />
* [[A64]]<br />
** IR<br />
* [[H6]]<br />
** IR<br />
** RTC<br />
** SPDIF<br />
New Devices Supported<br />
* [[A64]]<br />
** [[Olimex A64-OLinuXino]] eMMC<br />
* [[H6]]<br />
** [[Tanix TX6]]<br />
* [[S3]]<br />
** [[Lichee Zero Plus]]<br />
<br />
== Merged into 5.3 ==<br />
* [[A64]]<br />
** LRADC<br />
** RGB LCD<br />
* [[A83T]]<br />
** CSI (BT656 and Parallel)<br />
* [[H6]]<br />
** DMA<br />
** Watchdog<br />
* multiple SoCs<br />
** [[Cedrus]] h264<br />
<br />
== Merged into 5.2 ==<br />
* [[A83T]]<br />
** LRADC<br />
** USB OTG<br />
<br />
* [[H6]]<br />
** [[Cedrus]]<br />
<br />
* multiple SoCs<br />
** [[Mali Open Source Driver|Lima]]<br />
** [[Mali Open Source Driver|Panfrost]]<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** Banana-Pi-M2-Zero<br />
<br />
New Devices Supported<br />
* [[H6]]<br />
** [[Beelink GS1]]<br />
** [[Xunlong Orange Pi 3]]<br />
<br />
== Merged into 5.1 ==<br />
* A10<br />
** Cedrus<br />
** PMU<br />
<br />
* A20<br />
** Audio Codec improvements<br />
<br />
* A23<br />
** Display pipeline<br />
** LCD enabled on Q8 A23 tablets<br />
<br />
* A64<br />
** [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c950ca8c35eeb32224a63adc47e12f9e226da241 ARM Architectural Timer errata workaround]<br />
** PMU<br />
** CSI (BT656 and Parallel)<br />
<br />
* A80<br />
** GMAC support<br />
<br />
* CSI in general<br />
** RGR565 support<br />
** JPEG pass-through support<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** [[Banana Pi M2+]]<br />
** [[Banana Pi M2 Ultra]]<br />
<br />
* [[LCD]] enabled on [[A13]] [[Q8]] tablets<br />
<br />
== Merged into 5.0 ==<br />
* A64<br />
** Cedrus<br />
** DTS changes for audio codec<br />
<br />
* F1C100s<br />
** initial F1C100s support<br />
<br />
* H6<br />
** Ethernet<br />
** DE3/HDMI support<br />
** USB 2.0<br />
<br />
* H3 / H5<br />
** CSI (BT656 and Parallel) Support<br />
<br />
* H5<br />
** Cedrus<br />
<br />
* R40<br />
** RTC<br />
<br />
* T3<br />
** initial T3 support<ref>https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b7badd1d7aa61087010803affa19bb83fb5a0af1</ref><br />
<br />
* V3s<br />
** CSI (BT656 and Parallel) Support<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** [[Sinovoip Banana Pi M2 Magic | Banana Pi M2 Magic]]<br />
** [[Banana Pi M3]]<br />
** [[Banana Pi M64]]<br />
** [[Cubietruck]]<br />
** [[Cubietech_Cubietruck_Plus|Cubietruck Plus]]<br />
<br />
New Devices Supported<br />
* [[Xunlong Orange Pi Lite 2]]<br />
* Mapleboard MP130<br />
* LicheePi Nano<br />
* Emlid Neutis N5<br />
<br />
== Merged into 4.20 ==<br />
<br />
* A13 / A20 / A33 / H3<br />
** Cedrus driver<br />
<br />
* A83T<br />
** IR receiver<br />
<br />
* A64<br />
** Cleanup for device tree files<br />
** HDMI support<br />
** Audio codec support (DTS changes will be merged in 5.0)<br />
<br />
* H3 / H5<br />
** SID<br />
<br />
* R40<br />
** SATA<br />
<br />
New Devices Supported<br />
* [[Pine64]] LTS<br />
* [[Xunlong Orange Pi One Plus]]<br />
* [[Xunlong Orange Pi Zero Plus 2]] (H3 variant)<br />
* [[Sinovoip Banana Pi M2+]] (H5 variant)<br />
<br />
== Merged into 4.19 (LTS)==<br />
<br />
* A10 / A13 / A20 / A23 / A33<br />
** SRAM controller / system control<br />
<br />
* A64<br />
** SRAM controller / system control<br />
** Display clocks and bus<br />
** RTC clock output<br />
** PWM<br />
** R_I2C<br />
<br />
* H3<br />
** SRAM controller / system control<br />
<br />
* H6<br />
** MMC<br />
** PMIC<br />
<br />
* R40<br />
** HDMI support<br />
<br />
Board Changes<br />
* SPI flash node for [[Orange Pi PC 2]] and [[Pine64#Variants | Pine64 SoPINE]]<br />
* Use lid switch as wake-up source for A64 based laptops<br />
* LEDs added for [[PineH64]]<br />
<br />
New Devices<br />
* [[Pine Pinebook]]<br />
* Amarula A64-Relic<br />
<br />
== Changes merged up to 4.18 ==<br />
Changes up to 4.18 can be found on [[Linux mainlining history]] page.<br />
<br />
=References=<br />
<references /><br />
<br />
= See also =<br />
* [[Mainline Kernel Howto]]<br />
* [[Possible setups for hacking on mainline]]<br />
* [[Linux Kernel]]<br />
**[[Toolchain]]<br />
<br />
=External Links=<br />
* [http://www.kernel.org kernel.org] - Official website for the Linux Kernel<br />
** [http://github.com/torvalds/linux http://github.com/torvalds/linux] - Linus Torvalds' GitHub account with the upstream Linux kernel<br />
* [http://www.kernel.org/doc/ Linux Kernel documentation index]<br />
* [http://www.kernel.org/doc/man-pages/ Linux Kernel man pages]<br />
* [http://kernelnewbies.org/ Kernel Newbies Site - Excellent source of information for people new to kernel]<br />
* [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=summary Linus' kernel tree for 2.6]<br />
* [https://bugzilla.kernel.org/ Kernel bugzilla] - [https://bugzilla.kernel.org/show_bug.cgi?id=15790 Regressions for each of recent versions]<br />
* [http://www.fsfla.org/svnwiki/selibre/linux-libre/ Linux-libre project - Maintains and distributes fully free kernel]<br />
* [http://lingrok.org/ LinGrok, Linux kernel source code cross-reference]<br />
* [https://elixir.bootlin.com/linux/latest/source?a=arm Bootlin LXR (Linux Cross Reference)]<br />
* [http://lists.infradead.org/pipermail/linux-arm-kernel/ linux-arm-kernel - Mailing list archive]<br />
===How to upstream===<br />
* [http://www.elinux.org/images/a/ad/Arm-soc-checklist.pdf Your new ARM SoC Linux support check-list! by Thomas Petazzoni of Bootlin]<br />
*[http://www.cnx-software.com/2014/03/04/linux-kernel-upstreaming-how-to-linaro-connect-asia-2014/ Linux Kernel Upstreaming How-To (CNXSoft - Embedded Software Development)]<br />
**[http://www.youtube.com/watch?v=dY7fikYZ42c Matt Porter's YouTube video talk on “Upstreaming 101" (LCA14-111)]<br />
***[http://www.linaro.org/documents/download/65f888c674508efcf9bd5d90398a186a530d01c4c78db Matt Porter's presentation slides for “Upstreaming 101" (LCA14-111)]<br />
**[https://www.youtube.com/watch?v=FiQ5uV_Mm5c Matt Porter's YouTube video talk on “Upstreaming 201" (LCA14-112)]<br />
***[http://www.linaro.org/documents/download/7b9920fcc89589bad9063d87d9137f08530d020b71924 Matt Porter's presentation slides for “Upstreaming 201" (LCA14-112)]<br />
*[http://www.cnx-software.com/2011/08/19/how-to-write-and-submit-a-linux-kernel-patch/ How to Write and Submit a Linux Kernel Patch (CNXSoft - Embedded Software Development)]<br />
** [http://www.youtube.com/watch?v=LLBrBBImJt4 YouTube Video- Write and Submit your first Linux kernel Patch]<br />
** [http://www.cnx-software.com/pdf/kernel-tutorial/kernel_patch_tutorial.pdf Greg Kroah-Hartman Kernel Tutorial Write and Submit your first Linux Kernel Patch]<br />
*[http://www.linaro.org/connect-lca14/resources Linaro resources page from LCA (Linaro Connect Asia) 2014]<br />
<br />
=Notes=<br />
<references group=note /><br />
<br />
[[Category:Development]]</div>
Frozeus
https://linux-sunxi.org/index.php?title=Linux_mainlining_effort&diff=25127
Linux mainlining effort
2022-11-01T18:16:00Z
<p>Frozeus: Add GPU devfreq for H6 in 6.1</p>
<hr />
<div>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.<br />
<br />
=Overview=<br />
The idea is to submit the code needed to run the Linux kernel on Allwinner SoCs upstream, ie. to the official Linux kernel.<br />
<br />
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.<ref>http://www.elinux.org/images/a/ad/Arm-soc-checklist.pdf</ref><ref>[http://www.cnx-software.com/2013/01/16/your-new-arm-soc-linux-support-check-list-elce-2012/ Your New ARM SoC Linux Support Check-List – ELCE 2012]</ref><br />
<br />
Where relevant, I have attempted to include who is currently working on an item, mostly separate from any particular mainlining goal.<br />
<br />
=Status=<br />
<br />
The [[Mainline_Kernel_Howto|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|Mainline U-Boot howto]].<br />
<br />
The [[:Category:Mainline_Kernel | Mainline Kernel category ]] gives an overview of currently supported devices.<br />
<br />
== Status Matrix ==<br />
<br />
The goal of this matrix is to give an easy view of work on each SoC worked on by linux-sunxi.<br />
<br />
{| class="wikitable" style="text-align: center; width: 100%"<br />
|-<br />
! colspan="2" style="text-align: left; width: 13%" | Model<br />
! [[F1C100s|F1C-<br>100s<br>200s]]<br />
! [[A10]]<br />
! [[A10s]]<br />
! [[A13]]<br>[[R8]]<br />
! [[GR8]]<br />
! [[A20]]<br>[[T2]]<br />
! [[R40]]<br>[[T3]]<br>[[A40i]]<br />
! [[A80]]<br />
! [[A31]]<br />
! [[A23]]<br />
! [[A33]]<br>[[R16]]<br />
! [[A83T]]<br />
! [[H3]]<br />
! [[S3]]<br>[[S3L]]<br>[[V3]]<br>[[V3s]]<br />
! [[A64]]<br />
! [[H5]]<br />
! [[H6]]<br />
! [[A50]]<br />
! [[V831]]<br>[[V833]]<br />
! [[H616]]<br />
! [[A100]]<br>[[A133]]<br />
! [[R329]]<br />
! [[D1]]<br />
<br />
|-<br />
| style="text-align: left;" rowspan="4" | ADC<br />
| style="text-align: left;" | GPADC<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | LRADC<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: darkgreen; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.19<br />
| style="background: lightgreen;" | 5.19<br />
<br />
|-<br />
| style="text-align: left;" | Thermal<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 5.7<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| N/A<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" | Touch<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.0<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" rowspan="6" | Audio<br />
| style="text-align: left;" | AC97<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | [[Audio Codec|Analog Codec]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.11<br />
| N/A<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" | Audio Hub<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | DMIC<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 6.1<br />
| style="background: orange;" | WIP<br />
| N/A<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" | I2S<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: darkgreen; color: white;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.11<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.18<br />
| style="background: lightgreen;" | 5.18<br />
<br />
|-<br />
| style="text-align: left;" | [[SPDIF]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.7<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.7<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.11<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" rowspan="4" | [[CSI|Camera]]<br />
| style="text-align: left;" | BT656<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
<br />
|-<br />
| style="text-align: left;" | ISP<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
<br />
|-<br />
| style="text-align: left;" | MIPI CSI-2<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| N/A<br />
| style="background: lightgreen;" | 5.19<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
<br />
|-<br />
| style="text-align: left;" | Parallel<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Clocks<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.10<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.10<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
| style="background: lightgreen;" | 5.12<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: orange;" | WIP<br />
| style="background: lightgreen;" | 5.17<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | CPUFreq (DVFS)<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.9<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | CPUIdle<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: orange;" | Crust<br />
| style="background: red;" | NO<br />
| style="background: orange;" | Crust<br />
| style="background: orange;" | Crust<br />
| style="background: orange;" | Crust<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: orange;" | SBI<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[Cryptographic_Hardware_Accelerators|Crypto]]<br />
| N/A<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" rowspan="9" | [https://dri.freedesktop.org/wiki/DRM/ Display (DRM)]<br />
| style="text-align: left;" | CVBS<br />
| style="background: red;" | NO<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9 ?<br />
| style="background: lightgreen;" | 4.7<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | G2D<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | HDMI Audio<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | HDMI CEC<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.14<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.17<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | HDMI Video<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.13<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.17<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" | LVDS<br />
| N/A<br />
| style="background: darkgreen; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.7<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.16<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | MIPI DSI<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.6<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
<br />
|-<br />
| style="text-align: left;" | RGB<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.7<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.16<br />
| N/A<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 5.3<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
<br />
|-<br />
| style="text-align: left;" | VGA<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Display (SimpleFB)<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | DMA<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.19<br />
<br />
|-<br />
| style="text-align: left;" rowspan="2" | [[Ethernet]]<br />
| style="text-align: left;" | [[Ethernet#EMAC|EMAC]]<br />
| N/A<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.11<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 5.1<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.15<br />
<br />
|-<br />
| style="text-align: left;" | [[Ethernet#GMAC|GMAC]]<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: lightgreen;" | 3.17<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" rowspan="2" | GPU (3D)<br />
| style="text-align: left;" | [[Mali]]<br />
| N/A<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 5.10<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | 5.2<br />
| N/A<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | [[PowerVR]]<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | HW Spinlocks<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[I2C]]<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.13<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | IOMMU<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" rowspan="2" | [[IR]]<br />
| style="text-align: left;" | [[IR|IR RX]]<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.0<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 4.6<br />
| N/A<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | IR TX<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Keypad<br />
| N/A<br />
| style="background: orange;" | WIP<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | WIP<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | LDOs<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | LEDC<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | MBUS<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.17<br />
| style="background: lightgreen;" | 5.17<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | MsgBox<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: lightgreen;" | 5.8<br />
| N/A<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | PCIe<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]] <ref name="h6-pcie">Allwinner H6 has a quirky PCIe controller that doesn't map the PCIe address space properly to CPU,<br />
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/</ref><br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Pinctrl<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
| style="background: lightgreen;" | 5.12<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: orange;" | WIP<br />
| style="background: lightgreen;" | 6.0<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[PMU]] (perf, DT only)<br />
| N/A<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[PWM_Controller|PWM]]<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" rowspan="2" | Remoteproc<br />
| style="text-align: left;" | AIPU<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | DSP<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[RSB]]<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.3<br />
| N/A<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.12<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[RTC]]<br />
| N/A<br />
| style="background: lightgreen;" | 3.14<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 5.0<br />
| N/A<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| N/A<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
| style="background: lightgreen;" | 6.0<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | SID (eFuse)<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.18<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | SMP<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: lightgreen;" | PSCI<br />
| N/A<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | PSCI<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SPIdev|SPI]]<br />
| style="background: lightgreen;" | 5.19<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.7<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SRAM Controller|SRAM]]<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 5.10<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 4.19<br />
| N/A<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
<br />
|-<br />
| style="text-align: left;" rowspan="4" | Storage<br />
| style="text-align: left;" | EMCE<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | [[NAND]]<br />
| N/A<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 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 [[MTD_Driver#Challenges|this page]] </ref><br />
| style="background: lightgreen;" | 4.9 <ref name="mlc" /><br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9 <ref name="mlc"/><br />
| style="background: lightgreen;" | 4.9 <ref name="mlc" /><br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| N/A<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | [[SATA]]<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.20<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | [[eMMC|SD/MMC]]<br />
| style="background: lightgreen;" | 5.19<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: lightgreen;" | 5.12<br />
| style="background: orange;" | WIP<br />
| style="background: lightgreen;" | 5.18<br />
<br />
|-<br />
| style="text-align: left;" rowspan="3" | Timer<br />
| style="text-align: left;" | Arch Timer<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: orange;" | WIP<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" | HSTIMER<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
<br />
|-<br />
| style="text-align: left;" | TIMER<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 5.14<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.14<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.14<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
<br />
|-<br />
| style="text-align: left;" rowspan="3" | [[USB]]<br />
| style="text-align: left;" | [[USB]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.18<br />
<br />
|-<br />
| style="text-align: left;" | [[USB_OTG_Controller_Register_guide#USB_OTG|USB OTG]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.18<br />
<br />
|-<br />
| style="text-align: left;" | USB3<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.5<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[Video_Engine|VE]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: red;" | NO<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.17<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Watchdog<br />
| style="background: lightgreen;" | 5.19<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 5.16<br />
| style="background: lightgreen;" | 5.16<br />
<br />
|-<br />
! colspan="2" style="text-align: left; width: 13%" | Model<br />
! [[F1C100s|F1C-<br>100s<br>200s]]<br />
! [[A10]]<br />
! [[A10s]]<br />
! [[A13]]<br>[[R8]]<br />
! [[GR8]]<br />
! [[A20]]<br>[[T2]]<br />
! [[R40]]<br>[[T3]]<br>[[A40i]]<br />
! [[A80]]<br />
! [[A31]]<br />
! [[A23]]<br />
! [[A33]]<br>[[R16]]<br />
! [[A83T]]<br />
! [[H3]]<br />
! [[S3]]<br>[[S3L]]<br>[[V3]]<br>[[V3s]]<br />
! [[A64]]<br />
! [[H5]]<br />
! [[H6]]<br />
! [[A50]]<br />
! [[V831]]<br>[[V833]]<br />
! [[H616]]<br />
! [[A100]]<br>[[A133]]<br />
! [[R329]]<br />
! [[D1]]<br />
|}<br />
<br />
{| class="wikitable" style="text-align: center;"<br />
|-<br />
! Legend<br />
|-<br />
| style="background: lightgreen;" | In Linux mainline since version x<br />
|-<br />
| style="background: darkgreen;" | Nobody works on it, but it should be compatible with already done drivers<br />
|-<br />
| style="background: orange;" | Somebody works on it<br />
|-<br />
| style="background: red;" | No support, nobody works on it<br />
|-<br />
| style="background: black; color: white;" | support impossible<br />
|-<br />
| style="background: grey; color: white;" | Status is unknown/to be completed<br />
|}<br />
<br />
== Work In Progress ==<br />
<br />
=== Core Stuff ===<br />
*[[V831]] / [[V833]] Clocks & Pinctrl / RTC / MMC / Watchdog / SPI - Icenowy Zheng [https://patchwork.kernel.org/project/linux-arm-kernel/cover/20201212040157.3639864-1-icenowy@aosc.io/ Support for Allwinner V831 SoC]<br />
<br />
*[[H616]] USB, RTC, PMIC, ... Andre Przywara [https://github.com/apritzel/linux/commits/h616-v6-WIP arm64: sunxi: Initial Allwinner H616 SoC support]<br />
<br />
*[[D1]] SoC and driver support - Samuel Holland: [https://github.com/smaeul/linux/commits/riscv/d1-wip development branch], [https://gist.github.com/smaeul/bf35d0e50ef08bbc8c3e71aec41dd723 boot log]<br />
<br />
*[[AR100]] firmware (WiP: Samuel Holland) [https://github.com/crust-firmware/crust ARISC firmware for sunxi SoCs ]<br />
<br />
* [[A13]] PSCI Suspend / Resume / CPUIdle (WiP: Antoine Tenart) [http://lists.denx.de/pipermail/u-boot/2016-September/265453.html patch-v1]<br />
<br />
=== Major drivers ===<br />
*[[H616]] USB Andre Przywara [https://lore.kernel.org/linux-sunxi/20221031111358.3387297-1-andre.przywara@arm.com/T/ arm64: sunxi: h616: Add USB support]<br />
<br />
* [[F1C100s]] USB WIP Icenowy Zheng [https://lore.kernel.org/linux-sunxi/20221012055602.1544944-1-uwu@icenowy.me/T/#t SUNIV USB and PopStick support (and updating mailmap)]<br />
<br />
* [[A100]] / [[D1]] MIPI DSI Samuel Holland [https://patchwork.kernel.org/project/linux-arm-kernel/list/?series=667093 drm/sun4i: dsi: Support the A100/D1 controller variant] <br />
<br />
* [[A100]] DMA/PMU/Watchdog/USB2/USB OTG/MMC(eMMC, SD) Frank Lee [https://patchwork.kernel.org/project/linux-arm-kernel/cover/cover.1604988979.git.frank@allwinnertech.com/ Second step support for A100]<br />
<br />
* [[V3s]] ISP (Image Signal Processor) Paul Kocialkowski [https://bootlin.com/blog/initial-allwinner-v3-isp-support-in-mainline-linux/ initial-allwinner-v3-isp-support-in-mainline-linux]<br />
<br />
* [[H6]] Hypervisor for PCIe [https://forum.armbian.com/topic/13529-a-try-on-utilizing-h6-pcie-with-virtualization/ A try on utilizing H6 PCIe with "Virtualization"]<br />
<br />
* [[A64]] / [[H3]] / [[H5]] / [[H6]] HDMI Audio - Clément Péron / Marcus Cooper / Jernej Škrabec [https://patchwork.kernel.org/cover/11510511/ Add Allwinner H3/H5/A64 HDMI audio]<br />
<br />
* [[R40]] MIPI-DSI WIP Jagan Teki [https://patchwork.kernel.org/cover/11314031/ drm/sun4i: Allwinner R40 MIPI-DSI support v3] <br />
<br />
* [[AC100]] Audio codec WiP Ondrej Jirman [https://megous.com/git/linux/commit/?h=orange-pi-5.5&id=170d38d650f67657600d4e0e868e0e7110b89ee1 digital part] [https://megous.com/git/linux/commit/?h=orange-pi-5.5&id=ee424255a6fb9280ac27c1953019b768ca973ca7 analog part]<br />
<br />
* [[V3s]] SRAM & Video Decoding Engine (Cedrus) WiP Martin Cerveny [https://patchwork.kernel.org/project/linux-arm-kernel/list/?series=347787 Enable video decoder] ([https://github.com/mcerveny/linux/commits/v3s_videocodec_v4 testing with attached LCD])<br />
* [[H6]] VP9 decoder (Hantro G2) WiP jernej [https://github.com/jernejsk/linux-1/commits/vp9 branch]<br />
<br />
=== Minor drivers ===<br />
<!-- Please move the newest entry to the top --><br />
* [[F1C100s]] LRADC / IR / I2C / PWM Andre Przywara [https://lore.kernel.org/linux-sunxi/20221101141658.3631342-1-andre.przywara@arm.com/T/ ARM: dts: suniv: F1C100s: add more peripherals]<br />
* [[H6]] Deinterlace driver Jernej Skrabec [https://lore.kernel.org/linux-sunxi/20221101123201.3021129-1-jernej.skrabec@gmail.com/T/ media: sunxi: Add H6 deinterlace driver]<br />
* [[D1]] SRAM Samuel Holland [https://patchwork.kernel.org/project/linux-arm-kernel/list/?series=664387 soc: sunxi: sram: Fixes and D1 support] <br />
* [[R40]]/[[T3]]/[[A40i]] RTP/LRADC Evgeny Boger [https://lore.kernel.org/linux-sunxi/20211119191456.510435-1-boger@wirenboard.com/]<br />
* [[R40]]/[[T3]]/[[A40i]] EMAC Evgeny Boger [https://lore.kernel.org/linux-sunxi/20220111160600.58384-1-boger@wirenboard.com/ support for two Ethernet ports on Allwinner R40]<br />
* [[R40]]/[[T3]]/[[A40i]] USB OTG qianfan Zhao [https://lore.kernel.org/linux-sunxi/20220518101706.26869-1-qianfanguijin@163.com/T/ ARM: sun8i-r40: Enable usb otg support]<br />
* [[V3]] I2S Tobias Schramm [https://patchwork.kernel.org/project/linux-arm-kernel/list/?series=482161&archive=both&state=* Add missing peripherals to Allwinner V3s/V3 device trees]<br />
* [[H3]] / [[H5]] CVBS WIP Jernej Skrabec [https://github.com/LibreELEC/LibreELEC.tv/blob/master/projects/Allwinner/patches/linux/0036-wip-h3-h5-cvbs.patch Add H3/H5 TVE support]<br />
* [[A100]] CPUFreq (DVFS) Shuosheng Huang [https://patchwork.kernel.org/project/linux-arm-kernel/list/?series=396055&archive=both&state=* cpufreq: sun50i: add a100 cpufreq support]<br />
* [[A64]] hwspinlock WIP Nikolay Borisov [https://patchwork.kernel.org/cover/11373645/ Add support for hwspinlock on A64 SoC] <br />
* [[A83T]] / [[A64]] / [[H3]] hwspinlock WIP Corentin Labbe (montjoie) [https://lore.kernel.org/patchwork/patch/706512/ RFC,1/3][https://lore.kernel.org/patchwork/patch/706511/ RFC,2/3][https://lore.kernel.org/patchwork/patch/706513/ RFC,3/3]<br />
* [[A10]] / [[A20]] / [[A31]] HDMI Audio WIP Stefan Mavrodiev [https://lore.kernel.org/patchwork/cover/1177803/ Add support for sun4i HDMI audio]<br />
* [[A80]] Thermal sensor WIP Philipp Rossak (embed-3d): https://github.com/embed-3d/linux/branches/all<br />
* [[R40]] PWM (WIP Hao Zhang [https://www.spinics.net/lists/kernel/msg2731498.html patch-v2])<br />
* [[A20]] Keypad (WiP: Yassin Jaffer (ddc) [http://lists.infradead.org/pipermail/linux-arm-kernel/2015-September/370079.html patch])<br />
* sun8i-ce/sun8i-ss RSA/ECC WIP Corentin LABBE (no public patch yet)<br />
* 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/<br />
<br />
=== Drivers that can still be improved/added ===<br />
<br />
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.<br />
<br />
* [[A31]]/[[A31s]] PWM support ([https://patchwork.ozlabs.org/project/linux-pwm/list/?submitter=70938&state=*&archive=both patch-v4] abandoned by Siarhei Volkau)<br />
* sunxi-musb driver lacks DMA support (with current driver, USB gadgets are limited to PIO, limiting speed to 10MiB/s and causing large CPU)<br />
* DE2 driver has buggy layer support, see [https://patchwork.kernel.org/patch/11145803/]<br />
* DE1/DE2/DE3 writeback support<br />
* A64 audiocodec driver components (sun8i-codec and sun50i-codec-analog) lack support for jack detection<br />
<br />
== Planned for next ==<br />
* [[D1]]<br />
** RGB LCD<br />
** I2C<br />
** Pinctrl<br />
** RTC<br />
<br />
== Merged into 6.1 ==<br />
<br />
* [[H6]]<br />
** DMIC<br />
** GPU Devfreq<br />
<br />
== Merged into 6.0 ==<br />
*[[H616]] [[Orange Pi Zero 2]]<br />
*[[H616]] [[X96 Mate]]<br />
*[[R40]]/[[T3]]/[[A40i]]<br />
** CPUFreq (DVFS) <br />
<br />
== Merged into 5.19 ==<br />
<br />
* [[D1]]<br />
** DMA<br />
** LRADC<br />
* [[F1C100s]] <br />
** SD/MMC<br />
** SPI<br />
** Watchdog<br />
* [[V3s]]<br />
** [https://bootlin.com/blog/linux-5-19-released-bootlin-contributions-inside/ MIPI-CSI2]<br />
<br />
== Merged into 5.18 ==<br />
<br />
* [[D1]]<br />
** I2S<br />
** MMC<br />
** SID<br />
** USB<br />
<br />
== Merged into 5.17 ==<br />
<br />
* [[A64]]/[[H5]]<br />
** DRAM frequency scaling (DEVFREQ)<br />
* [[D1]]<br />
** Clocks<br />
** PLIC<br />
* [[R40]]/[[T3]]/[[A40i]]<br />
** CAN ([https://lore.kernel.org/linux-sunxi/20220111155709.56501-1-boger@wirenboard.com/ series])<br />
<br />
== Merged into 5.16 ==<br />
<br />
* [[R329]]/[[D1]]<br />
** Watchdog<br />
<br />
== Merged into 5.15 (LTS)==<br />
<br />
== Merged into 5.14 ==<br />
*[[H616]]<br />
** PMIC - AXP305<br />
<br />
New Devices Supported<br />
* [[H616]]<br />
** [[Tanix TX6s]]<br />
** [[X96 Mate]]<br />
** [[Xunlong Orange Pi Zero2]]<br />
<br />
== Merged into 5.13 ==<br />
New Devices Supported<br />
* [[A10|A10]]<br />
** Topwise A721 Tablet<br />
<br />
== Merged into 5.12 ==<br />
*[[H616]]<br />
** Clocks<br />
** Pinctrl<br />
** MMC<br />
*[[H6]]<br />
** RSB<br />
*[[A100]]<br />
** MMC<br />
<br />
== Merged into 5.11 ==<br />
*[[H6]]<br />
** [[I2S]]<br />
* multiple SoCs<br />
** [[Cedrus]] VP8 decoding<br />
<br />
New Devices Supported<br />
*[[H3]]<br />
** [[FriendlyArm NanoPi R1]]<br />
** [[FriendlyArm ZeroPi]]<br />
*[[S3]]<br />
** [[Elimo Impetus]]<br />
** [[Elimo Initium]]<br />
<br />
== Merged into 5.10 (LTS) ==<br />
*[[A100]]<br />
** Clocks<br />
** Pinctrl<br />
** [[I2C]]<br />
** Thermal (THS)<br />
<br />
*[[R40]]<br />
** DMA<br />
** GPU [[Mali]]<br />
** [[IR]]<br />
** [[SRAM Controller|SRAM]]<br />
** [[Video_Engine]] | [[Sunxi-Cedrus]]<br />
<br />
*[[V3s]]<br />
** Crypto<br />
** Ethernet<br />
** SimpleFB<br />
** [[SRAM Controller|SRAM]]<br />
<br />
* sun8i-ce/sun8i-ss<br />
** support for PRNG<br />
** support for hashs<br />
** support for TRNG ([[H6]] only)<br />
<br />
New Devices Supported<br />
*[[A100]]<br />
** [[Perf1 board]]<br />
*[[S3l]]<br />
** [[PineCube]]<br />
<br />
== Merged into 5.9 ==<br />
* [[H5]]<br />
** DVFS<br />
<br />
New Devices Supported<br />
* A64<br />
** PinePhone v1.2<br />
<br />
== Merged into 5.8 ==<br />
* [[H6]]<br />
** DVFS<br />
** IOMMU<br />
<br />
* [[A64]] / [[A83T]] / [[H3]] / [[H5]] / [[H6]]<br />
** Message Box<br />
<br />
New Devices Supported<br />
* A20<br />
** [[Olimex_A20-OLinuXino-Lime|OLinuXino Lime (A20)]] eMMC<br />
<br />
== Merged into 5.7 ==<br />
*[[A20]]<br />
** LVDS<br />
<br />
*[[A83T]] and [[A64]]<br />
** Rotate driver<br />
<br />
*[[H6]]<br />
** [[SPIdev|SPI]]<br />
<br />
*[[R40]]<br />
** Thermal<br />
<br />
New Devices Supported<br />
*[[A13]]<br />
** [[PocketBook Touch Lux 3]]<br />
*[[A64]]<br />
** [[PineTab]]<br />
** [[PinePhone]] v1.0 & v1.1<br />
*[[A20]]<br />
** Linutronix Testbox v2<br />
<br />
== Merged into 5.6 ==<br />
* [[A10]]<br />
** CSI (BT656 and Parallel)<br />
<br />
*[[A64]]<br />
** MIPI DSI<br />
** DVFS<br />
<br />
*[[A64]] / [[A83T]] / [[H3]] / [[H5]] / [[H6]]<br />
** Thermal<br />
<br />
*[[H6]]<br />
** PWM<br />
<br />
*[[H3]] / [[H5]] / [[H6]] / [[R40]]<br />
**PMU<br />
<br />
*[[R40]]<br />
** CSI (BT656 and Parallel)<br />
** [[SPIdev|SPI]]<br />
<br />
New Devices Supported<br />
* [[H5]]<br />
** ALL-H3-IT H5 board<br />
** ALL-H5-CC H5 board<br />
* [[H6]]<br />
** [[PineH64]] Model B<br />
<br />
== Merged into 5.5 ==<br />
*[[H3]]<br />
** Deinterlace driver<br />
<br />
*[[H6]]<br />
**Crypto<br />
**GPU(3D) Mali<br />
**USB3 PHY (for boards not needing vbus switching)<br />
<br />
*[[A64]] / [[A80]] / [[A83T]] / [[H3]] / [[H5]] / [[R40]] <br />
**Crypto<br />
<br />
* multiple SoCs<br />
** [[Cedrus]] HEVC/H.265<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** Emlid Neutis<br />
<br />
New Devices Supported<br />
* [[H3]]<br />
** [[FriendlyARM_NanoPi_Duo2]]<br />
<br />
== Merged into 5.4 (LTS)==<br />
* [[A20]]<br />
** CSI (BT656 and Parallel)<br />
* [[A64]]<br />
** IR<br />
* [[H6]]<br />
** IR<br />
** RTC<br />
** SPDIF<br />
New Devices Supported<br />
* [[A64]]<br />
** [[Olimex A64-OLinuXino]] eMMC<br />
* [[H6]]<br />
** [[Tanix TX6]]<br />
* [[S3]]<br />
** [[Lichee Zero Plus]]<br />
<br />
== Merged into 5.3 ==<br />
* [[A64]]<br />
** LRADC<br />
** RGB LCD<br />
* [[A83T]]<br />
** CSI (BT656 and Parallel)<br />
* [[H6]]<br />
** DMA<br />
** Watchdog<br />
* multiple SoCs<br />
** [[Cedrus]] h264<br />
<br />
== Merged into 5.2 ==<br />
* [[A83T]]<br />
** LRADC<br />
** USB OTG<br />
<br />
* [[H6]]<br />
** [[Cedrus]]<br />
<br />
* multiple SoCs<br />
** [[Mali Open Source Driver|Lima]]<br />
** [[Mali Open Source Driver|Panfrost]]<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** Banana-Pi-M2-Zero<br />
<br />
New Devices Supported<br />
* [[H6]]<br />
** [[Beelink GS1]]<br />
** [[Xunlong Orange Pi 3]]<br />
<br />
== Merged into 5.1 ==<br />
* A10<br />
** Cedrus<br />
** PMU<br />
<br />
* A20<br />
** Audio Codec improvements<br />
<br />
* A23<br />
** Display pipeline<br />
** LCD enabled on Q8 A23 tablets<br />
<br />
* A64<br />
** [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c950ca8c35eeb32224a63adc47e12f9e226da241 ARM Architectural Timer errata workaround]<br />
** PMU<br />
** CSI (BT656 and Parallel)<br />
<br />
* A80<br />
** GMAC support<br />
<br />
* CSI in general<br />
** RGR565 support<br />
** JPEG pass-through support<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** [[Banana Pi M2+]]<br />
** [[Banana Pi M2 Ultra]]<br />
<br />
* [[LCD]] enabled on [[A13]] [[Q8]] tablets<br />
<br />
== Merged into 5.0 ==<br />
* A64<br />
** Cedrus<br />
** DTS changes for audio codec<br />
<br />
* F1C100s<br />
** initial F1C100s support<br />
<br />
* H6<br />
** Ethernet<br />
** DE3/HDMI support<br />
** USB 2.0<br />
<br />
* H3 / H5<br />
** CSI (BT656 and Parallel) Support<br />
<br />
* H5<br />
** Cedrus<br />
<br />
* R40<br />
** RTC<br />
<br />
* T3<br />
** initial T3 support<ref>https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b7badd1d7aa61087010803affa19bb83fb5a0af1</ref><br />
<br />
* V3s<br />
** CSI (BT656 and Parallel) Support<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** [[Sinovoip Banana Pi M2 Magic | Banana Pi M2 Magic]]<br />
** [[Banana Pi M3]]<br />
** [[Banana Pi M64]]<br />
** [[Cubietruck]]<br />
** [[Cubietech_Cubietruck_Plus|Cubietruck Plus]]<br />
<br />
New Devices Supported<br />
* [[Xunlong Orange Pi Lite 2]]<br />
* Mapleboard MP130<br />
* LicheePi Nano<br />
* Emlid Neutis N5<br />
<br />
== Merged into 4.20 ==<br />
<br />
* A13 / A20 / A33 / H3<br />
** Cedrus driver<br />
<br />
* A83T<br />
** IR receiver<br />
<br />
* A64<br />
** Cleanup for device tree files<br />
** HDMI support<br />
** Audio codec support (DTS changes will be merged in 5.0)<br />
<br />
* H3 / H5<br />
** SID<br />
<br />
* R40<br />
** SATA<br />
<br />
New Devices Supported<br />
* [[Pine64]] LTS<br />
* [[Xunlong Orange Pi One Plus]]<br />
* [[Xunlong Orange Pi Zero Plus 2]] (H3 variant)<br />
* [[Sinovoip Banana Pi M2+]] (H5 variant)<br />
<br />
== Merged into 4.19 (LTS)==<br />
<br />
* A10 / A13 / A20 / A23 / A33<br />
** SRAM controller / system control<br />
<br />
* A64<br />
** SRAM controller / system control<br />
** Display clocks and bus<br />
** RTC clock output<br />
** PWM<br />
** R_I2C<br />
<br />
* H3<br />
** SRAM controller / system control<br />
<br />
* H6<br />
** MMC<br />
** PMIC<br />
<br />
* R40<br />
** HDMI support<br />
<br />
Board Changes<br />
* SPI flash node for [[Orange Pi PC 2]] and [[Pine64#Variants | Pine64 SoPINE]]<br />
* Use lid switch as wake-up source for A64 based laptops<br />
* LEDs added for [[PineH64]]<br />
<br />
New Devices<br />
* [[Pine Pinebook]]<br />
* Amarula A64-Relic<br />
<br />
== Changes merged up to 4.18 ==<br />
Changes up to 4.18 can be found on [[Linux mainlining history]] page.<br />
<br />
=References=<br />
<references /><br />
<br />
= See also =<br />
* [[Mainline Kernel Howto]]<br />
* [[Possible setups for hacking on mainline]]<br />
* [[Linux Kernel]]<br />
**[[Toolchain]]<br />
<br />
=External Links=<br />
* [http://www.kernel.org kernel.org] - Official website for the Linux Kernel<br />
** [http://github.com/torvalds/linux http://github.com/torvalds/linux] - Linus Torvalds' GitHub account with the upstream Linux kernel<br />
* [http://www.kernel.org/doc/ Linux Kernel documentation index]<br />
* [http://www.kernel.org/doc/man-pages/ Linux Kernel man pages]<br />
* [http://kernelnewbies.org/ Kernel Newbies Site - Excellent source of information for people new to kernel]<br />
* [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=summary Linus' kernel tree for 2.6]<br />
* [https://bugzilla.kernel.org/ Kernel bugzilla] - [https://bugzilla.kernel.org/show_bug.cgi?id=15790 Regressions for each of recent versions]<br />
* [http://www.fsfla.org/svnwiki/selibre/linux-libre/ Linux-libre project - Maintains and distributes fully free kernel]<br />
* [http://lingrok.org/ LinGrok, Linux kernel source code cross-reference]<br />
* [https://elixir.bootlin.com/linux/latest/source?a=arm Bootlin LXR (Linux Cross Reference)]<br />
* [http://lists.infradead.org/pipermail/linux-arm-kernel/ linux-arm-kernel - Mailing list archive]<br />
===How to upstream===<br />
* [http://www.elinux.org/images/a/ad/Arm-soc-checklist.pdf Your new ARM SoC Linux support check-list! by Thomas Petazzoni of Bootlin]<br />
*[http://www.cnx-software.com/2014/03/04/linux-kernel-upstreaming-how-to-linaro-connect-asia-2014/ Linux Kernel Upstreaming How-To (CNXSoft - Embedded Software Development)]<br />
**[http://www.youtube.com/watch?v=dY7fikYZ42c Matt Porter's YouTube video talk on “Upstreaming 101" (LCA14-111)]<br />
***[http://www.linaro.org/documents/download/65f888c674508efcf9bd5d90398a186a530d01c4c78db Matt Porter's presentation slides for “Upstreaming 101" (LCA14-111)]<br />
**[https://www.youtube.com/watch?v=FiQ5uV_Mm5c Matt Porter's YouTube video talk on “Upstreaming 201" (LCA14-112)]<br />
***[http://www.linaro.org/documents/download/7b9920fcc89589bad9063d87d9137f08530d020b71924 Matt Porter's presentation slides for “Upstreaming 201" (LCA14-112)]<br />
*[http://www.cnx-software.com/2011/08/19/how-to-write-and-submit-a-linux-kernel-patch/ How to Write and Submit a Linux Kernel Patch (CNXSoft - Embedded Software Development)]<br />
** [http://www.youtube.com/watch?v=LLBrBBImJt4 YouTube Video- Write and Submit your first Linux kernel Patch]<br />
** [http://www.cnx-software.com/pdf/kernel-tutorial/kernel_patch_tutorial.pdf Greg Kroah-Hartman Kernel Tutorial Write and Submit your first Linux Kernel Patch]<br />
*[http://www.linaro.org/connect-lca14/resources Linaro resources page from LCA (Linaro Connect Asia) 2014]<br />
<br />
=Notes=<br />
<references group=note /><br />
<br />
[[Category:Development]]</div>
Frozeus
https://linux-sunxi.org/index.php?title=Linux_mainlining_effort&diff=25126
Linux mainlining effort
2022-11-01T18:08:47Z
<p>Frozeus: DMIC merged for 6.1</p>
<hr />
<div>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.<br />
<br />
=Overview=<br />
The idea is to submit the code needed to run the Linux kernel on Allwinner SoCs upstream, ie. to the official Linux kernel.<br />
<br />
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.<ref>http://www.elinux.org/images/a/ad/Arm-soc-checklist.pdf</ref><ref>[http://www.cnx-software.com/2013/01/16/your-new-arm-soc-linux-support-check-list-elce-2012/ Your New ARM SoC Linux Support Check-List – ELCE 2012]</ref><br />
<br />
Where relevant, I have attempted to include who is currently working on an item, mostly separate from any particular mainlining goal.<br />
<br />
=Status=<br />
<br />
The [[Mainline_Kernel_Howto|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|Mainline U-Boot howto]].<br />
<br />
The [[:Category:Mainline_Kernel | Mainline Kernel category ]] gives an overview of currently supported devices.<br />
<br />
== Status Matrix ==<br />
<br />
The goal of this matrix is to give an easy view of work on each SoC worked on by linux-sunxi.<br />
<br />
{| class="wikitable" style="text-align: center; width: 100%"<br />
|-<br />
! colspan="2" style="text-align: left; width: 13%" | Model<br />
! [[F1C100s|F1C-<br>100s<br>200s]]<br />
! [[A10]]<br />
! [[A10s]]<br />
! [[A13]]<br>[[R8]]<br />
! [[GR8]]<br />
! [[A20]]<br>[[T2]]<br />
! [[R40]]<br>[[T3]]<br>[[A40i]]<br />
! [[A80]]<br />
! [[A31]]<br />
! [[A23]]<br />
! [[A33]]<br>[[R16]]<br />
! [[A83T]]<br />
! [[H3]]<br />
! [[S3]]<br>[[S3L]]<br>[[V3]]<br>[[V3s]]<br />
! [[A64]]<br />
! [[H5]]<br />
! [[H6]]<br />
! [[A50]]<br />
! [[V831]]<br>[[V833]]<br />
! [[H616]]<br />
! [[A100]]<br>[[A133]]<br />
! [[R329]]<br />
! [[D1]]<br />
<br />
|-<br />
| style="text-align: left;" rowspan="4" | ADC<br />
| style="text-align: left;" | GPADC<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | LRADC<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: darkgreen; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.19<br />
| style="background: lightgreen;" | 5.19<br />
<br />
|-<br />
| style="text-align: left;" | Thermal<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 5.7<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| N/A<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" | Touch<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.0<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" rowspan="6" | Audio<br />
| style="text-align: left;" | AC97<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | [[Audio Codec|Analog Codec]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.11<br />
| N/A<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" | Audio Hub<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | DMIC<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 6.1<br />
| style="background: orange;" | WIP<br />
| N/A<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" | I2S<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: darkgreen; color: white;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.11<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.18<br />
| style="background: lightgreen;" | 5.18<br />
<br />
|-<br />
| style="text-align: left;" | [[SPDIF]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.7<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.7<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.11<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" rowspan="4" | [[CSI|Camera]]<br />
| style="text-align: left;" | BT656<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
<br />
|-<br />
| style="text-align: left;" | ISP<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
<br />
|-<br />
| style="text-align: left;" | MIPI CSI-2<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| N/A<br />
| style="background: lightgreen;" | 5.19<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
<br />
|-<br />
| style="text-align: left;" | Parallel<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Clocks<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.10<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.10<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
| style="background: lightgreen;" | 5.12<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: orange;" | WIP<br />
| style="background: lightgreen;" | 5.17<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | CPUFreq (DVFS)<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.9<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | CPUIdle<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: orange;" | Crust<br />
| style="background: red;" | NO<br />
| style="background: orange;" | Crust<br />
| style="background: orange;" | Crust<br />
| style="background: orange;" | Crust<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: orange;" | SBI<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[Cryptographic_Hardware_Accelerators|Crypto]]<br />
| N/A<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" rowspan="9" | [https://dri.freedesktop.org/wiki/DRM/ Display (DRM)]<br />
| style="text-align: left;" | CVBS<br />
| style="background: red;" | NO<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9 ?<br />
| style="background: lightgreen;" | 4.7<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | G2D<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | HDMI Audio<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | HDMI CEC<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.14<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.17<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | HDMI Video<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.13<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.17<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" | LVDS<br />
| N/A<br />
| style="background: darkgreen; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.7<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.16<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | MIPI DSI<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.6<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
<br />
|-<br />
| style="text-align: left;" | RGB<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.7<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.16<br />
| N/A<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 5.3<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
<br />
|-<br />
| style="text-align: left;" | VGA<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Display (SimpleFB)<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | DMA<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.19<br />
<br />
|-<br />
| style="text-align: left;" rowspan="2" | [[Ethernet]]<br />
| style="text-align: left;" | [[Ethernet#EMAC|EMAC]]<br />
| N/A<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.11<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 5.1<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.15<br />
<br />
|-<br />
| style="text-align: left;" | [[Ethernet#GMAC|GMAC]]<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: lightgreen;" | 3.17<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" rowspan="2" | GPU (3D)<br />
| style="text-align: left;" | [[Mali]]<br />
| N/A<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 5.10<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | 5.2<br />
| N/A<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | [[PowerVR]]<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | HW Spinlocks<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[I2C]]<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.13<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | IOMMU<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" rowspan="2" | [[IR]]<br />
| style="text-align: left;" | [[IR|IR RX]]<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.0<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 4.6<br />
| N/A<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | IR TX<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Keypad<br />
| N/A<br />
| style="background: orange;" | WIP<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | WIP<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | LDOs<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | LEDC<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | MBUS<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.17<br />
| style="background: lightgreen;" | 5.17<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | MsgBox<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: lightgreen;" | 5.8<br />
| N/A<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | PCIe<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]] <ref name="h6-pcie">Allwinner H6 has a quirky PCIe controller that doesn't map the PCIe address space properly to CPU,<br />
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/</ref><br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Pinctrl<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
| style="background: lightgreen;" | 5.12<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: orange;" | WIP<br />
| style="background: lightgreen;" | 6.0<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[PMU]] (perf, DT only)<br />
| N/A<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[PWM_Controller|PWM]]<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" rowspan="2" | Remoteproc<br />
| style="text-align: left;" | AIPU<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | DSP<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[RSB]]<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.3<br />
| N/A<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.12<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[RTC]]<br />
| N/A<br />
| style="background: lightgreen;" | 3.14<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 5.0<br />
| N/A<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| N/A<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
| style="background: lightgreen;" | 6.0<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | SID (eFuse)<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.18<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | SMP<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: lightgreen;" | PSCI<br />
| N/A<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | PSCI<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SPIdev|SPI]]<br />
| style="background: lightgreen;" | 5.19<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.7<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SRAM Controller|SRAM]]<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 5.10<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 4.19<br />
| N/A<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
<br />
|-<br />
| style="text-align: left;" rowspan="4" | Storage<br />
| style="text-align: left;" | EMCE<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | [[NAND]]<br />
| N/A<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 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 [[MTD_Driver#Challenges|this page]] </ref><br />
| style="background: lightgreen;" | 4.9 <ref name="mlc" /><br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9 <ref name="mlc"/><br />
| style="background: lightgreen;" | 4.9 <ref name="mlc" /><br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| N/A<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | [[SATA]]<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.20<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | [[eMMC|SD/MMC]]<br />
| style="background: lightgreen;" | 5.19<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: lightgreen;" | 5.12<br />
| style="background: orange;" | WIP<br />
| style="background: lightgreen;" | 5.18<br />
<br />
|-<br />
| style="text-align: left;" rowspan="3" | Timer<br />
| style="text-align: left;" | Arch Timer<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: orange;" | WIP<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" | HSTIMER<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
<br />
|-<br />
| style="text-align: left;" | TIMER<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 5.14<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.14<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.14<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
<br />
|-<br />
| style="text-align: left;" rowspan="3" | [[USB]]<br />
| style="text-align: left;" | [[USB]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.18<br />
<br />
|-<br />
| style="text-align: left;" | [[USB_OTG_Controller_Register_guide#USB_OTG|USB OTG]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.18<br />
<br />
|-<br />
| style="text-align: left;" | USB3<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.5<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[Video_Engine|VE]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: red;" | NO<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.17<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Watchdog<br />
| style="background: lightgreen;" | 5.19<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 6.0<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 5.16<br />
| style="background: lightgreen;" | 5.16<br />
<br />
|-<br />
! colspan="2" style="text-align: left; width: 13%" | Model<br />
! [[F1C100s|F1C-<br>100s<br>200s]]<br />
! [[A10]]<br />
! [[A10s]]<br />
! [[A13]]<br>[[R8]]<br />
! [[GR8]]<br />
! [[A20]]<br>[[T2]]<br />
! [[R40]]<br>[[T3]]<br>[[A40i]]<br />
! [[A80]]<br />
! [[A31]]<br />
! [[A23]]<br />
! [[A33]]<br>[[R16]]<br />
! [[A83T]]<br />
! [[H3]]<br />
! [[S3]]<br>[[S3L]]<br>[[V3]]<br>[[V3s]]<br />
! [[A64]]<br />
! [[H5]]<br />
! [[H6]]<br />
! [[A50]]<br />
! [[V831]]<br>[[V833]]<br />
! [[H616]]<br />
! [[A100]]<br>[[A133]]<br />
! [[R329]]<br />
! [[D1]]<br />
|}<br />
<br />
{| class="wikitable" style="text-align: center;"<br />
|-<br />
! Legend<br />
|-<br />
| style="background: lightgreen;" | In Linux mainline since version x<br />
|-<br />
| style="background: darkgreen;" | Nobody works on it, but it should be compatible with already done drivers<br />
|-<br />
| style="background: orange;" | Somebody works on it<br />
|-<br />
| style="background: red;" | No support, nobody works on it<br />
|-<br />
| style="background: black; color: white;" | support impossible<br />
|-<br />
| style="background: grey; color: white;" | Status is unknown/to be completed<br />
|}<br />
<br />
== Work In Progress ==<br />
<br />
=== Core Stuff ===<br />
*[[V831]] / [[V833]] Clocks & Pinctrl / RTC / MMC / Watchdog / SPI - Icenowy Zheng [https://patchwork.kernel.org/project/linux-arm-kernel/cover/20201212040157.3639864-1-icenowy@aosc.io/ Support for Allwinner V831 SoC]<br />
<br />
*[[H616]] USB, RTC, PMIC, ... Andre Przywara [https://github.com/apritzel/linux/commits/h616-v6-WIP arm64: sunxi: Initial Allwinner H616 SoC support]<br />
<br />
*[[D1]] SoC and driver support - Samuel Holland: [https://github.com/smaeul/linux/commits/riscv/d1-wip development branch], [https://gist.github.com/smaeul/bf35d0e50ef08bbc8c3e71aec41dd723 boot log]<br />
<br />
*[[AR100]] firmware (WiP: Samuel Holland) [https://github.com/crust-firmware/crust ARISC firmware for sunxi SoCs ]<br />
<br />
* [[A13]] PSCI Suspend / Resume / CPUIdle (WiP: Antoine Tenart) [http://lists.denx.de/pipermail/u-boot/2016-September/265453.html patch-v1]<br />
<br />
=== Major drivers ===<br />
*[[H616]] USB Andre Przywara [https://lore.kernel.org/linux-sunxi/20221031111358.3387297-1-andre.przywara@arm.com/T/ arm64: sunxi: h616: Add USB support]<br />
<br />
* [[F1C100s]] USB WIP Icenowy Zheng [https://lore.kernel.org/linux-sunxi/20221012055602.1544944-1-uwu@icenowy.me/T/#t SUNIV USB and PopStick support (and updating mailmap)]<br />
<br />
* [[A100]] / [[D1]] MIPI DSI Samuel Holland [https://patchwork.kernel.org/project/linux-arm-kernel/list/?series=667093 drm/sun4i: dsi: Support the A100/D1 controller variant] <br />
<br />
* [[A100]] DMA/PMU/Watchdog/USB2/USB OTG/MMC(eMMC, SD) Frank Lee [https://patchwork.kernel.org/project/linux-arm-kernel/cover/cover.1604988979.git.frank@allwinnertech.com/ Second step support for A100]<br />
<br />
* [[V3s]] ISP (Image Signal Processor) Paul Kocialkowski [https://bootlin.com/blog/initial-allwinner-v3-isp-support-in-mainline-linux/ initial-allwinner-v3-isp-support-in-mainline-linux]<br />
<br />
* [[H6]] Hypervisor for PCIe [https://forum.armbian.com/topic/13529-a-try-on-utilizing-h6-pcie-with-virtualization/ A try on utilizing H6 PCIe with "Virtualization"]<br />
<br />
* [[A64]] / [[H3]] / [[H5]] / [[H6]] HDMI Audio - Clément Péron / Marcus Cooper / Jernej Škrabec [https://patchwork.kernel.org/cover/11510511/ Add Allwinner H3/H5/A64 HDMI audio]<br />
<br />
* [[R40]] MIPI-DSI WIP Jagan Teki [https://patchwork.kernel.org/cover/11314031/ drm/sun4i: Allwinner R40 MIPI-DSI support v3] <br />
<br />
* [[AC100]] Audio codec WiP Ondrej Jirman [https://megous.com/git/linux/commit/?h=orange-pi-5.5&id=170d38d650f67657600d4e0e868e0e7110b89ee1 digital part] [https://megous.com/git/linux/commit/?h=orange-pi-5.5&id=ee424255a6fb9280ac27c1953019b768ca973ca7 analog part]<br />
<br />
* [[V3s]] SRAM & Video Decoding Engine (Cedrus) WiP Martin Cerveny [https://patchwork.kernel.org/project/linux-arm-kernel/list/?series=347787 Enable video decoder] ([https://github.com/mcerveny/linux/commits/v3s_videocodec_v4 testing with attached LCD])<br />
* [[H6]] VP9 decoder (Hantro G2) WiP jernej [https://github.com/jernejsk/linux-1/commits/vp9 branch]<br />
<br />
=== Minor drivers ===<br />
<!-- Please move the newest entry to the top --><br />
* [[F1C100s]] LRADC / IR / I2C / PWM Andre Przywara [https://lore.kernel.org/linux-sunxi/20221101141658.3631342-1-andre.przywara@arm.com/T/ ARM: dts: suniv: F1C100s: add more peripherals]<br />
* [[H6]] Deinterlace driver Jernej Skrabec [https://lore.kernel.org/linux-sunxi/20221101123201.3021129-1-jernej.skrabec@gmail.com/T/ media: sunxi: Add H6 deinterlace driver]<br />
* [[D1]] SRAM Samuel Holland [https://patchwork.kernel.org/project/linux-arm-kernel/list/?series=664387 soc: sunxi: sram: Fixes and D1 support] <br />
* [[R40]]/[[T3]]/[[A40i]] RTP/LRADC Evgeny Boger [https://lore.kernel.org/linux-sunxi/20211119191456.510435-1-boger@wirenboard.com/]<br />
* [[R40]]/[[T3]]/[[A40i]] EMAC Evgeny Boger [https://lore.kernel.org/linux-sunxi/20220111160600.58384-1-boger@wirenboard.com/ support for two Ethernet ports on Allwinner R40]<br />
* [[R40]]/[[T3]]/[[A40i]] USB OTG qianfan Zhao [https://lore.kernel.org/linux-sunxi/20220518101706.26869-1-qianfanguijin@163.com/T/ ARM: sun8i-r40: Enable usb otg support]<br />
* [[V3]] I2S Tobias Schramm [https://patchwork.kernel.org/project/linux-arm-kernel/list/?series=482161&archive=both&state=* Add missing peripherals to Allwinner V3s/V3 device trees]<br />
* [[H3]] / [[H5]] CVBS WIP Jernej Skrabec [https://github.com/LibreELEC/LibreELEC.tv/blob/master/projects/Allwinner/patches/linux/0036-wip-h3-h5-cvbs.patch Add H3/H5 TVE support]<br />
* [[A100]] CPUFreq (DVFS) Shuosheng Huang [https://patchwork.kernel.org/project/linux-arm-kernel/list/?series=396055&archive=both&state=* cpufreq: sun50i: add a100 cpufreq support]<br />
* [[A64]] hwspinlock WIP Nikolay Borisov [https://patchwork.kernel.org/cover/11373645/ Add support for hwspinlock on A64 SoC] <br />
* [[A83T]] / [[A64]] / [[H3]] hwspinlock WIP Corentin Labbe (montjoie) [https://lore.kernel.org/patchwork/patch/706512/ RFC,1/3][https://lore.kernel.org/patchwork/patch/706511/ RFC,2/3][https://lore.kernel.org/patchwork/patch/706513/ RFC,3/3]<br />
* [[A10]] / [[A20]] / [[A31]] HDMI Audio WIP Stefan Mavrodiev [https://lore.kernel.org/patchwork/cover/1177803/ Add support for sun4i HDMI audio]<br />
* [[A80]] Thermal sensor WIP Philipp Rossak (embed-3d): https://github.com/embed-3d/linux/branches/all<br />
* [[R40]] PWM (WIP Hao Zhang [https://www.spinics.net/lists/kernel/msg2731498.html patch-v2])<br />
* [[A20]] Keypad (WiP: Yassin Jaffer (ddc) [http://lists.infradead.org/pipermail/linux-arm-kernel/2015-September/370079.html patch])<br />
* sun8i-ce/sun8i-ss RSA/ECC WIP Corentin LABBE (no public patch yet)<br />
* 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/<br />
<br />
=== Drivers that can still be improved/added ===<br />
<br />
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.<br />
<br />
* [[A31]]/[[A31s]] PWM support ([https://patchwork.ozlabs.org/project/linux-pwm/list/?submitter=70938&state=*&archive=both patch-v4] abandoned by Siarhei Volkau)<br />
* sunxi-musb driver lacks DMA support (with current driver, USB gadgets are limited to PIO, limiting speed to 10MiB/s and causing large CPU)<br />
* DE2 driver has buggy layer support, see [https://patchwork.kernel.org/patch/11145803/]<br />
* DE1/DE2/DE3 writeback support<br />
* A64 audiocodec driver components (sun8i-codec and sun50i-codec-analog) lack support for jack detection<br />
<br />
== Planned for next ==<br />
* [[D1]]<br />
** RGB LCD<br />
** I2C<br />
** Pinctrl<br />
** RTC<br />
<br />
== Merged into 6.1 ==<br />
<br />
* [[H6]]<br />
** DMIC<br />
<br />
== Merged into 6.0 ==<br />
*[[H616]] [[Orange Pi Zero 2]]<br />
*[[H616]] [[X96 Mate]]<br />
*[[R40]]/[[T3]]/[[A40i]]<br />
** CPUFreq (DVFS) <br />
<br />
== Merged into 5.19 ==<br />
<br />
* [[D1]]<br />
** DMA<br />
** LRADC<br />
* [[F1C100s]] <br />
** SD/MMC<br />
** SPI<br />
** Watchdog<br />
* [[V3s]]<br />
** [https://bootlin.com/blog/linux-5-19-released-bootlin-contributions-inside/ MIPI-CSI2]<br />
<br />
== Merged into 5.18 ==<br />
<br />
* [[D1]]<br />
** I2S<br />
** MMC<br />
** SID<br />
** USB<br />
<br />
== Merged into 5.17 ==<br />
<br />
* [[A64]]/[[H5]]<br />
** DRAM frequency scaling (DEVFREQ)<br />
* [[D1]]<br />
** Clocks<br />
** PLIC<br />
* [[R40]]/[[T3]]/[[A40i]]<br />
** CAN ([https://lore.kernel.org/linux-sunxi/20220111155709.56501-1-boger@wirenboard.com/ series])<br />
<br />
== Merged into 5.16 ==<br />
<br />
* [[R329]]/[[D1]]<br />
** Watchdog<br />
<br />
== Merged into 5.15 (LTS)==<br />
<br />
== Merged into 5.14 ==<br />
*[[H616]]<br />
** PMIC - AXP305<br />
<br />
New Devices Supported<br />
* [[H616]]<br />
** [[Tanix TX6s]]<br />
** [[X96 Mate]]<br />
** [[Xunlong Orange Pi Zero2]]<br />
<br />
== Merged into 5.13 ==<br />
New Devices Supported<br />
* [[A10|A10]]<br />
** Topwise A721 Tablet<br />
<br />
== Merged into 5.12 ==<br />
*[[H616]]<br />
** Clocks<br />
** Pinctrl<br />
** MMC<br />
*[[H6]]<br />
** RSB<br />
*[[A100]]<br />
** MMC<br />
<br />
== Merged into 5.11 ==<br />
*[[H6]]<br />
** [[I2S]]<br />
* multiple SoCs<br />
** [[Cedrus]] VP8 decoding<br />
<br />
New Devices Supported<br />
*[[H3]]<br />
** [[FriendlyArm NanoPi R1]]<br />
** [[FriendlyArm ZeroPi]]<br />
*[[S3]]<br />
** [[Elimo Impetus]]<br />
** [[Elimo Initium]]<br />
<br />
== Merged into 5.10 (LTS) ==<br />
*[[A100]]<br />
** Clocks<br />
** Pinctrl<br />
** [[I2C]]<br />
** Thermal (THS)<br />
<br />
*[[R40]]<br />
** DMA<br />
** GPU [[Mali]]<br />
** [[IR]]<br />
** [[SRAM Controller|SRAM]]<br />
** [[Video_Engine]] | [[Sunxi-Cedrus]]<br />
<br />
*[[V3s]]<br />
** Crypto<br />
** Ethernet<br />
** SimpleFB<br />
** [[SRAM Controller|SRAM]]<br />
<br />
* sun8i-ce/sun8i-ss<br />
** support for PRNG<br />
** support for hashs<br />
** support for TRNG ([[H6]] only)<br />
<br />
New Devices Supported<br />
*[[A100]]<br />
** [[Perf1 board]]<br />
*[[S3l]]<br />
** [[PineCube]]<br />
<br />
== Merged into 5.9 ==<br />
* [[H5]]<br />
** DVFS<br />
<br />
New Devices Supported<br />
* A64<br />
** PinePhone v1.2<br />
<br />
== Merged into 5.8 ==<br />
* [[H6]]<br />
** DVFS<br />
** IOMMU<br />
<br />
* [[A64]] / [[A83T]] / [[H3]] / [[H5]] / [[H6]]<br />
** Message Box<br />
<br />
New Devices Supported<br />
* A20<br />
** [[Olimex_A20-OLinuXino-Lime|OLinuXino Lime (A20)]] eMMC<br />
<br />
== Merged into 5.7 ==<br />
*[[A20]]<br />
** LVDS<br />
<br />
*[[A83T]] and [[A64]]<br />
** Rotate driver<br />
<br />
*[[H6]]<br />
** [[SPIdev|SPI]]<br />
<br />
*[[R40]]<br />
** Thermal<br />
<br />
New Devices Supported<br />
*[[A13]]<br />
** [[PocketBook Touch Lux 3]]<br />
*[[A64]]<br />
** [[PineTab]]<br />
** [[PinePhone]] v1.0 & v1.1<br />
*[[A20]]<br />
** Linutronix Testbox v2<br />
<br />
== Merged into 5.6 ==<br />
* [[A10]]<br />
** CSI (BT656 and Parallel)<br />
<br />
*[[A64]]<br />
** MIPI DSI<br />
** DVFS<br />
<br />
*[[A64]] / [[A83T]] / [[H3]] / [[H5]] / [[H6]]<br />
** Thermal<br />
<br />
*[[H6]]<br />
** PWM<br />
<br />
*[[H3]] / [[H5]] / [[H6]] / [[R40]]<br />
**PMU<br />
<br />
*[[R40]]<br />
** CSI (BT656 and Parallel)<br />
** [[SPIdev|SPI]]<br />
<br />
New Devices Supported<br />
* [[H5]]<br />
** ALL-H3-IT H5 board<br />
** ALL-H5-CC H5 board<br />
* [[H6]]<br />
** [[PineH64]] Model B<br />
<br />
== Merged into 5.5 ==<br />
*[[H3]]<br />
** Deinterlace driver<br />
<br />
*[[H6]]<br />
**Crypto<br />
**GPU(3D) Mali<br />
**USB3 PHY (for boards not needing vbus switching)<br />
<br />
*[[A64]] / [[A80]] / [[A83T]] / [[H3]] / [[H5]] / [[R40]] <br />
**Crypto<br />
<br />
* multiple SoCs<br />
** [[Cedrus]] HEVC/H.265<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** Emlid Neutis<br />
<br />
New Devices Supported<br />
* [[H3]]<br />
** [[FriendlyARM_NanoPi_Duo2]]<br />
<br />
== Merged into 5.4 (LTS)==<br />
* [[A20]]<br />
** CSI (BT656 and Parallel)<br />
* [[A64]]<br />
** IR<br />
* [[H6]]<br />
** IR<br />
** RTC<br />
** SPDIF<br />
New Devices Supported<br />
* [[A64]]<br />
** [[Olimex A64-OLinuXino]] eMMC<br />
* [[H6]]<br />
** [[Tanix TX6]]<br />
* [[S3]]<br />
** [[Lichee Zero Plus]]<br />
<br />
== Merged into 5.3 ==<br />
* [[A64]]<br />
** LRADC<br />
** RGB LCD<br />
* [[A83T]]<br />
** CSI (BT656 and Parallel)<br />
* [[H6]]<br />
** DMA<br />
** Watchdog<br />
* multiple SoCs<br />
** [[Cedrus]] h264<br />
<br />
== Merged into 5.2 ==<br />
* [[A83T]]<br />
** LRADC<br />
** USB OTG<br />
<br />
* [[H6]]<br />
** [[Cedrus]]<br />
<br />
* multiple SoCs<br />
** [[Mali Open Source Driver|Lima]]<br />
** [[Mali Open Source Driver|Panfrost]]<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** Banana-Pi-M2-Zero<br />
<br />
New Devices Supported<br />
* [[H6]]<br />
** [[Beelink GS1]]<br />
** [[Xunlong Orange Pi 3]]<br />
<br />
== Merged into 5.1 ==<br />
* A10<br />
** Cedrus<br />
** PMU<br />
<br />
* A20<br />
** Audio Codec improvements<br />
<br />
* A23<br />
** Display pipeline<br />
** LCD enabled on Q8 A23 tablets<br />
<br />
* A64<br />
** [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c950ca8c35eeb32224a63adc47e12f9e226da241 ARM Architectural Timer errata workaround]<br />
** PMU<br />
** CSI (BT656 and Parallel)<br />
<br />
* A80<br />
** GMAC support<br />
<br />
* CSI in general<br />
** RGR565 support<br />
** JPEG pass-through support<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** [[Banana Pi M2+]]<br />
** [[Banana Pi M2 Ultra]]<br />
<br />
* [[LCD]] enabled on [[A13]] [[Q8]] tablets<br />
<br />
== Merged into 5.0 ==<br />
* A64<br />
** Cedrus<br />
** DTS changes for audio codec<br />
<br />
* F1C100s<br />
** initial F1C100s support<br />
<br />
* H6<br />
** Ethernet<br />
** DE3/HDMI support<br />
** USB 2.0<br />
<br />
* H3 / H5<br />
** CSI (BT656 and Parallel) Support<br />
<br />
* H5<br />
** Cedrus<br />
<br />
* R40<br />
** RTC<br />
<br />
* T3<br />
** initial T3 support<ref>https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b7badd1d7aa61087010803affa19bb83fb5a0af1</ref><br />
<br />
* V3s<br />
** CSI (BT656 and Parallel) Support<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** [[Sinovoip Banana Pi M2 Magic | Banana Pi M2 Magic]]<br />
** [[Banana Pi M3]]<br />
** [[Banana Pi M64]]<br />
** [[Cubietruck]]<br />
** [[Cubietech_Cubietruck_Plus|Cubietruck Plus]]<br />
<br />
New Devices Supported<br />
* [[Xunlong Orange Pi Lite 2]]<br />
* Mapleboard MP130<br />
* LicheePi Nano<br />
* Emlid Neutis N5<br />
<br />
== Merged into 4.20 ==<br />
<br />
* A13 / A20 / A33 / H3<br />
** Cedrus driver<br />
<br />
* A83T<br />
** IR receiver<br />
<br />
* A64<br />
** Cleanup for device tree files<br />
** HDMI support<br />
** Audio codec support (DTS changes will be merged in 5.0)<br />
<br />
* H3 / H5<br />
** SID<br />
<br />
* R40<br />
** SATA<br />
<br />
New Devices Supported<br />
* [[Pine64]] LTS<br />
* [[Xunlong Orange Pi One Plus]]<br />
* [[Xunlong Orange Pi Zero Plus 2]] (H3 variant)<br />
* [[Sinovoip Banana Pi M2+]] (H5 variant)<br />
<br />
== Merged into 4.19 (LTS)==<br />
<br />
* A10 / A13 / A20 / A23 / A33<br />
** SRAM controller / system control<br />
<br />
* A64<br />
** SRAM controller / system control<br />
** Display clocks and bus<br />
** RTC clock output<br />
** PWM<br />
** R_I2C<br />
<br />
* H3<br />
** SRAM controller / system control<br />
<br />
* H6<br />
** MMC<br />
** PMIC<br />
<br />
* R40<br />
** HDMI support<br />
<br />
Board Changes<br />
* SPI flash node for [[Orange Pi PC 2]] and [[Pine64#Variants | Pine64 SoPINE]]<br />
* Use lid switch as wake-up source for A64 based laptops<br />
* LEDs added for [[PineH64]]<br />
<br />
New Devices<br />
* [[Pine Pinebook]]<br />
* Amarula A64-Relic<br />
<br />
== Changes merged up to 4.18 ==<br />
Changes up to 4.18 can be found on [[Linux mainlining history]] page.<br />
<br />
=References=<br />
<references /><br />
<br />
= See also =<br />
* [[Mainline Kernel Howto]]<br />
* [[Possible setups for hacking on mainline]]<br />
* [[Linux Kernel]]<br />
**[[Toolchain]]<br />
<br />
=External Links=<br />
* [http://www.kernel.org kernel.org] - Official website for the Linux Kernel<br />
** [http://github.com/torvalds/linux http://github.com/torvalds/linux] - Linus Torvalds' GitHub account with the upstream Linux kernel<br />
* [http://www.kernel.org/doc/ Linux Kernel documentation index]<br />
* [http://www.kernel.org/doc/man-pages/ Linux Kernel man pages]<br />
* [http://kernelnewbies.org/ Kernel Newbies Site - Excellent source of information for people new to kernel]<br />
* [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=summary Linus' kernel tree for 2.6]<br />
* [https://bugzilla.kernel.org/ Kernel bugzilla] - [https://bugzilla.kernel.org/show_bug.cgi?id=15790 Regressions for each of recent versions]<br />
* [http://www.fsfla.org/svnwiki/selibre/linux-libre/ Linux-libre project - Maintains and distributes fully free kernel]<br />
* [http://lingrok.org/ LinGrok, Linux kernel source code cross-reference]<br />
* [https://elixir.bootlin.com/linux/latest/source?a=arm Bootlin LXR (Linux Cross Reference)]<br />
* [http://lists.infradead.org/pipermail/linux-arm-kernel/ linux-arm-kernel - Mailing list archive]<br />
===How to upstream===<br />
* [http://www.elinux.org/images/a/ad/Arm-soc-checklist.pdf Your new ARM SoC Linux support check-list! by Thomas Petazzoni of Bootlin]<br />
*[http://www.cnx-software.com/2014/03/04/linux-kernel-upstreaming-how-to-linaro-connect-asia-2014/ Linux Kernel Upstreaming How-To (CNXSoft - Embedded Software Development)]<br />
**[http://www.youtube.com/watch?v=dY7fikYZ42c Matt Porter's YouTube video talk on “Upstreaming 101" (LCA14-111)]<br />
***[http://www.linaro.org/documents/download/65f888c674508efcf9bd5d90398a186a530d01c4c78db Matt Porter's presentation slides for “Upstreaming 101" (LCA14-111)]<br />
**[https://www.youtube.com/watch?v=FiQ5uV_Mm5c Matt Porter's YouTube video talk on “Upstreaming 201" (LCA14-112)]<br />
***[http://www.linaro.org/documents/download/7b9920fcc89589bad9063d87d9137f08530d020b71924 Matt Porter's presentation slides for “Upstreaming 201" (LCA14-112)]<br />
*[http://www.cnx-software.com/2011/08/19/how-to-write-and-submit-a-linux-kernel-patch/ How to Write and Submit a Linux Kernel Patch (CNXSoft - Embedded Software Development)]<br />
** [http://www.youtube.com/watch?v=LLBrBBImJt4 YouTube Video- Write and Submit your first Linux kernel Patch]<br />
** [http://www.cnx-software.com/pdf/kernel-tutorial/kernel_patch_tutorial.pdf Greg Kroah-Hartman Kernel Tutorial Write and Submit your first Linux Kernel Patch]<br />
*[http://www.linaro.org/connect-lca14/resources Linaro resources page from LCA (Linaro Connect Asia) 2014]<br />
<br />
=Notes=<br />
<references group=note /><br />
<br />
[[Category:Development]]</div>
Frozeus
https://linux-sunxi.org/index.php?title=Allwinner_SoC_Family&diff=25010
Allwinner SoC Family
2022-08-18T21:22:59Z
<p>Frozeus: /* "A"-Series */</p>
<hr />
<div>= SoC series =<br />
'''A''' series processors are used for mobile applications, mainly referring to tablet application here;<br />
<br />
'''B''' for "Book", used for E-book tablet reader. <br />
<br />
'''H''' for “Homlet”, mainly used in home entertainment applications, including smart OTT boxes, HDMI mini PCs, gaming boxes, etc;<br />
<br />
'''V''' for video-related applications, including video surveillance, automotive DVR, etc;<br />
<br />
'''T''' series processors target the Automotive products like ADAS. <br />
<br />
'''F''' series are processors based on Allwinner’s melis OS, mainly used in smart video radios, video MP5, etc;<br />
<br />
== "A"-Series ==<br />
Based on ARMv7 Cortex-A cores (Cortex-A7, A8 and A15) targeted for high-end devices like digital media players, tablets, and netbooks:<br />
{| class="wikitable"<br />
| [[A10|Allwinner A10]] || <small>(sun4i)</small> || 1 x Cortex-A8 CPU-core<br />
|-<br />
| [[A13|Allwinner A13]] || <small>(sun5i)</small> || 1 x Cortex-A8 CPU-core<br />
|-<br />
| [[A10s|Allwinner A10s]] || <small>(sun5i)</small> || 1 x Cortex-A8 CPU-core<br />
|-<br />
| [[A20|Allwinner A20]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=45</ref> || <small>(sun7i)</small> || 2 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A23|Allwinner A23]] || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A31|Allwinner A31]] || <small>(sun6i)</small> || 4 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A31s|Allwinner A31s]] || <small>(sun6i)</small> || 4 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A33|Allwinner A33]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=23</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A40i|Allwinner A40i]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=69</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A50|Allwinner A50]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=72</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A80|Allwinner A80]] || <small>(sun9i)</small> || 4 x Cortex-A7 CPU-cores + 4 x Cortex-A15 CPU-cores&nbsp;<br /><small>(using ARM big.LITTLE heterogeneous CPU architecture)</small><br />
|-<br />
| [[A83T|Allwinner A83T]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=24</ref> || <small>(sun8i)</small>&nbsp; || 8 x Cortex-A7 CPU-cores<br />
|}<br />
<br />
'''64-bit'''<br />
{| class="wikitable"<br />
| [[A63|Allwinner A63]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=67</ref> || <small>(sun50i)</small>&nbsp; || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[A64|Allwinner A64]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=9</ref> || <small>(sun50i)</small>&nbsp; || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[A100|Allwinner A100]] || <small>(sun50i)</small>&nbsp; || 4 x Cortex-A53 CPU-cores<br />
|-<br />
| [[A133|Allwinner A133]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=93</ref> || <small>(sun50i)</small> || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[A523|Allwinner A523]] || <small>(sun55i)</small> || 4 x Cortex-A55 CPU-core<br />
|}<br />
<br />
== "F"-Series ==<br />
:'''{{note|The F series is not supported by the linux-sunxi community due to lack of developers and hardware. ''sun3i'' have only official linux support, ''sunii'' have no linux support, only Allwinner's "Melis" RTOS.}}'''<br />
<br />
Based on ARMv5 ARM926-EJS core and currently targeted for low market devices such as cheap ebook readers, etc.<br />
<br />
F1C700 seems to be a remarked A13, and it's ARMv7.<br />
<br />
{| class="wikitable"<br />
| [[C100|Boxchip C100]] || <small>(sun3i)</small><br />
|-<br />
| [[E200|Boxchip E200]] || <small>(sun3i)</small><br />
|-<br />
| [[F10|Boxchip F10]] <small>aka SoChip SC9800 aka Teclast T8100</small>&nbsp; || <small>(sunii)</small><br />
|-<br />
| [[F13|Boxchip F13]] || <small>(sunii)</small><br />
|-<br />
| [[F13|Boxchip F15]] <small>aka SoChip SC8600 aka Teclast T7200</small> || <small>(sunii)</small><br />
|-<br />
| [[F18|Boxchip F18]] || <small>(sunii)</small><br />
|-<br />
| [[F20|Boxchip F20]] || <small>(sun3i)</small><br />
|-<br />
| [[F23|Allwinner F23]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=30</ref> <small>aka F1C100A</small> || <small>(suniv)</small><br />
|-<br />
| [[F25|Allwinner F25]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=31</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C100A|Allwinner F1C100A]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=29</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C100s|Allwinner F1C100s]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=73</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C200s|Allwinner F1C200s]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=74</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C500|Allwinner F1C500]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=27</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C500s|Allwinner F1C500s]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=75</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C600|Allwinner F1C600]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=28</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C700|Allwinner F1C700]] || <small>(sun5i)</small><br />
|-<br />
| [[F1C800|Allwinner F1C800]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=76</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1D100|Allwinner F1D100]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=64</ref> || <small>(suniv)</small><br />
|}<br />
<br />
== "H"-Series ==<br />
Based on ARMv7/ARMv8 Cortex-A cores (A7/A53) targeted for video OTT (over-the-top) boxes and high-end gaming consoles:<br />
{| class="wikitable"<br />
| [[H2+|Allwinner H2+]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=62</ref> || <small>(sun8i)</small>&nbsp; || 4 x Cortex-A7 CPU-core&nbsp;<br />
|-<br />
| [[H3|Allwinner H3]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=47</ref> || <small>(sun8i)</small>&nbsp; || 4 x Cortex-A7 CPU-core&nbsp;<br />
|-<br />
| [[H8|Allwinner H8]] || <small>(sun8i)</small> || 8 x Cortex-A7 CPU-core<br />
|-<br />
| [[H80|Allwinner H80]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=46</ref> || <small>(sun8i)</small> || 8 x Cortex-A7 CPU-core<br />
|}<br />
<br />
'''64-bit'''<br />
{| class="wikitable"<br />
| [[H5|Allwinner H5]]<ref>https://web.archive.org/web/20180131124325/http://www.allwinnertech.com/index.php?c=product&a=index&id=57</ref>&nbsp; || <small>(sun50i)</small>&nbsp; || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[H6|Allwinner H6]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=66</ref>&nbsp; || <small>(sun50i)</small>&nbsp; || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[H64|Allwinner H64]]<ref>http://web.archive.org/web/20160425223052/http://www.allwinnertech.com/en/clq/H_series/6100.html</ref> || <small>(sun50i)</small> || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[H313|Allwinner H313]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=90</ref> || <small>(sun50i)</small> || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[H616|Allwinner H616]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=89</ref> || <small>(sun50i)</small> || 4 x Cortex-A53 CPU-core<br />
|}<br />
<br />
== "R"-Series ==<br />
<br />
{| class="wikitable"<br />
| [[R6|Allwinner R6]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=79</ref> || <small>(sun3i)</small> || 1 x ARM926EJ-S CPU-core<br />
|-<br />
| [[R7|Allwinner R7]]<ref>https://web.archive.org/web/20191218202340/http://www.allwinnertech.com/index.php?c=product&a=index&id=82</ref> || <small>(sun8i)</small> || 1 x Cortex-A7 CPU-core<br />
|-<br />
| [[R8|Allwinner R8]]<ref>http://web.archive.org/web/20160510053338/http://www.allwinnertech.com/en/clq/R_series/2015/0514/R8.html</ref> || <small>(sun5i)</small>&nbsp; || 1 x Cortex-A8 CPU-core<br />
|-<br />
| [[R11|Allwinner R11]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=83</ref> || <small>(sun8i)</small> || 1 x Cortex-A7 CPU-core<br />
|-<br />
| [[R16|Allwinner R16]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=51</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[R40|Allwinner R40]]<ref>https://web.archive.org/web/20191229233801/http://www.allwinnertech.com/index.php?c=product&a=index&id=56</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[R58|Allwinner R58]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=49</ref>&nbsp; || <small>(sun8i)</small> || 8 x Cortex-A7 CPU-core<br />
|-<br />
| [[R311|Allwinner R311]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=84</ref>&nbsp; || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[R328|Allwinner R328]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=85</ref>&nbsp; || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|-<br />
| [[R818|Allwinner R818]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=92</ref> || <small>(sun8i)</small> || 4 x Cortex-A53 CPU-core<br />
|}<br />
<br />
The Allwinner R8 is repackaged version of the A13. This SoC gets used in the minicomputer presented in Next Thing Co.'s [[NextThingCo CHIP|''C.H.I.P.'']] kickstarter project ("The $9 computer")<ref>http://nextthing.co/</ref>.<br />
<br />
By comparing the product pages the R16 seems to be a relabeled version of A33. This is somewhat confirmed by the (identical) SoC ID the BROM reports.<ref>https://groups.google.com/d/msg/linux-sunxi/vx6oQMy-nis/vgVc8d1KBAAJ</ref><br />
<br />
'''64-bit'''<br />
{| class="wikitable"<br />
| [[R18|Allwinner R18]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=68</ref> || <small>sun50i</small> || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[R329|Allwinner R329]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=91</ref>&nbsp; || <small>(sun50i)</small> || 2 x Cortex-A53 CPU-core<br />
|}<br />
<br />
== "T"-series ==<br />
<br />
{| class="wikitable"<br />
| [[T2|Allwinner T2]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=39</ref> || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|-<br />
| [[T3|Allwinner T3]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=41</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[T7|Allwinner T7]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=71</ref> || <small>(sun8i)</small> || 6 x Cortex-A7 CPU-core<br />
|-<br />
| [[T8|Allwinner T8]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=43</ref> || <small>(sun8i)</small> || 8 x Cortex-A7 CPU-core<br />
|}<br />
<br />
<br />
'''64-bit'''<br />
{| class="wikitable"<br />
| [[T5|Allwinner T5]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=94</ref> || <small>(sun8i)</small> || 4 x Cortex-A53 CPU-core<br />
|}<br />
<br />
== "V"-series ==<br />
<br />
{| class="wikitable"<br />
| [[V3|Allwinner V3]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=37</ref> || <small>(sun8i)</small> || 1 x Cortex-A7 CPU-core<br />
|-<br />
| [[V3s|Allwinner V3s]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=38</ref> || <small>(sun8i)</small> || 1 x Cortex-A7 CPU-core<br />
|-<br />
| [[V5|Allwinner V5]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=70</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[V40|Allwinner V40]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=36</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[V66|Allwinner V66]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=35</ref> || <small>(sun8i)</small> || 8 x Cortex-A7 CPU-core<br />
|-<br />
| [[V316|Allwinner V316]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=87</ref> || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|-<br />
| [[V536|Allwinner V536]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=88</ref> || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|-<br />
| [[V831|Allwinner V831]] || <small>(sun8i)</small> || 1 x Cortex-A7 CPU-core<br />
|-<br />
| [[V833|Allwinner V833]] || <small>(sun8i)</small> || 1 x Cortex-A7 CPU-core<br />
|}<br />
<br />
== "X" - (B/MR/S/VR) - series ==<br />
<br />
{| class="wikitable"<br />
| [[B288|Allwinner B288]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=59</ref> || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|-<br />
| [[B300|Allwinner B300]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=86</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|}<br />
<br />
{| class="wikitable"<br />
| [[MR100|Allwinner MR100]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=77</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[MR133|Allwinner MR133]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=81</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|}<br />
<br />
{| class="wikitable"<br />
| [[S3|Allwinner S3]]<ref>https://www.allwinnertech.com/index.php?c=product&a=index&id=78</ref> || <small>(sun8i)</small> || 1 x Cortex-A7 CPU-core <br />
|}<br />
<br />
'''64-bit'''<br />
{| class="wikitable"<br />
| [[VR9|Allwinner VR9]]<ref>https://www.allwinnertech.com/index.php?c=product&a=index&id=65</ref> || <small>(sun50i)</small> || 4 x Cortex-A53 CPU-core<br />
|}<br />
<br />
== "RISC-V"-Series ==<br />
{| class="wikitable"<br />
| [[D1|Allwinner D1]]<ref>https://www.allwinnertech.com/index.php?c=product&a=index&id=97</ref> || <small>(sun20i)</small>&nbsp; || 1 x RISC-V [https://occ.t-head.cn/vendor/cpu/index?id=3817197695983423488 T-Head XuanTie C906] CPU-core<br />
|-<br />
| [[D1s|Allwinner D1s (or F133)]]<ref>https://www.allwinnertech.com/index.php?c=product&a=index&id=101</ref> || <small>(sun20i)</small>&nbsp; || 1 x RISC-V [https://occ.t-head.cn/vendor/cpu/index?id=3817197695983423488 T-Head XuanTie C906] CPU-core<br />
|}<br />
<br />
= 2013 naming scheme change =<br />
<br />
Initially, Allwinner named their SoCs chronologically:<br />
* sun4i = A10<br />
* sun5i = A13/A10s<br />
* sun6i = A31<br />
* sun7i = A20<br />
<br />
but, somewhere in 2013, Allwinner decided to update their naming scheme to be based on the ARM core used instead: (taken from the A80 SDK kernel code).<br />
<br />
Note: SoCs with "?" have never appeared on Allwinner's website. <ref>https://github.com/tinalinux/brandy/blob/r40-v1.y/SUNXI_README</ref><br />
<br />
TODO: Add to the following table: [[F1C800]], [[F23]], [[F25]], [[R11]], [[R328]], [[R818]], [[T2]], [[T5]], [[T8]], [[B300]], [[MR100]], [[VR9]], [[V831]], [[A133]], [[F133]].<br />
<br />
{| class="wikitable"<br />
! sunxi (arm cores) !! sunxiwx (soc id) !! p (rev id) !! soc name !! cores !! notes<br />
|-<br />
| sun3i (arm926ejs) || sun3iw1 (0x1663) || sun3iw1p1 || [[F1C100s]], [[F1C100A]], [[F1C200s]], [[F1C500]], [[F1C500s]], [[F1C600]], [[F1D100]], [[R6]] || 1xARM926EJ-S<br />
|-<br />
| style="text-align: left;" rowspan="4" | sun4i (cortex-a8) <br />
| sun4iw1 (0x1623) || sun4iw1p1 || [[A10]] || 1xCortex-A8<br />
|-<br />
| style="text-align: left;" rowspan="3" | sun4iw2 (0x1625)<br />
| sun4iw2p1 || [[A13]] || 1xCortex-A8<br />
|-<br />
| sun4iw2p2 || [[A12]] || ?<br />
|-<br />
| sun4iw2p3 || [[A10s]] || 1xCortex-A8<br />
|-<br />
| style="text-align: left;" rowspan="23" | sun8i <br />
(cortex-a7 smp)<br />
<br />
| style="text-align: left;" rowspan="2" | sun8iw1 (0x1633)<br />
<br />
| sun8iw1p1 || [[A31]] || 4xCortex-A7<br />
|-<br />
| sun8iw1p2 || [[A31s]] || 4xCortex-A7<br />
|-<br />
| style="text-align: left;" rowspan="2" | sun8iw2 (0x1651)<br />
<br />
| sun8iw2p1 || [[A20]] || 2xCortex-A7<br />
|-<br />
| sun8iw2p2 || ? || ?<br />
|-<br />
| style="text-align: left;" rowspan="2" | sun8iw3 (0x1650)<br />
<br />
| sun8iw3p1 || [[A23]] || 2xCortex-A7<br />
|-<br />
| sun8iw3p2 || ? || ?<br />
|-<br />
| sun8iw5 (0x1667) || sun8iw5p1 || [[A33]], [[R16]] || 4xCortex-A7<br />
|-<br />
| sun8iw6 (0x1673) || sun8iw6p1 || [[A83T]], [[H8]], [[H80]], [[V66]], [[R58]] || 8xCortex-A7<br />
|-<br />
| sun8iw7 (0x1680) || sun8iw7p1 || [[H3]], [[H2+]] || 4xCortex-A7<br />
|-<br />
| style="text-align: left;" rowspan="2" | sun8iw8 (0x1681)<br />
<br />
| sun8iw8p1 || [[V3]], [[S3]], [[V3s]] || 1xCortex-A7 || called V30 in allwinner's kernel source<br />
|-<br />
| sun8iw8p2 || ? || ? || called V33 in allwinner's kernel source<br />
|-<br />
| sun8iw10 (0x1699) || sun8iw10p1 || [[B288]], [[B100]] || 2xCortex-A7<br />
|-<br />
| style="text-align: left;" rowspan="4" | sun8iw11 (0x1701)<br />
<br />
| sun8iw11p1 || [[R40]], [[V40]], [[T3]], [[A40i]], [[A20e]]? || 4xCortex-A7<br />
|-<br />
| sun8iw11p2 || ?? || 4xCortex-A7<br />
|-<br />
| sun8iw11p3 || ?? || 4xCortex-A7<br />
|-<br />
| sun8iw11p4 || ?? || 4xCortex-A7<br />
|-<br />
| sun8iw12 (0x1721) || sun8iw12p1 || [[V5]], [[V100]] || 4xCortex-A7<br />
|-<br />
| sun8iw15 (0x1755) || sun8iw15p1 || [[A50]], [[MR133]], [[R311]] || 4xCortex-A7<br />
|-<br />
| sun8iw16 (0x1816) || sun8iw16p1 || [[V313]], [[V316]], [[V526]], [[V536]], [[V5V200]] || 2xCortex-A7<br />
|-<br />
| sun8iw17 (0x1708) || sun8iw17p1 || [[T7]] || 6xCortex-A7<br />
|-<br />
| sun8iw19 || sun8iw19p1 || [[V533]], [[V833]] || ?xCortex-A7<br />
|-<br />
| sun8iw20 || sun8iw20p1 || [[R528]], [[T113]] || 2xCortex-A7<br />
|-<br />
| sun8iw21 || sun8iw21p1 || [[V853]] || 2xCortex-A7<br />
|-<br />
| style="text-align: left;" rowspan="2" | sun9i <br />
(cortex-a15/cortex-a7 big.LITTLE) <br />
<br />
| style="text-align: left;" rowspan="2" | sun9iw1 (0x1639)<br />
| sun9iw1p1 || [[A80]] || 4xCortex-A7 + 4xCortex-A15<br />
|-<br />
| sun9iw1p2 || [[A80T]] || ?<br />
|-<br />
| style="text-align: left;" | sun20i <br />
(xuantie-c906) <br />
| sun20iw1 (0x1859) || sun20iw1p1 || [[D1]] || 1xC906<br />
|-<br />
| style="text-align: left;" rowspan="8" | sun50i <br />
(cortex-a53 smp) <br />
| sun50iw1 (0x1689) || sun50iw1p1 || [[A64]], [[H64]], [[R18]] || 4xCortex-A53<br />
|-<br />
| sun50iw2 (0x1718) || sun50iw2p1 || [[H5]] || 4xCortex-A53<br />
|-<br />
| sun50iw3 (0x1719) || sun50iw3p1 || [[A63]] || 4xCortex-A53<br />
|-<br />
| sun50iw6 (0x1728) || sun50iw6p1 || [[H6]] || 4xCortex-A53<br />
|-<br />
| sun50iw9 (0x1823) || sun50iw9p1 || [[H616]], [[H313]] || 4xCortex-A53<br />
|-<br />
| sun50iw10 (0x1855) || sun50iw10p1 || [[A100]], [[A133]], [[A53]], [[T509]] || 4xCortex-A53<br />
|-<br />
| sun50iw11 (0x1851) || sun50iw11p1 || [[R329]] || 2xCortex-A53<br />
|-<br />
| sun50iw12 (0x1860) || sun50iw12p1 || [[TV303]] ||?xCortex-A53<br />
|-<br />
| style="text-align: left;" rowspan="8" | sun55i <br />
(cortex-a55 smp) <br />
| sun55iw3 (0x18??) || sun55iw3p1 || [[A523]] || ?xCortex-A55<br />
|}<br />
<br />
This new naming scheme is of absolutely no value with respect to the rest of the SoC. The actual ARM core(s) used are usually the least important piece of information for SoC support. This table completely ignores the fact that A20 is an updated A10 and is pin compatible. It also ignores the fact that A31 introduced a lot of changes which were carried on to the A23/A33 and possibly A80 parts. It therefore is quite likely that this naming scheme was purely a marketing decision, and that Allwinner marketing will change its mind again.<br />
<br />
= Features =<br />
* CPU: ARMv7-A [http://en.wikipedia.org/wiki/ARM_Cortex-A7 Cortex-A7], [http://en.wikipedia.org/wiki/ARM_Cortex-A15 Cortex-A15] or [http://en.wikipedia.org/wiki/ARM_Cortex-A8 Cortex-A8] Central Processor Unit with (co-)processor extensions:<br />
** Advanced SIMD: [http://en.wikipedia.org/wiki/ARM_architecture#Advanced_SIMD_.28NEON.29 NEON] (ARM's extended general-purpose advanced SIMD vector processing extension engine)<br />
** [[Vector Floating Point Unit]] ([http://en.wikipedia.org/wiki/ARM_architecture#Floating-point_.28VFP.29 VFPU]): ARM VFPv3 lite (Cortex-A8) / VFPv4 (Cortex-A7)<br />
** Security Extensions: <br />
*** [http://en.wikipedia.org/wiki/ARM_architecture#Security_extensions_.28TrustZone.29 TrustZone] secure world<br />
*** [[Security_System|Security accelerator]] supporting AES, DES, 3DES, SHA-1, MD5 and pseudo-random number generation<br />
** [http://en.wikipedia.org/wiki/ARM_architecture#Thumb-2 Thumb-2] instruction set extension for optimized code to reduce memory footprint and improve performance<br />
* GPU: [[Mali400]], Mali400-MP2, SGX544 or PowerVR G6230 Graphics Procesor Unit, supporting OpenGL ES2.<br />
* VPU: [[Cedar Engine]] (Video Processor Unit for audio and video hardware decoding or encoding)<br />
* HDMI-transmitter with [http://en.wikipedia.org/wiki/HDMI#CEC HDMI CEC] (Consumer Electronics Control), with exception of A13 which lacks HDMI-transmitter and SATA-controller<ref>[http://olimex.wordpress.com/2012/04/24/cortex-a8-in-tqfp-sure-allwinner-a13/ "Cortex A8 in TQFP? sure Allwinner A13"] ''Retrieved 23 September 2012''</ref><br />
* Hardware virtualization capabilities (Cortex-A7 only).<br />
* Up to 4GB memory (Cortex-A8), Up to 1TB memory with LPAE (Cortex-A7 only).<br />
<br />
== Comparison table ==<br />
{| class="wikitable"<br />
! scope="row" | !! [[A10]] !! [[A10s]] !! [[A13]] !! [[A20]] !! [[A23]] !! [[A31]] !! [[A31s]] !! [[A33]] !! [[A80]]<br />
|-<br />
! scope="row" | Generation <br />
| sun4i || sun5i || sun5i || sun7i || sun8i || sun6i || sun6i || sun8i || sun9i <br />
|-<br />
! scope="row" | CPU<br />
| Cortex-A8 || Cortex-A8 || Cortex-A8 || Cortex-A7 || Cortex-A7 ||Cortex-A7 || Cortex-A7 || Cortex-A7 || Cortex-A7 / A15 <br />
|-<br />
! scope="row" | CPU Maximum frequency<br />
| 1 GHz|| 1 GHz || 1 GHz|| 960 MHz|| 1.5 GHz || ? GHz || ? GHz || 1.5 GHz || 2 (??) GHz<br />
|-<br />
! scope="row" | Cores<br />
| 1 || 1 || 1 || 2 || 2 || 4 || 4 || 4 || 2 x 4<br />
|-<br />
! scope="row" | Extensions<br />
| NEON, VFPv3, Thumb-2 || NEON, VFPv3, Thumb-2 || NEON, VFPv3, Thumb-2 || NEON, VFPv3 / VFPv4, Thumb-2 ||NEON, VFPv3 / VFPv4, Thumb-2 || NEON, VFPv3 / VFPv4, Thumb-2 || NEON, VFPv3 / VFPv4, Thumb-2 || NEON, VFPv3 / VFPv4, Thumb-2 || ? (A80)<br />
|-<br />
! scope="row" | Memory<br />
| DDR2, DDR3</br> (max 2GB @ DDR800) || DDR2, DDR3</br> (max 2GB @ DDR800) || DDR2, DDR3</br> (max 512MB @ DDR800) || LPDDR3, DDR3,</br>LPDDR2 || DDR3</br>(max 1GB) || 2-channel DDR3, LPDDR2, </br>2-channel DDR3L, DDR3U || DDR3, DDR3L, LPDDR2 || single-channel DDR3, DDR3L</br>(max 1GB) || 2-channel DDR3, DDR3L, LPDDR3, LPDDR2</br> up to 8GB<br />
|-<br />
! scope="row" | GPU<br />
| [[Mali400]]</br>320&nbsp;MHz || [[Mali400]]</br>320&nbsp;MHz || [[Mali400]]</br>320&nbsp;MHz || [[Mali400]]-MP2</br>350&nbsp;MHz || [[Mali400]]-MP2 || SGX544</br>200&nbsp;MHz || SGX544</br>200&nbsp;MHz || [[Mali400]]-MP2 || 64-core PowerVR G6230<br />
|-<br />
! scope="row" | GPU API<br />
| OpenGL ES 2.0, OpenVG 1.1 || OpenGL ES 2.0, OpenVG 1.1 || OpenGL ES 2.0, OpenVG 1.1 || OpenGL ES 2.0, OpenVG 1.1 || OpenGL ES 2.0, OpenVG 1.1 || OpenGL ES 2.0, OpenVG 1.1, OpenCL 1.1, and DirectX 9.3 || OpenGL ES 2.0, OpenVG 1.1, OpenCL 1.1, and DirectX 9.3 || OpenGL ES 2.0, OpenVG 1.1 || OpenGL 3.x, OpenGL ES Next,3.0,2.0, Open CL 1.x, DirectX 11 level 9_3/10_0<ref>http://www.imgtec.com/news/detail.asp?ID=845</ref><br />
|-<br />
! scope="row" | [[Cedar Engine|Video decoder]]<br />
| 2160p || 1080p || 1080p || 2160p, 4K×2K, 1080p 3D || 1080p@60fps || 2160p, 4K×2K, 1080p 3D || 2160p, 1080p 3D || 1080p@60fps || ? (A80)<br />
|-<br />
! scope="row" | [[Cedar Engine|Video encoder]]<br />
| H.264 1080p@30fps, JPEG || H.264 1080p@30fps, JPEG || H.264 1080p@30fps, JPEG || H.264 1080p@30fps, JPEG || 1080p@60fps || H.264 1080p@60fps, JPEG || H264 1080p@30fps, 720p@60fps || H.264 1080p@60fps, JPEG || H.264 HP/VP8 4Kx2K@30fp<br />
|-<br />
! scope="row" | Audio decoder<br />
| AC3, DTS || ? || ? || AC3, DTS || - || ? (A31) || ? (A31S) || ? (A33) || ? (A80)<br />
|-<br />
! scope="row" | Video interfaces<br />
| HDMI 1.3, YPbPr, VGA, CPU/RGB/LVDS LCD || HDMI 1.3, RGB/LVDS LCD || RGB LCD, VGA|| HDMI 1.4, CVBS, YPbPr, VGA, CPU/RGB/LVDS LCD || CPU/RGB/LVDS LCD, MIPI DSI || HDMI 1.4, MIPI DSI, 2-channel LVDS, 2-channel RGB LCD || HDMI 1.4, LVDS, RGB LCD || CPU/RGB/LVDS LCD, MIPI DSI || HDMI 4K, RGB LCD 2048x1536@60fps, dual-channel LVDS 1920x1080@60fps, 4-lane MIPI DSI 1920x1200@60fps, 4-lane eDP 2560x1600@60fps<br />
|-<br />
! scope="row" | Audio interfaces<br />
| I2S, SPDIF, AC97 || I2S, AC97 || I2S, AC97 || I2S, PCM, AC97 || I2S, PCM || 2 I2S, 2 PCM || I2S, 2 PCM || ? (A33) || ? (A80)<br />
|-<br />
! scope="row" | USB OTG<br />
| 1 || 1 || 1 || 1 || 1 || 1 || 1 || ? (A33) || 1<br />
|-<br />
! scope="row" | USB Host<br />
| 2 || 1 || 1 || 2 || 1 || 2 || 2 || ? (A33) || 2x USB Host, USB 3.0/2.0 Dual-Role (host/device)<br />
|-<br />
! scope="row" | Ethernet<br />
| EMAC || EMAC || - || EMAC/GMAC || - || GMAC || GMAC || - || GMAC<br />
|-<br />
! scope="row" | Storage<br />
| NAND (max 64GB), SATA II, SD Card 3.0 || NAND (max 64GB), SD Card 3.0 || NAND (max 64GB), SD Card 3.0 || NAND, MMC, [http://olimex.wordpress.com/2013/04/05/allwinners-a10-and-a20-are-they-really-pin-to-pin-compatible-and-drop-in-replacement/#comment-5452 SATA] || raw NAND, eMMC, SD card || 4 x SD Card, eMMC NAND, 2-channel raw NAND || 4 x SD Card, eMMC NAND, raw NAND || 3 x SD Card, eMMC NAND, raw NAND || 4 x SD/MMC<br />
|-<br />
! scope="row" | Package<br />
| BGA441</br>19&nbsp;mm&nbsp;×&nbsp;19&nbsp;mm</br>0.80&nbsp;mm Pitch || BGA336</br>14&nbsp;mm&nbsp;×&nbsp;14&nbsp;mm</br>0.65&nbsp;mm Pitch || eLQFP176</br>20&nbsp;mm&nbsp;×&nbsp;20&nbsp;mm ||BGA441</br>19&nbsp;mm&nbsp;×&nbsp;19&nbsp;mm</br>0.80&nbsp;mm Pitch || FBGA280</br>14&nbsp;mm&nbsp;x&nbsp;14&nbsp;mm&nbsp;x&nbsp;1.4&nbsp;mm</br>0.80&nbsp;mm Pitch || BGA609</br>18&nbsp;mm&nbsp;×&nbsp;8&nbsp;mm</br>0.65&nbsp;mm Pitch || ? (A31S) || ? (Allwinner: pin compatible with A23) || ? (A80)<br />
|-<br />
! scope="row" | Lithography<br />
| 55 nm || 55 nm|| 55 nm || 40 nm || 40 nm || 40 nm || 40 nm || 40 nm || 28 nm<br />
|}<br />
<ref>https://web.archive.org/web/20130301050520/http://blog.thinkteletronics.com/all-mobile-socsolutions/ All Mobile Soc/Solutions.</ref><br />
<br />
= References =<br />
<references /><br />
<br />
[[Category:System on Chip]]</div>
Frozeus
https://linux-sunxi.org/index.php?title=A133&diff=24953
A133
2022-07-10T12:51:00Z
<p>Frozeus: Created page with "{{Infobox SoC | image = ?? | manufacturer = Allwinner | process = ?? | cpu = Quad-Core ARM Cortex-A53 | memory = up to 4 GB DDR4 / DDR3 / DDR3L / LPDDR3 / LPDDR4..."</p>
<hr />
<div>{{Infobox SoC<br />
| image = ??<br />
| manufacturer = Allwinner<br />
| process = ??<br />
| cpu = Quad-Core ARM Cortex-A53<br />
| memory = up to 4 GB DDR4 / DDR3 / DDR3L / LPDDR3 / LPDDR4<br />
| gpu = Imagination GE8300<br />
| video = HDMI 2.0a up to 4K @ 60Hz<br />CVBS with PAL or NTSC<br />
| audio = I2S, S/PDIF, HDMI audio<br />
| network = 1x 10/100M/1000 MAC<br />
| storage = eMMC 5.1, NAND<br />
| usb = USB2.0: 1x OTG + 3x Host<br />
| other = <br />
| website =<br />
}}<br />
<br />
Allwinner [[A133]] (sun50iw10) is a SoC that features a Quad-Core Cortex-A53 ARM CPU, and a GE8300 GPU from Imagination.<br />
<br />
=Overview=<br />
<br />
To complete<br />
<br />
= Documentation =<br />
<br />
* [[File:A133_Product_Brief.pdf]]<br />
* [[File:A133_Datasheet_V1.1.pdf]]<br />
* [[File:A133_User_Manual_V1.1.pdf]]<br />
* [[File:H616_Android_Q_OTA_Development_and_Use_Guide.pdf]]<br />
<br />
=References=<br />
<references /><br />
<br />
[[Category:System on Chip]]</div>
Frozeus
https://linux-sunxi.org/index.php?title=File:A133_Datasheet_V1.1.pdf&diff=24952
File:A133 Datasheet V1.1.pdf
2022-07-10T12:48:51Z
<p>Frozeus: </p>
<hr />
<div></div>
Frozeus
https://linux-sunxi.org/index.php?title=File:A133_Product_Brief.pdf&diff=24951
File:A133 Product Brief.pdf
2022-07-10T12:47:47Z
<p>Frozeus: </p>
<hr />
<div></div>
Frozeus
https://linux-sunxi.org/index.php?title=Linux_mainlining_effort&diff=24942
Linux mainlining effort
2022-07-07T19:39:49Z
<p>Frozeus: mark 5.15 as LTS</p>
<hr />
<div>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.<br />
<br />
=Overview=<br />
The idea is to submit the code needed to run the Linux kernel on Allwinner SoCs upstream, ie. to the official Linux kernel.<br />
<br />
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.<ref>http://www.elinux.org/images/a/ad/Arm-soc-checklist.pdf</ref><ref>[http://www.cnx-software.com/2013/01/16/your-new-arm-soc-linux-support-check-list-elce-2012/ Your New ARM SoC Linux Support Check-List – ELCE 2012]</ref><br />
<br />
Where relevant, I have attempted to include who is currently working on an item, mostly separate from any particular mainlining goal.<br />
<br />
=Status=<br />
<br />
The [[Mainline_Kernel_Howto|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|Mainline U-Boot howto]].<br />
<br />
The [[:Category:Mainline_Kernel | Mainline Kernel category ]] gives an overview of currently supported devices.<br />
<br />
== Status Matrix ==<br />
<br />
The goal of this matrix is to give an easy view of work on each SoC worked on by linux-sunxi.<br />
<br />
{| class="wikitable" style="text-align: center; width: 100%"<br />
|-<br />
! colspan="2" style="text-align: left; width: 13%" | Model<br />
! [[F1C100s|F1C-<br>100s]]<br />
! [[A10]]<br />
! [[A10s]]<br />
! [[A13]]<br>[[R8]]<br />
! [[GR8]]<br />
! [[A20]]<br>[[T2]]<br />
! [[R40]]<br>[[T3]]<br>[[A40i]]<br />
! [[A80]]<br />
! [[A31]]<br />
! [[A23]]<br />
! [[A33]]<br>[[R16]]<br />
! [[A83T]]<br />
! [[H3]]<br />
! [[S3]]<br>[[S3L]]<br>[[V3]]<br>[[V3s]]<br />
! [[A64]]<br />
! [[H5]]<br />
! [[H6]]<br />
! [[A50]]<br />
! [[V831]]<br>[[V833]]<br />
! [[H616]]<br />
! [[A100]]<br>[[A133]]<br />
! [[R329]]<br />
! [[D1]]<br />
<br />
|-<br />
| style="text-align: left;" rowspan="4" | ADC<br />
| style="text-align: left;" | GPADC<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | LRADC<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: darkgreen; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.19<br />
| style="background: lightgreen;" | 5.19<br />
<br />
|-<br />
| style="text-align: left;" | Thermal<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 5.7<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| N/A<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" | Touch<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.0<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" rowspan="6" | Audio<br />
| style="text-align: left;" | AC97<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | [[Audio Codec|Analog Codec]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.11<br />
| N/A<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" | Audio Hub<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | DMIC<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
| N/A<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" | I2S<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: darkgreen; color: white;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.11<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.18<br />
| style="background: lightgreen;" | 5.18<br />
<br />
|-<br />
| style="text-align: left;" | [[SPDIF]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.7<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.7<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.11<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" rowspan="4" | [[CSI|Camera]]<br />
| style="text-align: left;" | BT656<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
<br />
|-<br />
| style="text-align: left;" | ISP<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
<br />
|-<br />
| style="text-align: left;" | MIPI CSI-2<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
<br />
|-<br />
| style="text-align: left;" | Parallel<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Clocks<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.10<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.10<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
| style="background: lightgreen;" | 5.12<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: orange;" | WIP<br />
| style="background: lightgreen;" | 5.17<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | CPUFreq (DVFS)<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.9<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | CPUIdle<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: orange;" | Crust<br />
| style="background: red;" | NO<br />
| style="background: orange;" | Crust<br />
| style="background: orange;" | Crust<br />
| style="background: orange;" | Crust<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: orange;" | SBI<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[Cryptographic_Hardware_Accelerators|Crypto]]<br />
| N/A<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" rowspan="9" | [https://dri.freedesktop.org/wiki/DRM/ Display (DRM)]<br />
| style="text-align: left;" | CVBS<br />
| style="background: red;" | NO<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9 ?<br />
| style="background: lightgreen;" | 4.7<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | G2D<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | HDMI Audio<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | HDMI CEC<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.14<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.17<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | HDMI Video<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.13<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.17<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" | LVDS<br />
| N/A<br />
| style="background: darkgreen; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.7<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.16<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | MIPI DSI<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.6<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | RGB<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.7<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.16<br />
| N/A<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 5.3<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.20<br />
<br />
|-<br />
| style="text-align: left;" | VGA<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Display (SimpleFB)<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | DMA<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.19<br />
<br />
|-<br />
| style="text-align: left;" rowspan="2" | [[Ethernet]]<br />
| style="text-align: left;" | [[Ethernet#EMAC|EMAC]]<br />
| N/A<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.11<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 5.1<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
| style="background: grey; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.15<br />
<br />
|-<br />
| style="text-align: left;" | [[Ethernet#GMAC|GMAC]]<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: lightgreen;" | 3.17<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" rowspan="2" | GPU (3D)<br />
| style="text-align: left;" | [[Mali]]<br />
| N/A<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 5.10<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | 5.2<br />
| N/A<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | [[PowerVR]]<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | HW Spinlocks<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[I2C]]<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.13<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | IOMMU<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" rowspan="2" | [[IR]]<br />
| style="text-align: left;" | [[IR|IR RX]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.0<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 4.6<br />
| N/A<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | IR TX<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Keypad<br />
| N/A<br />
| style="background: orange;" | WIP<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | WIP<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | LDOs<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | LEDC<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | MBUS<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.17<br />
| style="background: lightgreen;" | 5.17<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | MsgBox<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: lightgreen;" | 5.8<br />
| N/A<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | PCIe<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]] <ref name="h6-pcie">Allwinner H6 has a quirky PCIe controller that doesn't map the PCIe address space properly to CPU,<br />
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/</ref><br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Pinctrl<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
| style="background: lightgreen;" | 5.12<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[PMU]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[PWM_Controller|PWM]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" rowspan="2" | Remoteproc<br />
| style="text-align: left;" | AIPU<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | DSP<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[RSB]]<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.3<br />
| N/A<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.12<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[RTC]]<br />
| N/A<br />
| style="background: lightgreen;" | 3.14<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 5.0<br />
| N/A<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| N/A<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | SID (eFuse)<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.18<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | SMP<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: lightgreen;" | PSCI<br />
| N/A<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | PSCI<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SPIdev|SPI]]<br />
| style="background: lightgreen;" | 5.19<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.7<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SRAM Controller|SRAM]]<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 5.10<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 4.19<br />
| N/A<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" rowspan="4" | Storage<br />
| style="text-align: left;" | EMCE<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | [[NAND]]<br />
| N/A<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 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 [[MTD_Driver#Challenges|this page]] </ref><br />
| style="background: lightgreen;" | 4.9 <ref name="mlc" /><br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9 <ref name="mlc"/><br />
| style="background: lightgreen;" | 4.9 <ref name="mlc" /><br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| N/A<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | [[SATA]]<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.20<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | [[eMMC|SD/MMC]]<br />
| style="background: lightgreen;" | 5.19<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.12<br />
| style="background: orange;" | WIP<br />
| style="background: lightgreen;" | 5.18<br />
<br />
|-<br />
| style="text-align: left;" rowspan="3" | Timer<br />
| style="text-align: left;" | Arch Timer<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: orange;" | WIP<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
<br />
|-<br />
| style="text-align: left;" | HSTIMER<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
<br />
|-<br />
| style="text-align: left;" | TIMER<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 5.14<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.14<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.14<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
<br />
|-<br />
| style="text-align: left;" rowspan="3" | [[USB]]<br />
| style="text-align: left;" | [[USB]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.18<br />
<br />
|-<br />
| style="text-align: left;" | [[USB_OTG_Controller_Register_guide#USB_OTG|USB OTG]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | WIP<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.18<br />
<br />
|-<br />
| style="text-align: left;" | USB3<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.5<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[Video_Engine|VE]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: red;" | NO<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.17<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Watchdog<br />
| style="background: lightgreen;" | 5.19<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: darkgreen; color: white;" | ?<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 5.16<br />
| style="background: lightgreen;" | 5.16<br />
<br />
|-<br />
! colspan="2" style="text-align: left; width: 13%" | Model<br />
! [[F1C100s|F1C-<br>100s]]<br />
! [[A10]]<br />
! [[A10s]]<br />
! [[A13]]<br>[[R8]]<br />
! [[GR8]]<br />
! [[A20]]<br>[[T2]]<br />
! [[R40]]<br>[[T3]]<br>[[A40i]]<br />
! [[A80]]<br />
! [[A31]]<br />
! [[A23]]<br />
! [[A33]]<br>[[R16]]<br />
! [[A83T]]<br />
! [[H3]]<br />
! [[S3]]<br>[[S3L]]<br>[[V3]]<br>[[V3s]]<br />
! [[A64]]<br />
! [[H5]]<br />
! [[H6]]<br />
! [[A50]]<br />
! [[V831]]<br>[[V833]]<br />
! [[H616]]<br />
! [[A100]]<br>[[A133]]<br />
! [[R329]]<br />
! [[D1]]<br />
|}<br />
<br />
{| class="wikitable" style="text-align: center;"<br />
|-<br />
! Legend<br />
|-<br />
| style="background: lightgreen;" | In Linux mainline since version x<br />
|-<br />
| style="background: darkgreen;" | Nobody works on it, but it should be compatible with already done drivers<br />
|-<br />
| style="background: orange;" | Somebody works on it<br />
|-<br />
| style="background: red;" | No support, nobody works on it<br />
|-<br />
| style="background: black; color: white;" | support impossible<br />
|-<br />
| style="background: grey; color: white;" | Status is unknown/to be completed<br />
|}<br />
<br />
== Work In Progress ==<br />
<br />
=== Core Stuff ===<br />
*[[V831]] / [[V833]] Clocks & Pinctrl / RTC / MMC / Watchdog / SPI - Icenowy Zheng [https://patchwork.kernel.org/project/linux-arm-kernel/cover/20201212040157.3639864-1-icenowy@aosc.io/ Support for Allwinner V831 SoC]<br />
<br />
*[[H616]] USB, RTC, PMIC, ... Andre Przywara [https://github.com/apritzel/linux/commits/h616-v6-WIP arm64: sunxi: Initial Allwinner H616 SoC support]<br />
<br />
*[[D1]] SoC and driver support - Samuel Holland: [https://github.com/smaeul/linux/commits/riscv/d1-wip development branch], [https://gist.github.com/smaeul/bf35d0e50ef08bbc8c3e71aec41dd723 boot log]<br />
<br />
*[[AR100]] firmware (WiP: Samuel Holland) [https://github.com/crust-firmware/crust ARISC firmware for sunxi SoCs ]<br />
<br />
* [[A13]] PSCI Suspend / Resume / CPUIdle (WiP: Antoine Tenart) [http://lists.denx.de/pipermail/u-boot/2016-September/265453.html patch-v1]<br />
<br />
=== Major drivers ===<br />
* [[A100]] DMA/PMU/Watchdog/USB2/USB OTG/MMC(eMMC, SD) Frank Lee [https://patchwork.kernel.org/project/linux-arm-kernel/cover/cover.1604988979.git.frank@allwinnertech.com/ Second step support for A100]<br />
<br />
* [[A83T]]/[[V3s]] MIPI CSI-2 Paul Kocialkowski [https://patchwork.kernel.org/project/linux-arm-kernel/list/?series=369649 Allwinner MIPI CSI-2 support for A31/V3s/A83T ]<br />
<br />
* [[V3s]] ISP (Image Signal Processor) Paul Kocialkowski [https://bootlin.com/blog/initial-allwinner-v3-isp-support-in-mainline-linux/ initial-allwinner-v3-isp-support-in-mainline-linux]<br />
<br />
* [[H6]] Hypervisor for PCIe [https://forum.armbian.com/topic/13529-a-try-on-utilizing-h6-pcie-with-virtualization/ A try on utilizing H6 PCIe with "Virtualization"]<br />
<br />
* [[A64]] / [[H3]] / [[H5]] / [[H6]] HDMI Audio - Clément Péron / Marcus Cooper / Jernej Škrabec [https://patchwork.kernel.org/cover/11510511/ Add Allwinner H3/H5/A64 HDMI audio]<br />
<br />
* [[R40]] MIPI-DSI WIP Jagan Teki [https://patchwork.kernel.org/cover/11314031/ drm/sun4i: Allwinner R40 MIPI-DSI support v3] <br />
<br />
* [[AC100]] Audio codec WiP Ondrej Jirman [https://megous.com/git/linux/commit/?h=orange-pi-5.5&id=170d38d650f67657600d4e0e868e0e7110b89ee1 digital part] [https://megous.com/git/linux/commit/?h=orange-pi-5.5&id=ee424255a6fb9280ac27c1953019b768ca973ca7 analog part]<br />
<br />
* [[F1C100s]] USB WIP George Hilliard [https://patchwork.kernel.org/cover/11428003/ Support the Allwinner F1C100s USB stack]<br />
<br />
* [[V3s]] SRAM & Video Decoding Engine (Cedrus) WiP Martin Cerveny [https://patchwork.kernel.org/project/linux-arm-kernel/list/?series=347787 Enable video decoder] ([https://github.com/mcerveny/linux/commits/v3s_videocodec_v4 testing with attached LCD])<br />
* [[H6]] VP9 decoder (Hantro G2) WiP jernej [https://github.com/jernejsk/linux-1/commits/vp9 branch]<br />
<br />
=== Minor drivers ===<br />
<!-- Please move the newest entry to the top --><br />
* [[R40]]/[[T3]]/[[A40i]] CPUFreq (DVFS) qianfan Zhao [https://lore.kernel.org/linux-sunxi/20220517013607.2252-1-qianfanguijin@163.com/T/ ARM: sun8i-r40: CPU improve]<br />
* [[R40]]/[[T3]]/[[A40i]] RTP/LRADC Evgeny Boger [https://lore.kernel.org/linux-sunxi/20211119191456.510435-1-boger@wirenboard.com/]<br />
* [[R40]]/[[T3]]/[[A40i]] EMAC Evgeny Boger [https://lore.kernel.org/linux-sunxi/20220111160600.58384-1-boger@wirenboard.com/ support for two Ethernet ports on Allwinner R40]<br />
* [[R40]]/[[T3]]/[[A40i]] USB OTG qianfan Zhao [https://lore.kernel.org/linux-sunxi/20220518101706.26869-1-qianfanguijin@163.com/T/ ARM: sun8i-r40: Enable usb otg support]<br />
* [[V3]] I2S Tobias Schramm [https://patchwork.kernel.org/project/linux-arm-kernel/list/?series=482161&archive=both&state=* Add missing peripherals to Allwinner V3s/V3 device trees]<br />
* [[H3]] / [[H5]] CVBS WIP Jernej Skrabec [https://github.com/LibreELEC/LibreELEC.tv/blob/master/projects/Allwinner/patches/linux/0036-wip-h3-h5-cvbs.patch Add H3/H5 TVE support]<br />
* [[A100]] CPUFreq (DVFS) Shuosheng Huang [https://patchwork.kernel.org/project/linux-arm-kernel/list/?series=396055&archive=both&state=* cpufreq: sun50i: add a100 cpufreq support]<br />
* [[A64]] hwspinlock WIP Nikolay Borisov [https://patchwork.kernel.org/cover/11373645/ Add support for hwspinlock on A64 SoC] <br />
* [[A83T]] / [[A64]] / [[H3]] hwspinlock WIP Corentin Labbe (montjoie) [https://lore.kernel.org/patchwork/patch/706512/ RFC,1/3][https://lore.kernel.org/patchwork/patch/706511/ RFC,2/3][https://lore.kernel.org/patchwork/patch/706513/ RFC,3/3]<br />
* [[A10]] / [[A20]] / [[A31]] HDMI Audio WIP Stefan Mavrodiev [https://lore.kernel.org/patchwork/cover/1177803/ Add support for sun4i HDMI audio]<br />
* [[A80]] Thermal sensor WIP Philipp Rossak (embed-3d): https://github.com/embed-3d/linux/branches/all<br />
* [[R40]] PWM (WIP Hao Zhang [https://www.spinics.net/lists/kernel/msg2731498.html patch-v2])<br />
* [[A20]] Keypad (WiP: Yassin Jaffer (ddc) [http://lists.infradead.org/pipermail/linux-arm-kernel/2015-September/370079.html patch])<br />
* sun8i-ce/sun8i-ss RSA/ECC WIP Corentin LABBE (no public patch yet)<br />
* 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/<br />
<br />
=== Drivers that can still be improved/added ===<br />
<br />
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.<br />
<br />
* [[A31]]/[[A31s]] PWM support ([https://patchwork.ozlabs.org/project/linux-pwm/list/?submitter=70938&state=*&archive=both patch-v4] abandoned by Siarhei Volkau)<br />
* sunxi-musb driver lacks DMA support (with current driver, USB gadgets are limited to PIO, limiting speed to 10MiB/s and causing large CPU)<br />
* DE2 driver has buggy layer support, see [https://patchwork.kernel.org/patch/11145803/]<br />
* DE1/DE2/DE3 writeback support<br />
* A64 audiocodec driver components (sun8i-codec and sun50i-codec-analog) lack support for jack detection<br />
<br />
== Planned for next ==<br />
<br />
== Merged into 5.19 ==<br />
<br />
* [[D1]]<br />
** DMA<br />
** LRADC<br />
* [[F1C100s]] <br />
** SD/MMC<br />
** SPI<br />
** Watchdog<br />
<br />
== Merged into 5.18 ==<br />
<br />
* [[D1]]<br />
** I2S<br />
** MMC<br />
** SID<br />
** USB<br />
<br />
== Merged into 5.17 ==<br />
<br />
* [[A64]]/[[H5]]<br />
** DRAM frequency scaling (DEVFREQ)<br />
* [[D1]]<br />
** Clocks<br />
** PLIC<br />
* [[R40]]/[[T3]]/[[A40i]]<br />
** CAN ([https://lore.kernel.org/linux-sunxi/20220111155709.56501-1-boger@wirenboard.com/ series])<br />
<br />
== Merged into 5.16 ==<br />
<br />
* [[R329]]/[[D1]]<br />
** Watchdog<br />
<br />
== Merged into 5.15 (LTS)==<br />
<br />
== Merged into 5.14 ==<br />
*[[H616]]<br />
** PMIC - AXP305<br />
<br />
New Devices Supported<br />
* [[H616]]<br />
** [[Tanix TX6s]]<br />
** [[X96 Mate]]<br />
** [[Xunlong Orange Pi Zero2]]<br />
<br />
== Merged into 5.13 ==<br />
New Devices Supported<br />
* [[A10|A10]]<br />
** Topwise A721 Tablet<br />
<br />
== Merged into 5.12 ==<br />
*[[H616]]<br />
** Clocks<br />
** Pinctrl<br />
** MMC<br />
*[[H6]]<br />
** RSB<br />
*[[A100]]<br />
** MMC<br />
<br />
== Merged into 5.11 ==<br />
*[[H6]]<br />
** [[I2S]]<br />
* multiple SoCs<br />
** [[Cedrus]] VP8 decoding<br />
<br />
New Devices Supported<br />
*[[H3]]<br />
** [[FriendlyArm NanoPi R1]]<br />
** [[FriendlyArm ZeroPi]]<br />
*[[S3]]<br />
** [[Elimo Impetus]]<br />
** [[Elimo Initium]]<br />
<br />
== Merged into 5.10 (LTS) ==<br />
*[[A100]]<br />
** Clocks<br />
** Pinctrl<br />
** [[I2C]]<br />
** Thermal (THS)<br />
<br />
*[[R40]]<br />
** DMA<br />
** GPU [[Mali]]<br />
** [[IR]]<br />
** [[SRAM Controller|SRAM]]<br />
** [[Video_Engine]] | [[Sunxi-Cedrus]]<br />
<br />
*[[V3s]]<br />
** Crypto<br />
** Ethernet<br />
** SimpleFB<br />
** [[SRAM Controller|SRAM]]<br />
<br />
* sun8i-ce/sun8i-ss<br />
** support for PRNG<br />
** support for hashs<br />
** support for TRNG ([[H6]] only)<br />
<br />
New Devices Supported<br />
*[[A100]]<br />
** [[Perf1 board]]<br />
*[[S3l]]<br />
** [[PineCube]]<br />
<br />
== Merged into 5.9 ==<br />
* [[H5]]<br />
** DVFS<br />
<br />
New Devices Supported<br />
* A64<br />
** PinePhone v1.2<br />
<br />
== Merged into 5.8 ==<br />
* [[H6]]<br />
** DVFS<br />
** IOMMU<br />
<br />
* [[A64]] / [[A83T]] / [[H3]] / [[H5]] / [[H6]]<br />
** Message Box<br />
<br />
New Devices Supported<br />
* A20<br />
** [[Olimex_A20-OLinuXino-Lime|OLinuXino Lime (A20)]] eMMC<br />
<br />
== Merged into 5.7 ==<br />
*[[A20]]<br />
** LVDS<br />
<br />
*[[A83T]] and [[A64]]<br />
** Rotate driver<br />
<br />
*[[H6]]<br />
** [[SPIdev|SPI]]<br />
<br />
*[[R40]]<br />
** Thermal<br />
<br />
New Devices Supported<br />
*[[A13]]<br />
** [[PocketBook Touch Lux 3]]<br />
*[[A64]]<br />
** [[PineTab]]<br />
** [[PinePhone]] v1.0 & v1.1<br />
*[[A20]]<br />
** Linutronix Testbox v2<br />
<br />
== Merged into 5.6 ==<br />
* [[A10]]<br />
** CSI (BT656 and Parallel)<br />
<br />
*[[A64]]<br />
** MIPI DSI<br />
** DVFS<br />
<br />
*[[A64]] / [[A83T]] / [[H3]] / [[H5]] / [[H6]]<br />
** Thermal<br />
<br />
*[[H6]]<br />
** PWM<br />
<br />
*[[H3]] / [[H5]] / [[H6]] / [[R40]]<br />
**PMU<br />
<br />
*[[R40]]<br />
** CSI (BT656 and Parallel)<br />
** [[SPIdev|SPI]]<br />
<br />
New Devices Supported<br />
* [[H5]]<br />
** ALL-H3-IT H5 board<br />
** ALL-H5-CC H5 board<br />
* [[H6]]<br />
** [[PineH64]] Model B<br />
<br />
== Merged into 5.5 ==<br />
*[[H3]]<br />
** Deinterlace driver<br />
<br />
*[[H6]]<br />
**Crypto<br />
**GPU(3D) Mali<br />
**USB3 PHY (for boards not needing vbus switching)<br />
<br />
*[[A64]] / [[A80]] / [[A83T]] / [[H3]] / [[H5]] / [[R40]] <br />
**Crypto<br />
<br />
* multiple SoCs<br />
** [[Cedrus]] HEVC/H.265<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** Emlid Neutis<br />
<br />
New Devices Supported<br />
* [[H3]]<br />
** [[FriendlyARM_NanoPi_Duo2]]<br />
<br />
== Merged into 5.4 (LTS)==<br />
* [[A20]]<br />
** CSI (BT656 and Parallel)<br />
* [[A64]]<br />
** IR<br />
* [[H6]]<br />
** IR<br />
** RTC<br />
** SPDIF<br />
New Devices Supported<br />
* [[A64]]<br />
** [[Olimex A64-OLinuXino]] eMMC<br />
* [[H6]]<br />
** [[Tanix TX6]]<br />
* [[S3]]<br />
** [[Lichee Zero Plus]]<br />
<br />
== Merged into 5.3 ==<br />
* [[A64]]<br />
** LRADC<br />
** RGB LCD<br />
* [[A83T]]<br />
** CSI (BT656 and Parallel)<br />
* [[H6]]<br />
** DMA<br />
** Watchdog<br />
* multiple SoCs<br />
** [[Cedrus]] h264<br />
<br />
== Merged into 5.2 ==<br />
* [[A83T]]<br />
** LRADC<br />
** USB OTG<br />
<br />
* [[H6]]<br />
** [[Cedrus]]<br />
<br />
* multiple SoCs<br />
** [[Mali Open Source Driver|Lima]]<br />
** [[Mali Open Source Driver|Panfrost]]<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** Banana-Pi-M2-Zero<br />
<br />
New Devices Supported<br />
* [[H6]]<br />
** [[Beelink GS1]]<br />
** [[Xunlong Orange Pi 3]]<br />
<br />
== Merged into 5.1 ==<br />
* A10<br />
** Cedrus<br />
** PMU<br />
<br />
* A20<br />
** Audio Codec improvements<br />
<br />
* A23<br />
** Display pipeline<br />
** LCD enabled on Q8 A23 tablets<br />
<br />
* A64<br />
** [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c950ca8c35eeb32224a63adc47e12f9e226da241 ARM Architectural Timer errata workaround]<br />
** PMU<br />
** CSI (BT656 and Parallel)<br />
<br />
* A80<br />
** GMAC support<br />
<br />
* CSI in general<br />
** RGR565 support<br />
** JPEG pass-through support<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** [[Banana Pi M2+]]<br />
** [[Banana Pi M2 Ultra]]<br />
<br />
* [[LCD]] enabled on [[A13]] [[Q8]] tablets<br />
<br />
== Merged into 5.0 ==<br />
* A64<br />
** Cedrus<br />
** DTS changes for audio codec<br />
<br />
* F1C100s<br />
** initial F1C100s support<br />
<br />
* H6<br />
** Ethernet<br />
** DE3/HDMI support<br />
** USB 2.0<br />
<br />
* H3 / H5<br />
** CSI (BT656 and Parallel) Support<br />
<br />
* H5<br />
** Cedrus<br />
<br />
* R40<br />
** RTC<br />
<br />
* T3<br />
** initial T3 support<ref>https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b7badd1d7aa61087010803affa19bb83fb5a0af1</ref><br />
<br />
* V3s<br />
** CSI (BT656 and Parallel) Support<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** [[Sinovoip Banana Pi M2 Magic | Banana Pi M2 Magic]]<br />
** [[Banana Pi M3]]<br />
** [[Banana Pi M64]]<br />
** [[Cubietruck]]<br />
** [[Cubietech_Cubietruck_Plus|Cubietruck Plus]]<br />
<br />
New Devices Supported<br />
* [[Xunlong Orange Pi Lite 2]]<br />
* Mapleboard MP130<br />
* LicheePi Nano<br />
* Emlid Neutis N5<br />
<br />
== Merged into 4.20 ==<br />
<br />
* A13 / A20 / A33 / H3<br />
** Cedrus driver<br />
<br />
* A83T<br />
** IR receiver<br />
<br />
* A64<br />
** Cleanup for device tree files<br />
** HDMI support<br />
** Audio codec support (DTS changes will be merged in 5.0)<br />
<br />
* H3 / H5<br />
** SID<br />
<br />
* R40<br />
** SATA<br />
<br />
New Devices Supported<br />
* [[Pine64]] LTS<br />
* [[Xunlong Orange Pi One Plus]]<br />
* [[Xunlong Orange Pi Zero Plus 2]] (H3 variant)<br />
* [[Sinovoip Banana Pi M2+]] (H5 variant)<br />
<br />
== Merged into 4.19 (LTS)==<br />
<br />
* A10 / A13 / A20 / A23 / A33<br />
** SRAM controller / system control<br />
<br />
* A64<br />
** SRAM controller / system control<br />
** Display clocks and bus<br />
** RTC clock output<br />
** PWM<br />
** R_I2C<br />
<br />
* H3<br />
** SRAM controller / system control<br />
<br />
* H6<br />
** MMC<br />
** PMIC<br />
<br />
* R40<br />
** HDMI support<br />
<br />
Board Changes<br />
* SPI flash node for [[Orange Pi PC 2]] and [[Pine64#Variants | Pine64 SoPINE]]<br />
* Use lid switch as wake-up source for A64 based laptops<br />
* LEDs added for [[PineH64]]<br />
<br />
New Devices<br />
* [[Pine Pinebook]]<br />
* Amarula A64-Relic<br />
<br />
== Changes merged up to 4.18 ==<br />
Changes up to 4.18 can be found on [[Linux mainlining history]] page.<br />
<br />
=References=<br />
<references /><br />
<br />
= See also =<br />
* [[Mainline Kernel Howto]]<br />
* [[Possible setups for hacking on mainline]]<br />
* [[Linux Kernel]]<br />
**[[Toolchain]]<br />
<br />
=External Links=<br />
* [http://www.kernel.org kernel.org] - Official website for the Linux Kernel<br />
** [http://github.com/torvalds/linux http://github.com/torvalds/linux] - Linus Torvalds' GitHub account with the upstream Linux kernel<br />
* [http://www.kernel.org/doc/ Linux Kernel documentation index]<br />
* [http://www.kernel.org/doc/man-pages/ Linux Kernel man pages]<br />
* [http://kernelnewbies.org/ Kernel Newbies Site - Excellent source of information for people new to kernel]<br />
* [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=summary Linus' kernel tree for 2.6]<br />
* [https://bugzilla.kernel.org/ Kernel bugzilla] - [https://bugzilla.kernel.org/show_bug.cgi?id=15790 Regressions for each of recent versions]<br />
* [http://www.fsfla.org/svnwiki/selibre/linux-libre/ Linux-libre project - Maintains and distributes fully free kernel]<br />
* [http://lingrok.org/ LinGrok, Linux kernel source code cross-reference]<br />
* [https://elixir.bootlin.com/linux/latest/source?a=arm Bootlin LXR (Linux Cross Reference)]<br />
* [http://lists.infradead.org/pipermail/linux-arm-kernel/ linux-arm-kernel - Mailing list archive]<br />
===How to upstream===<br />
* [http://www.elinux.org/images/a/ad/Arm-soc-checklist.pdf Your new ARM SoC Linux support check-list! by Thomas Petazzoni of Bootlin]<br />
*[http://www.cnx-software.com/2014/03/04/linux-kernel-upstreaming-how-to-linaro-connect-asia-2014/ Linux Kernel Upstreaming How-To (CNXSoft - Embedded Software Development)]<br />
**[http://www.youtube.com/watch?v=dY7fikYZ42c Matt Porter's YouTube video talk on “Upstreaming 101" (LCA14-111)]<br />
***[http://www.linaro.org/documents/download/65f888c674508efcf9bd5d90398a186a530d01c4c78db Matt Porter's presentation slides for “Upstreaming 101" (LCA14-111)]<br />
**[https://www.youtube.com/watch?v=FiQ5uV_Mm5c Matt Porter's YouTube video talk on “Upstreaming 201" (LCA14-112)]<br />
***[http://www.linaro.org/documents/download/7b9920fcc89589bad9063d87d9137f08530d020b71924 Matt Porter's presentation slides for “Upstreaming 201" (LCA14-112)]<br />
*[http://www.cnx-software.com/2011/08/19/how-to-write-and-submit-a-linux-kernel-patch/ How to Write and Submit a Linux Kernel Patch (CNXSoft - Embedded Software Development)]<br />
** [http://www.youtube.com/watch?v=LLBrBBImJt4 YouTube Video- Write and Submit your first Linux kernel Patch]<br />
** [http://www.cnx-software.com/pdf/kernel-tutorial/kernel_patch_tutorial.pdf Greg Kroah-Hartman Kernel Tutorial Write and Submit your first Linux Kernel Patch]<br />
*[http://www.linaro.org/connect-lca14/resources Linaro resources page from LCA (Linaro Connect Asia) 2014]<br />
<br />
=Notes=<br />
<references group=note /><br />
<br />
[[Category:Development]]</div>
Frozeus
https://linux-sunxi.org/index.php?title=Linux_mainlining_effort&diff=23838
Linux mainlining effort
2020-12-15T09:46:20Z
<p>Frozeus: </p>
<hr />
<div>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.<br />
<br />
=Overview=<br />
The idea is to submit the code needed to run the Linux kernel on Allwinner SoCs upstream, ie. to the official Linux kernel.<br />
<br />
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.<ref>http://www.elinux.org/images/a/ad/Arm-soc-checklist.pdf</ref><ref>[http://www.cnx-software.com/2013/01/16/your-new-arm-soc-linux-support-check-list-elce-2012/ Your New ARM SoC Linux Support Check-List – ELCE 2012]</ref><br />
<br />
Where relevant, I have attempted to include who is currently working on an item, mostly separate from any particular mainlining goal.<br />
<br />
=Status=<br />
<br />
The [[Mainline_Kernel_Howto|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|Mainline U-Boot howto]].<br />
<br />
The [[:Category:Mainline_Kernel | Mainline Kernel category ]] gives an overview of currently supported devices.<br />
<br />
== Status Matrix ==<br />
<br />
The goal of this matrix is to give an easy view of work on each SoC worked on by linux-sunxi.<br />
<br />
{| class="wikitable" style="text-align: center; width: 100%;"<br />
|-<br />
! style="width: 13%; text-align: left;" colspan="2" | Model<br />
! [[F1C100s|F1C-<br>100s]]<br />
! [[A10]]<br />
! [[A10s]]<br />
! [[A13]]<br>[[R8]]<br />
! [[A20]]<br>[[T2]]<br />
! [[A23]]<br />
! [[A31]]<br />
! [[A33]]<br>[[R16]]<br />
! [[A64]]<br />
! [[A80]]<br />
! [[A83T]]<br />
! [[A100]]<br />
! [[GR8]]<br />
! [[H3]]<br />
! [[H5]]<br />
! [[H6]]<br />
! [[R40]]<br>[[T3]]<br />
! [[V3]]|[[V3s]]<br>[[S3]]|[[S3L]]<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | AC97<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[Audio Codec]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 5.0<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" rowspan="3" | ADC<br />
| style="text-align: left;" | GPADC<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| N/A<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.12<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | Thermal<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: darkgreen;" | ?<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.7<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | Touch<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.16<br />
| N/A<br />
| style="background: lightgreen;" | 4.0<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| rowspan="4" style="text-align: left;" | [[CSI|Camera]]<br />
<br />
| style="text-align: left;" | BT656<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: grey; color: white;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.0<br />
<br />
|-<br />
| style="text-align: left;" | ISP<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | MIPI CSI-2<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
<br />
|-<br />
| style="text-align: left;" | Parallel<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: grey; color: white;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.0<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Clocks<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.10<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.10<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | CPUFreq (DVFS)<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: lightgreen;" | 5.9<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[Cryptographic_Hardware_Accelerators|Crypto]]<br />
| N/A<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.10<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Display (SimpleFB)<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen" | 4.16<br />
| style="background: lightgreen" | 4.16<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.10<br />
<br />
|-<br />
| rowspan="8" style="text-align: left;" | Display<br />
([https://dri.freedesktop.org/wiki/DRM/ DRM])<br />
<br />
| style="text-align: left;" | CVBS<br />
| style="background: red;" | NO<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9 ?<br />
| style="background: lightgreen;" | 4.7<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | HDMI Audio<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | HDMI CEC<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.14<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 4.19<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | HDMI Video<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.13<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.19<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | LVDS<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.7<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | MIPI DSI<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | RGB<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.7<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" | VGA<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | DMA<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" rowspan="2" | [[Ethernet]]<br />
| style="text-align: left;" | [[Ethernet#EMAC|EMAC]]<br />
| rowspan="2"| N/A<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.11<br />
| rowspan="2"| N/A<br />
| style="background: lightgreen;" | 3.11 <br />
| rowspan="2"| N/A<br />
| N/A<br />
| rowspan="2"| N/A<br />
| style="background: lightgreen;" rowspan="2" | 4.15<br />
| style="background: lightgreen;" rowspan="2" | 5.1<br />
| style="background: lightgreen;" rowspan="2" | 4.16<br />
| style="background: grey; color: white;" | ?<br />
| rowspan="2"| N/A<br />
| style="background: lightgreen;" rowspan="2" | 4.15<br />
| style="background: lightgreen;" rowspan="2" | 4.15<br />
| style="background: lightgreen;" rowspan="2" | 5.0<br />
| style="background: lightgreen;" rowspan="2" | 4.18<br />
| style="background: lightgreen;" rowspan="2" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" | [[Ethernet#GMAC|GMAC]]<br />
<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: grey; color: white;" | ?<br />
<br />
|-<br />
| style="text-align: left;" rowspan="2" | GPU(3D)<br />
| style="text-align: left;" | [[Mali]]<br />
| N/A<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.10<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | [[PowerVR]]<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | HW Spinlocks<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[I2C]]<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.13<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | I2S<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | IOMMU<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.8<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[IR]]<br />
| style="background: red" | NO<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 3.17<br />
| N/A<br />
| style="background: lightgreen;" | 4.0<br />
| N/A<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.10<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Keypad<br />
| N/A<br />
| style="background: orange;" | WIP<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | WIP<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | LRADC<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | MsgBox<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: lightgreen;" | 5.8<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[NAND]]<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 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 [[MTD_Driver#Challenges|this page]] </ref><br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9 <ref name="mlc"/><br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9 <ref name="mlc" /><br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9 <ref name="mlc" /><br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: red;" | NO<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | PCIe<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<ref name="h6-pcie">Allwinner H6 has a quirky PCIe controller that doesn't map the PCIe address space properly to CPU,<br />
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/</ref><br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Pinctrl<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[PMU]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: grey; color: white;" | ?<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[PWM_Controller|PWM]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.12<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[RSB]]<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.4<br />
| N/A<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[RTC]]<br />
| N/A<br />
| style="background: lightgreen;" | 3.14<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.10<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SATA]]<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | SD/ [[eMMC|MMC]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | SMP<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SPDIF]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.7<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.7<br />
| N/A<br />
| style="background: lightgreen;" | 4.9<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SPIdev|SPI]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.7<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SRAM Controller|SRAM]]<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 4.19<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 5.0 <br />
| style="background: lightgreen;" | 5.1 <br />
| style="background: lightgreen;" | 5.10<br />
| style="background: lightgreen;" | 5.10<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[USB]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[USB_OTG_Controller_Register_guide#USB_OTG|USB OTG]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | USB3<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red" | NO<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.5<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[Video_Engine|VE]] | [[Sunxi-Cedrus]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.2 <br />
| style="background: lightgreen;" | 5.10<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Watchdog<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
! style="text-align: left;" colspan="2" | Model<br />
! [[F1C100s|F1C-<br>100s]]<br />
! [[A10]]<br />
! [[A10s]]<br />
! [[A13]]<br />
[[R8]]<br />
! [[A20]]<br>[[T2]]<br />
! [[A23]]<br />
! [[A31]]<br />
! [[A33]]<br />
[[R16]]<br />
! [[A64]]<br />
! [[A80]]<br />
! [[A83T]]<br />
| [[A100]]<br />
! [[GR8]]<br />
! [[H3]]<br />
! [[H5]]<br />
! [[H6]]<br />
! [[R40]]<br />
[[T3]]<br />
! [[V3]]|[[V3s]]<br>[[S3]]|[[S3L]]<br />
<br />
|}<br />
<br />
<br />
{| class="wikitable" style="text-align: center;"<br />
|-<br />
! Legend<br />
|-<br />
| style="background: lightgreen;" | In Linux mainline since version x<br />
|-<br />
| style="background: darkgreen;" | Nobody works on it, but it should be compatible with already done drivers<br />
|-<br />
| style="background: orange;" | Somebody works on it<br />
|-<br />
| style="background: red;" | No support, nobody works on it<br />
|-<br />
| style="background: black; color: white;" | support impossible<br />
|-<br />
| style="background: grey; color: white;" | Status is unknown/to be completed<br />
|}<br />
<br />
== Work In Progress ==<br />
<br />
=== Core Stuff ===<br />
*[[V831]] / [[V833]] Clocks & Pinctrl / RTC / MMC / Watchdog / SPI - Icenowy Zheng [https://patchwork.kernel.org/project/linux-arm-kernel/cover/20201212040157.3639864-1-icenowy@aosc.io/ Support for Allwinner V831 SoC]<br />
<br />
*[[H616]] Clocks & Pinctrl Andre Przywara [https://patchwork.kernel.org/project/linux-arm-kernel/cover/20201202135409.13683-1-andre.przywara@arm.com/ arm64: sunxi: Initial Allwinner H616 SoC support]<br />
<br />
*[[AR100]] firmware (WiP: Samuel Holland) [https://github.com/crust-firmware/crust ARISC firmware for sunxi SoCs ]<br />
<br />
* [[A13]] PSCI Suspend / Resume / CPUIdle (WiP: Antoine Tenart) [http://lists.denx.de/pipermail/u-boot/2016-September/265453.html patch-v1]<br />
<br />
=== Major drivers ===<br />
* [[A100]] DMA/PMU/Watchdog/USB2/USB OTG/MMC(eMMC, SD) Frank Lee [https://patchwork.kernel.org/project/linux-arm-kernel/cover/cover.1604988979.git.frank@allwinnertech.com/ Second step support for A100]<br />
<br />
* [[A83T]]/[[V3s]] MIPI CSI-2 Paul Kocialkowski [https://patchwork.kernel.org/project/linux-arm-kernel/list/?series=369649 Allwinner MIPI CSI-2 support for A31/V3s/A83T ]<br />
<br />
* [[H6]] Hypervisor for PCIe [https://forum.armbian.com/topic/13529-a-try-on-utilizing-h6-pcie-with-virtualization/ A try on utilizing H6 PCIe with "Virtualization"]<br />
<br />
* [[A64]] / [[H3]] / [[H5]] / [[H6]] HDMI Audio - Clément Péron / Marcus Cooper / Jernej Škrabec [https://patchwork.kernel.org/cover/11510511/ Add Allwinner H3/H5/A64 HDMI audio]<br />
<br />
* [[R40]] MIPI-DSI WIP Jagan Teki [https://patchwork.kernel.org/cover/11314031/ drm/sun4i: Allwinner R40 MIPI-DSI support v3] <br />
<br />
* [[AC100]] Audio codec WiP Ondrej Jirman [https://megous.com/git/linux/commit/?h=orange-pi-5.5&id=170d38d650f67657600d4e0e868e0e7110b89ee1 digital part] [https://megous.com/git/linux/commit/?h=orange-pi-5.5&id=ee424255a6fb9280ac27c1953019b768ca973ca7 analog part]<br />
<br />
* [[F1C100s]] USB WIP George Hilliard [https://lore.kernel.org/patchwork/cover/1206936/ Support the Allwinner F1C100s USB stack]<br />
<br />
* [[V3s]] SRAM & Video Decoding Engine (Cedrus) WiP Martin Cerveny [https://patchwork.kernel.org/project/linux-arm-kernel/list/?series=347787 Enable video decoder] ([https://github.com/mcerveny/linux/commits/v3s_videocodec_v4 testing with attached LCD])<br />
<br />
=== Minor drivers ===<br />
<!-- Please move the newest entry to the top --><br />
* [[H6]] RSB Samuel Holland [https://patchwork.kernel.org/project/linux-arm-kernel/cover/20201213235506.25201-1-samuel@sholland.org/ Allwinner H6 RSB support]<br />
* [[A100]] CPUFreq (DVFS) Shuosheng Huang [https://patchwork.kernel.org/project/linux-arm-kernel/list/?series=396055&archive=both&state=* cpufreq: sun50i: add a100 cpufreq support]<br />
* [[A64]] hwspinlock WIP Nikolay Borisov [https://patchwork.kernel.org/cover/11373645/ Add support for hwspinlock on A64 SoC] <br />
* [[A83T]] / [[A64]] / [[H3]] hwspinlock WIP Corentin Labbe (montjoie) [https://lore.kernel.org/patchwork/patch/706512/ RFC,1/3][https://lore.kernel.org/patchwork/patch/706511/ RFC,2/3][https://lore.kernel.org/patchwork/patch/706513/ RFC,3/3]<br />
* [[A10]] / [[A20]] / [[A31]] HDMI Audio WIP Stefan Mavrodiev [https://lore.kernel.org/patchwork/cover/1177803/ Add support for sun4i HDMI audio]<br />
* [[A80]] Thermal sensor WIP Philipp Rossak (embed-3d): https://github.com/embed-3d/linux/branches/all<br />
* [[R40]] PWM (WIP Hao Zhang [https://www.spinics.net/lists/kernel/msg2731498.html patch-v2])<br />
* [[A31]]/[[A31s]] PWM support (WiP: Siarhei Volkau [http://lists.infradead.org/pipermail/linux-arm-kernel/2017-February/486405.html patch-v1])<br />
* [[A20]] Keypad (WiP: Yassin Jaffer (ddc) [http://lists.infradead.org/pipermail/linux-arm-kernel/2015-September/370079.html patch])<br />
<br />
=== Drivers that can still be improved/added ===<br />
<br />
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.<br />
<br />
* sunxi-musb driver lacks DMA support (with current driver, USB gadgets are limited to PIO, limiting speed to 10MiB/s and causing large CPU)<br />
* DE2 driver has buggy layer support, see [https://patchwork.kernel.org/patch/11145803/]<br />
* DE1/DE2/DE3 writeback support<br />
* A64 audiocodec driver components (sun8i-codec and sun50i-codec-analog) lack support for jack detection<br />
<br />
== Planned for 5.11 ==<br />
*[[H6]]<br />
** [[I2S]]<br />
<br />
New Devices Supported<br />
*[[H3]]<br />
** [[FriendlyArm NanoPi R1]]<br />
** [[FriendlyArm ZeroPi]]<br />
*[[S3]]<br />
** [[Elimo Impetus]]<br />
** [[Elimo Initium]]<br />
<br />
== Planned for 5.10 ==<br />
*[[A100]]<br />
** Clocks<br />
** Pinctrl<br />
** [[I2C]]<br />
** Thermal (THS)<br />
<br />
*[[R40]]<br />
** DMA<br />
** GPU [[Mali]]<br />
** [[IR]]<br />
** [[SRAM Controller|SRAM]]<br />
** [[Video_Engine]] | [[Sunxi-Cedrus]]<br />
<br />
*[[V3s]]<br />
** Crypto<br />
** Ethernet<br />
** SimpleFB<br />
** [[SRAM Controller|SRAM]]<br />
<br />
New Devices Supported<br />
*[[A100]]<br />
** [[Perf1 board]]<br />
*[[S3l]]<br />
** [[PineCube]]<br />
<br />
== Merged into 5.9 ==<br />
* [[H5]]<br />
** DVFS<br />
<br />
== Merged into 5.8 ==<br />
* [[H6]]<br />
** DVFS<br />
** IOMMU<br />
<br />
* [[A64]] / [[A83T]] / [[H3]] / [[H5]] / [[H6]]<br />
** Message Box<br />
<br />
== Merged into 5.7 ==<br />
*[[A20]]<br />
** LVDS<br />
<br />
*[[A83T]] and [[A64]]<br />
** Rotate driver<br />
<br />
*[[H6]]<br />
** [[SPIdev|SPI]]<br />
<br />
*[[R40]]<br />
** Thermal<br />
<br />
New Devices Supported<br />
*[[A13]]<br />
** [[PocketBook Touch Lux 3]]<br />
*[[A64]]<br />
** [[PineTab]]<br />
** [[PinePhone]]<br />
*[[A20]]<br />
** Linutronix Testbox v2<br />
<br />
== Merged into 5.6 ==<br />
* [[A10]]<br />
** CSI (BT656 and Parallel)<br />
<br />
*[[A64]]<br />
** MIPI DSI<br />
** DVFS<br />
<br />
*[[A64]] / [[A83T]] / [[H3]] / [[H5]] / [[H6]]<br />
** Thermal<br />
<br />
*[[H6]]<br />
** PWM<br />
<br />
*[[H3]] / [[H5]] / [[H6]] / [[R40]]<br />
**PMU<br />
<br />
*[[R40]]<br />
** CSI (BT656 and Parallel)<br />
** [[SPIdev|SPI]]<br />
<br />
New Devices Supported<br />
* [[H5]]<br />
** ALL-H3-IT H5 board<br />
** ALL-H5-CC H5 board<br />
* [[H6]]<br />
** [[PineH64]] Model A<br />
<br />
== Merged into 5.5 ==<br />
*[[H3]]<br />
** Deinterlace driver<br />
<br />
*[[H6]]<br />
**Crypto<br />
**GPU(3D) Mali<br />
**USB3 PHY (for boards not needing vbus switching)<br />
<br />
*[[A64]] / [[A80]] / [[A83T]] / [[H3]] / [[H5]] / [[R40]] <br />
**Crypto<br />
<br />
* multiple SoCs<br />
** [[Cedrus]] HEVC/H.265<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** Emlid Neutis<br />
<br />
New Devices Supported<br />
* [[H3]]<br />
** [[FriendlyARM_NanoPi_Duo2]]<br />
<br />
== Merged into 5.4 (LTS)==<br />
* [[A20]]<br />
** CSI (BT656 and Parallel)<br />
* [[A64]]<br />
** IR<br />
* [[H6]]<br />
** IR<br />
** RTC<br />
** SPDIF<br />
New Devices Supported<br />
* [[A64]]<br />
** [[Olimex A64-OLinuXino]] eMMC<br />
* [[H6]]<br />
** [[Tanix TX6]]<br />
* [[S3]]<br />
** [[Lichee Zero Plus]]<br />
<br />
== Merged into 5.3 ==<br />
* [[A64]]<br />
** LRADC<br />
** RGB LCD<br />
* [[A83T]]<br />
** CSI (BT656 and Parallel)<br />
* [[H6]]<br />
** DMA<br />
** Watchdog<br />
* multiple SoCs<br />
** [[Cedrus]] h264<br />
<br />
== Merged into 5.2 ==<br />
* [[A83T]]<br />
** LRADC<br />
** USB OTG<br />
<br />
* [[H6]]<br />
** [[Cedrus]]<br />
<br />
* multiple SoCs<br />
** [[Mali Open Source Driver|Lima]]<br />
** [[Mali Open Source Driver|Panfrost]]<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** Banana-Pi-M2-Zero<br />
<br />
New Devices Supported<br />
* [[H6]]<br />
** [[Beelink GS1]]<br />
** [[Xunlong Orange Pi 3]]<br />
<br />
== Merged into 5.1 ==<br />
* A10<br />
** Cedrus<br />
** PMU<br />
<br />
* A20<br />
** Audio Codec improvements<br />
<br />
* A23<br />
** Display pipeline<br />
** LCD enabled on Q8 A23 tablets<br />
<br />
* A64<br />
** [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c950ca8c35eeb32224a63adc47e12f9e226da241 ARM Architectural Timer errata workaround]<br />
** PMU<br />
** CSI (BT656 and Parallel)<br />
<br />
* A80<br />
** GMAC support<br />
<br />
* CSI in general<br />
** RGR565 support<br />
** JPEG pass-through support<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** [[Banana Pi M2+]]<br />
** [[Banana Pi M2 Ultra]]<br />
<br />
* [[LCD]] enabled on [[A13]] [[Q8]] tablets<br />
<br />
== Merged into 5.0 ==<br />
* A64<br />
** Cedrus<br />
** DTS changes for audio codec<br />
<br />
* F1C100s<br />
** initial F1C100s support<br />
<br />
* H6<br />
** Ethernet<br />
** DE3/HDMI support<br />
** USB 2.0<br />
<br />
* H3 / H5<br />
** CSI (BT656 and Parallel) Support<br />
<br />
* H5<br />
** Cedrus<br />
<br />
* R40<br />
** RTC<br />
<br />
* T3<br />
** initial T3 support<ref>https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b7badd1d7aa61087010803affa19bb83fb5a0af1</ref><br />
<br />
* V3s<br />
** CSI (BT656 and Parallel) Support<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** [[Sinovoip Banana Pi M2 Magic | Banana Pi M2 Magic]]<br />
** [[Banana Pi M3]]<br />
** [[Banana Pi M64]]<br />
** [[Cubietruck]]<br />
** [[Cubietech_Cubietruck_Plus|Cubietruck Plus]]<br />
<br />
New Devices Supported<br />
* [[Xunlong Orange Pi Lite 2]]<br />
<br />
== Merged into 4.20 ==<br />
<br />
* A13 / A20 / A33 / H3<br />
** Cedrus driver<br />
<br />
* A83T<br />
** IR receiver<br />
<br />
* A64<br />
** Cleanup for device tree files<br />
** HDMI support<br />
** Audio codec support (DTS changes will be merged in 5.0)<br />
<br />
* H3 / H5<br />
** SID<br />
<br />
* R40<br />
** SATA<br />
<br />
New Devices Supported<br />
* [[Pine64]] LTS<br />
* [[Xunlong Orange Pi One Plus]]<br />
* [[Xunlong Orange Pi Zero Plus 2]] (H3 variant)<br />
* [[Sinovoip Banana Pi M2+]] (H5 variant)<br />
<br />
== Merged into 4.19 (LTS)==<br />
<br />
* A10 / A13 / A20 / A23 / A33<br />
** SRAM controller / system control<br />
<br />
* A64<br />
** SRAM controller / system control<br />
** Display clocks and bus<br />
** RTC clock output<br />
** PWM<br />
** R_I2C<br />
<br />
* H3<br />
** SRAM controller / system control<br />
<br />
* H6<br />
** MMC<br />
** PMIC<br />
<br />
* R40<br />
** HDMI support<br />
<br />
Board Changes<br />
* SPI flash node for [[Orange Pi PC 2]] and [[Pine64#Variants | Pine64 SoPINE]]<br />
* Use lid switch as wake-up source for A64 based laptops<br />
* LEDs added for [[PineH64]]<br />
<br />
New Devices<br />
* [[Pine Pinebook]]<br />
* Amarula A64-Relic<br />
<br />
== Changes merged up to 4.18 ==<br />
Changes up to 4.18 can be found on [[Linux mainlining history]] page.<br />
<br />
=References=<br />
<references /><br />
<br />
= See also =<br />
* [[Mainline Kernel Howto]]<br />
* [[Possible setups for hacking on mainline]]<br />
* [[Linux Kernel]]<br />
**[[Toolchain]]<br />
<br />
=External Links=<br />
* [http://www.kernel.org kernel.org] - Official website for the Linux Kernel<br />
** [http://github.com/torvalds/linux http://github.com/torvalds/linux] - Linus Torvalds' GitHub account with the upstream Linux kernel<br />
* [http://www.kernel.org/doc/ Linux Kernel documentation index]<br />
* [http://www.kernel.org/doc/man-pages/ Linux Kernel man pages]<br />
* [http://kernelnewbies.org/ Kernel Newbies Site - Excellent source of information for people new to kernel]<br />
* [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=summary Linus' kernel tree for 2.6]<br />
* [https://bugzilla.kernel.org/ Kernel bugzilla] - [https://bugzilla.kernel.org/show_bug.cgi?id=15790 Regressions for each of recent versions]<br />
* [http://www.fsfla.org/svnwiki/selibre/linux-libre/ Linux-libre project - Maintains and distributes fully free kernel]<br />
* [http://lingrok.org/ LinGrok, Linux kernel source code cross-reference]<br />
* [https://elixir.bootlin.com/linux/latest/source?a=arm Bootlin LXR (Linux Cross Reference)]<br />
* [http://lists.infradead.org/pipermail/linux-arm-kernel/ linux-arm-kernel - Mailing list archive]<br />
===How to upstream===<br />
* [http://www.elinux.org/images/a/ad/Arm-soc-checklist.pdf Your new ARM SoC Linux support check-list! by Thomas Petazzoni of Bootlin]<br />
*[http://www.cnx-software.com/2014/03/04/linux-kernel-upstreaming-how-to-linaro-connect-asia-2014/ Linux Kernel Upstreaming How-To (CNXSoft - Embedded Software Development)]<br />
**[http://www.youtube.com/watch?v=dY7fikYZ42c Matt Porter's YouTube video talk on “Upstreaming 101" (LCA14-111)]<br />
***[http://www.linaro.org/documents/download/65f888c674508efcf9bd5d90398a186a530d01c4c78db Matt Porter's presentation slides for “Upstreaming 101" (LCA14-111)]<br />
**[https://www.youtube.com/watch?v=FiQ5uV_Mm5c Matt Porter's YouTube video talk on “Upstreaming 201" (LCA14-112)]<br />
***[http://www.linaro.org/documents/download/7b9920fcc89589bad9063d87d9137f08530d020b71924 Matt Porter's presentation slides for “Upstreaming 201" (LCA14-112)]<br />
*[http://www.cnx-software.com/2011/08/19/how-to-write-and-submit-a-linux-kernel-patch/ How to Write and Submit a Linux Kernel Patch (CNXSoft - Embedded Software Development)]<br />
** [http://www.youtube.com/watch?v=LLBrBBImJt4 YouTube Video- Write and Submit your first Linux kernel Patch]<br />
** [http://www.cnx-software.com/pdf/kernel-tutorial/kernel_patch_tutorial.pdf Greg Kroah-Hartman Kernel Tutorial Write and Submit your first Linux Kernel Patch]<br />
*[http://www.linaro.org/connect-lca14/resources Linaro resources page from LCA (Linaro Connect Asia) 2014]<br />
<br />
=Notes=<br />
<references group=note /><br />
<br />
[[Category:Development]]</div>
Frozeus
https://linux-sunxi.org/index.php?title=Linux_mainlining_effort&diff=23837
Linux mainlining effort
2020-12-15T09:43:46Z
<p>Frozeus: /* Planned for 5.11 */</p>
<hr />
<div>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.<br />
<br />
=Overview=<br />
The idea is to submit the code needed to run the Linux kernel on Allwinner SoCs upstream, ie. to the official Linux kernel.<br />
<br />
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.<ref>http://www.elinux.org/images/a/ad/Arm-soc-checklist.pdf</ref><ref>[http://www.cnx-software.com/2013/01/16/your-new-arm-soc-linux-support-check-list-elce-2012/ Your New ARM SoC Linux Support Check-List – ELCE 2012]</ref><br />
<br />
Where relevant, I have attempted to include who is currently working on an item, mostly separate from any particular mainlining goal.<br />
<br />
=Status=<br />
<br />
The [[Mainline_Kernel_Howto|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|Mainline U-Boot howto]].<br />
<br />
The [[:Category:Mainline_Kernel | Mainline Kernel category ]] gives an overview of currently supported devices.<br />
<br />
== Status Matrix ==<br />
<br />
The goal of this matrix is to give an easy view of work on each SoC worked on by linux-sunxi.<br />
<br />
{| class="wikitable" style="text-align: center; width: 100%;"<br />
|-<br />
! style="width: 13%; text-align: left;" colspan="2" | Model<br />
! [[F1C100s|F1C-<br>100s]]<br />
! [[A10]]<br />
! [[A10s]]<br />
! [[A13]]<br>[[R8]]<br />
! [[A20]]<br>[[T2]]<br />
! [[A23]]<br />
! [[A31]]<br />
! [[A33]]<br>[[R16]]<br />
! [[A64]]<br />
! [[A80]]<br />
! [[A83T]]<br />
! [[A100]]<br />
! [[GR8]]<br />
! [[H3]]<br />
! [[H5]]<br />
! [[H6]]<br />
! [[R40]]<br>[[T3]]<br />
! [[V3]]|[[V3s]]<br>[[S3]]|[[S3L]]<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | AC97<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[Audio Codec]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 5.0<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" rowspan="3" | ADC<br />
| style="text-align: left;" | GPADC<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| N/A<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.12<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | Thermal<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: darkgreen;" | ?<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.7<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | Touch<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.16<br />
| N/A<br />
| style="background: lightgreen;" | 4.0<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| rowspan="4" style="text-align: left;" | [[CSI|Camera]]<br />
<br />
| style="text-align: left;" | BT656<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: grey; color: white;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.0<br />
<br />
|-<br />
| style="text-align: left;" | ISP<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | MIPI CSI-2<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
<br />
|-<br />
| style="text-align: left;" | Parallel<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: grey; color: white;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.0<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Clocks<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.10<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.10<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | CPUFreq (DVFS)<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: lightgreen;" | 5.9<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[Cryptographic_Hardware_Accelerators|Crypto]]<br />
| N/A<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.10<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Display (SimpleFB)<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen" | 4.16<br />
| style="background: lightgreen" | 4.16<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.10<br />
<br />
|-<br />
| rowspan="8" style="text-align: left;" | Display<br />
([https://dri.freedesktop.org/wiki/DRM/ DRM])<br />
<br />
| style="text-align: left;" | CVBS<br />
| style="background: red;" | NO<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9 ?<br />
| style="background: lightgreen;" | 4.7<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | HDMI Audio<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | HDMI CEC<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.14<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 4.19<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | HDMI Video<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.13<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.19<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | LVDS<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.7<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | MIPI DSI<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | RGB<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.7<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" | VGA<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | DMA<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" rowspan="2" | [[Ethernet]]<br />
| style="text-align: left;" | [[Ethernet#EMAC|EMAC]]<br />
| rowspan="2"| N/A<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.11<br />
| rowspan="2"| N/A<br />
| style="background: lightgreen;" | 3.11 <br />
| rowspan="2"| N/A<br />
| N/A<br />
| rowspan="2"| N/A<br />
| style="background: lightgreen;" rowspan="2" | 4.15<br />
| style="background: lightgreen;" rowspan="2" | 5.1<br />
| style="background: lightgreen;" rowspan="2" | 4.16<br />
| style="background: grey; color: white;" | ?<br />
| rowspan="2"| N/A<br />
| style="background: lightgreen;" rowspan="2" | 4.15<br />
| style="background: lightgreen;" rowspan="2" | 4.15<br />
| style="background: lightgreen;" rowspan="2" | 5.0<br />
| style="background: lightgreen;" rowspan="2" | 4.18<br />
| style="background: lightgreen;" rowspan="2" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" | [[Ethernet#GMAC|GMAC]]<br />
<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: grey; color: white;" | ?<br />
<br />
|-<br />
| style="text-align: left;" rowspan="2" | GPU(3D)<br />
| style="text-align: left;" | [[Mali]]<br />
| N/A<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.10<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | [[PowerVR]]<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | HW Spinlocks<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[I2C]]<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.13<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | I2S<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | IOMMU<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.8<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[IR]]<br />
| style="background: red" | NO<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 3.17<br />
| N/A<br />
| style="background: lightgreen;" | 4.0<br />
| N/A<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.10<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Keypad<br />
| N/A<br />
| style="background: orange;" | WIP<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | WIP<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | LRADC<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | MsgBox<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: lightgreen;" | 5.8<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[NAND]]<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 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 [[MTD_Driver#Challenges|this page]] </ref><br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9 <ref name="mlc"/><br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9 <ref name="mlc" /><br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9 <ref name="mlc" /><br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: red;" | NO<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | PCIe<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<ref name="h6-pcie">Allwinner H6 has a quirky PCIe controller that doesn't map the PCIe address space properly to CPU,<br />
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/</ref><br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Pinctrl<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[PMU]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: grey; color: white;" | ?<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[PWM_Controller|PWM]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.12<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[RSB]]<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.4<br />
| N/A<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[RTC]]<br />
| N/A<br />
| style="background: lightgreen;" | 3.14<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.10<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SATA]]<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | SD/ [[eMMC|MMC]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | SMP<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SPDIF]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.7<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.7<br />
| N/A<br />
| style="background: lightgreen;" | 4.9<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SPIdev|SPI]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.7<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SRAM Controller|SRAM]]<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 4.19<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 5.0 <br />
| style="background: lightgreen;" | 5.1 <br />
| style="background: lightgreen;" | 5.10<br />
| style="background: lightgreen;" | 5.10<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[USB]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[USB_OTG_Controller_Register_guide#USB_OTG|USB OTG]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | USB3<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red" | NO<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.5<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[Video_Engine|VE]] | [[Sunxi-Cedrus]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.2 <br />
| style="background: lightgreen;" | 5.10<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Watchdog<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
! style="text-align: left;" colspan="2" | Model<br />
! [[F1C100s|F1C-<br>100s]]<br />
! [[A10]]<br />
! [[A10s]]<br />
! [[A13]]<br />
[[R8]]<br />
! [[A20]]<br>[[T2]]<br />
! [[A23]]<br />
! [[A31]]<br />
! [[A33]]<br />
[[R16]]<br />
! [[A64]]<br />
! [[A80]]<br />
! [[A83T]]<br />
| [[A100]]<br />
! [[GR8]]<br />
! [[H3]]<br />
! [[H5]]<br />
! [[H6]]<br />
! [[R40]]<br />
[[T3]]<br />
! [[V3]]|[[V3s]]<br>[[S3]]|[[S3L]]<br />
<br />
|}<br />
<br />
<br />
{| class="wikitable" style="text-align: center;"<br />
|-<br />
! Legend<br />
|-<br />
| style="background: lightgreen;" | In Linux mainline since version x<br />
|-<br />
| style="background: darkgreen;" | Nobody works on it, but it should be compatible with already done drivers<br />
|-<br />
| style="background: orange;" | Somebody works on it<br />
|-<br />
| style="background: red;" | No support, nobody works on it<br />
|-<br />
| style="background: black; color: white;" | support impossible<br />
|-<br />
| style="background: grey; color: white;" | Status is unknown/to be completed<br />
|}<br />
<br />
== Work In Progress ==<br />
<br />
=== Core Stuff ===<br />
*[[V831]] / [[V833]] Clocks & Pinctrl / RTC / MMC / Watchdog / SPI - Icenowy Zheng [https://patchwork.kernel.org/project/linux-arm-kernel/cover/20201212040157.3639864-1-icenowy@aosc.io/ Support for Allwinner V831 SoC]<br />
<br />
*[[H616]] Clocks & Pinctrl Andre Przywara [https://patchwork.kernel.org/project/linux-arm-kernel/cover/20201202135409.13683-1-andre.przywara@arm.com/ arm64: sunxi: Initial Allwinner H616 SoC support]<br />
<br />
*[[AR100]] firmware (WiP: Samuel Holland) [https://github.com/crust-firmware/crust ARISC firmware for sunxi SoCs ]<br />
<br />
* [[A13]] PSCI Suspend / Resume / CPUIdle (WiP: Antoine Tenart) [http://lists.denx.de/pipermail/u-boot/2016-September/265453.html patch-v1]<br />
<br />
=== Major drivers ===<br />
* [[A100]] DMA/PMU/Watchdog/USB2/USB OTG/MMC(eMMC, SD) Frank Lee [https://patchwork.kernel.org/project/linux-arm-kernel/cover/cover.1604988979.git.frank@allwinnertech.com/ Second step support for A100]<br />
<br />
* [[A83T]]/[[V3s]] MIPI CSI-2 Paul Kocialkowski [https://patchwork.kernel.org/project/linux-arm-kernel/list/?series=369649 Allwinner MIPI CSI-2 support for A31/V3s/A83T ]<br />
<br />
* [[H6]] Hypervisor for PCIe [https://forum.armbian.com/topic/13529-a-try-on-utilizing-h6-pcie-with-virtualization/ A try on utilizing H6 PCIe with "Virtualization"]<br />
<br />
* [[A64]] / [[H3]] / [[H5]] / [[H6]] HDMI Audio - Clément Péron / Marcus Cooper / Jernej Škrabec [https://patchwork.kernel.org/cover/11510511/ Add Allwinner H3/H5/A64 HDMI audio]<br />
<br />
* [[R40]] MIPI-DSI WIP Jagan Teki [https://patchwork.kernel.org/cover/11314031/ drm/sun4i: Allwinner R40 MIPI-DSI support v3] <br />
<br />
* [[AC100]] Audio codec WiP Ondrej Jirman [https://megous.com/git/linux/commit/?h=orange-pi-5.5&id=170d38d650f67657600d4e0e868e0e7110b89ee1 digital part] [https://megous.com/git/linux/commit/?h=orange-pi-5.5&id=ee424255a6fb9280ac27c1953019b768ca973ca7 analog part]<br />
<br />
* [[F1C100s]] USB WIP George Hilliard [https://lore.kernel.org/patchwork/cover/1206936/ Support the Allwinner F1C100s USB stack]<br />
<br />
* [[V3s]] SRAM & Video Decoding Engine (Cedrus) WiP Martin Cerveny [https://patchwork.kernel.org/project/linux-arm-kernel/list/?series=347787 Enable video decoder] ([https://github.com/mcerveny/linux/commits/v3s_videocodec_v4 testing with attached LCD])<br />
<br />
=== Minor drivers ===<br />
<!-- Please move the newest entry to the top --><br />
* [[H6]] RSB Samuel Holland [https://patchwork.kernel.org/project/linux-arm-kernel/cover/20201213235506.25201-1-samuel@sholland.org/ Allwinner H6 RSB support]<br />
* [[A100]] CPUFreq (DVFS) Shuosheng Huang [https://patchwork.kernel.org/project/linux-arm-kernel/list/?series=396055&archive=both&state=* cpufreq: sun50i: add a100 cpufreq support]<br />
* [[A64]] hwspinlock WIP Nikolay Borisov [https://patchwork.kernel.org/cover/11373645/ Add support for hwspinlock on A64 SoC] <br />
* [[A83T]] / [[A64]] / [[H3]] hwspinlock WIP Corentin Labbe (montjoie) [https://lore.kernel.org/patchwork/patch/706512/ RFC,1/3][https://lore.kernel.org/patchwork/patch/706511/ RFC,2/3][https://lore.kernel.org/patchwork/patch/706513/ RFC,3/3]<br />
* [[A10]] / [[A20]] / [[A31]] HDMI Audio WIP Stefan Mavrodiev [https://lore.kernel.org/patchwork/cover/1177803/ Add support for sun4i HDMI audio]<br />
* [[A80]] Thermal sensor WIP Philipp Rossak (embed-3d): https://github.com/embed-3d/linux/branches/all<br />
* [[R40]] PWM (WIP Hao Zhang [https://www.spinics.net/lists/kernel/msg2731498.html patch-v2])<br />
* [[A31]]/[[A31s]] PWM support (WiP: Siarhei Volkau [http://lists.infradead.org/pipermail/linux-arm-kernel/2017-February/486405.html patch-v1])<br />
* [[A20]] Keypad (WiP: Yassin Jaffer (ddc) [http://lists.infradead.org/pipermail/linux-arm-kernel/2015-September/370079.html patch])<br />
<br />
=== Drivers that can still be improved/added ===<br />
<br />
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.<br />
<br />
* sunxi-musb driver lacks DMA support (with current driver, USB gadgets are limited to PIO, limiting speed to 10MiB/s and causing large CPU)<br />
* DE2 driver has buggy layer support, see [https://patchwork.kernel.org/patch/11145803/]<br />
* DE1/DE2/DE3 writeback support<br />
* A64 audiocodec driver components (sun8i-codec and sun50i-codec-analog) lack support for jack detection<br />
<br />
== Planned for 5.11 ==<br />
*[[H6]]<br />
** [[I2S]]<br />
<br />
New Devices Supported<br />
*[[H3]]<br />
** [[FriendlyArm NanoPi R1]]<br />
** [[FriendlyArm ZeroPi]]<br />
*[[S3]]<br />
** [[Elimo Impetus]]<br />
** [[Elimo Initium]]<br />
<br />
== Planned for 5.10 ==<br />
*[[A100]]<br />
** Clocks<br />
** Pinctrl<br />
** [[I2C]]<br />
** Thermal (THS)<br />
<br />
*[[R40]]<br />
** DMA<br />
** GPU [[Mali]]<br />
** [[IR]]<br />
** [[SRAM Controller|SRAM]]<br />
** [[Video_Engine]] | [[Sunxi-Cedrus]]<br />
<br />
*[[V3s]]<br />
** Crypto<br />
** Ethernet<br />
** SimpleFB<br />
** [[SRAM Controller|SRAM]]<br />
<br />
New Devices Supported<br />
*[[A100]]<br />
** [[Perf1 board]]<br />
*[[S3l]]<br />
** [[PineCube]]<br />
<br />
== Merged into 5.9 ==<br />
* [[H5]]<br />
** DVFS<br />
<br />
== Merged into 5.8 ==<br />
* [[H6]]<br />
** DVFS<br />
** IOMMU<br />
<br />
* [[A64]] / [[A83T]] / [[H3]] / [[H5]] / [[H6]]<br />
** Message Box<br />
<br />
== Merged into 5.7 ==<br />
*[[A20]]<br />
** LVDS<br />
<br />
*[[A83T]] and [[A64]]<br />
** Rotate driver<br />
<br />
*[[H6]]<br />
** SPI<br />
<br />
*[[R40]]<br />
** Thermal<br />
<br />
New Devices Supported<br />
*[[A13]]<br />
** [[PocketBook Touch Lux 3]]<br />
*[[A64]]<br />
** [[PineTab]]<br />
** [[PinePhone]]<br />
*[[A20]]<br />
** Linutronix Testbox v2<br />
<br />
== Merged into 5.6 ==<br />
* [[A10]]<br />
** CSI (BT656 and Parallel)<br />
<br />
*[[A64]]<br />
** MIPI DSI<br />
** DVFS<br />
<br />
*[[A64]] / [[A83T]] / [[H3]] / [[H5]] / [[H6]]<br />
** Thermal<br />
<br />
*[[H6]]<br />
** PWM<br />
<br />
*[[H3]] / [[H5]] / [[H6]] / [[R40]]<br />
**PMU<br />
<br />
*[[R40]]<br />
** CSI (BT656 and Parallel)<br />
** SPI<br />
<br />
New Devices Supported<br />
* [[H5]]<br />
** ALL-H3-IT H5 board<br />
** ALL-H5-CC H5 board<br />
* [[H6]]<br />
** [[PineH64]] Model A<br />
<br />
== Merged into 5.5 ==<br />
*[[H3]]<br />
** Deinterlace driver<br />
<br />
*[[H6]]<br />
**Crypto<br />
**GPU(3D) Mali<br />
**USB3 PHY (for boards not needing vbus switching)<br />
<br />
*[[A64]] / [[A80]] / [[A83T]] / [[H3]] / [[H5]] / [[R40]] <br />
**Crypto<br />
<br />
* multiple SoCs<br />
** [[Cedrus]] HEVC/H.265<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** Emlid Neutis<br />
<br />
New Devices Supported<br />
* [[H3]]<br />
** [[FriendlyARM_NanoPi_Duo2]]<br />
<br />
== Merged into 5.4 (LTS)==<br />
* [[A20]]<br />
** CSI (BT656 and Parallel)<br />
* [[A64]]<br />
** IR<br />
* [[H6]]<br />
** IR<br />
** RTC<br />
** SPDIF<br />
New Devices Supported<br />
* [[A64]]<br />
** [[Olimex A64-OLinuXino]] eMMC<br />
* [[H6]]<br />
** [[Tanix TX6]]<br />
* [[S3]]<br />
** [[Lichee Zero Plus]]<br />
<br />
== Merged into 5.3 ==<br />
* [[A64]]<br />
** LRADC<br />
** RGB LCD<br />
* [[A83T]]<br />
** CSI (BT656 and Parallel)<br />
* [[H6]]<br />
** DMA<br />
** Watchdog<br />
* multiple SoCs<br />
** [[Cedrus]] h264<br />
<br />
== Merged into 5.2 ==<br />
* [[A83T]]<br />
** LRADC<br />
** USB OTG<br />
<br />
* [[H6]]<br />
** [[Cedrus]]<br />
<br />
* multiple SoCs<br />
** [[Mali Open Source Driver|Lima]]<br />
** [[Mali Open Source Driver|Panfrost]]<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** Banana-Pi-M2-Zero<br />
<br />
New Devices Supported<br />
* [[H6]]<br />
** [[Beelink GS1]]<br />
** [[Xunlong Orange Pi 3]]<br />
<br />
== Merged into 5.1 ==<br />
* A10<br />
** Cedrus<br />
** PMU<br />
<br />
* A20<br />
** Audio Codec improvements<br />
<br />
* A23<br />
** Display pipeline<br />
** LCD enabled on Q8 A23 tablets<br />
<br />
* A64<br />
** [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c950ca8c35eeb32224a63adc47e12f9e226da241 ARM Architectural Timer errata workaround]<br />
** PMU<br />
** CSI (BT656 and Parallel)<br />
<br />
* A80<br />
** GMAC support<br />
<br />
* CSI in general<br />
** RGR565 support<br />
** JPEG pass-through support<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** [[Banana Pi M2+]]<br />
** [[Banana Pi M2 Ultra]]<br />
<br />
* [[LCD]] enabled on [[A13]] [[Q8]] tablets<br />
<br />
== Merged into 5.0 ==<br />
* A64<br />
** Cedrus<br />
** DTS changes for audio codec<br />
<br />
* F1C100s<br />
** initial F1C100s support<br />
<br />
* H6<br />
** Ethernet<br />
** DE3/HDMI support<br />
** USB 2.0<br />
<br />
* H3 / H5<br />
** CSI (BT656 and Parallel) Support<br />
<br />
* H5<br />
** Cedrus<br />
<br />
* R40<br />
** RTC<br />
<br />
* T3<br />
** initial T3 support<ref>https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b7badd1d7aa61087010803affa19bb83fb5a0af1</ref><br />
<br />
* V3s<br />
** CSI (BT656 and Parallel) Support<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** [[Sinovoip Banana Pi M2 Magic | Banana Pi M2 Magic]]<br />
** [[Banana Pi M3]]<br />
** [[Banana Pi M64]]<br />
** [[Cubietruck]]<br />
** [[Cubietech_Cubietruck_Plus|Cubietruck Plus]]<br />
<br />
New Devices Supported<br />
* [[Xunlong Orange Pi Lite 2]]<br />
<br />
== Merged into 4.20 ==<br />
<br />
* A13 / A20 / A33 / H3<br />
** Cedrus driver<br />
<br />
* A83T<br />
** IR receiver<br />
<br />
* A64<br />
** Cleanup for device tree files<br />
** HDMI support<br />
** Audio codec support (DTS changes will be merged in 5.0)<br />
<br />
* H3 / H5<br />
** SID<br />
<br />
* R40<br />
** SATA<br />
<br />
New Devices Supported<br />
* [[Pine64]] LTS<br />
* [[Xunlong Orange Pi One Plus]]<br />
* [[Xunlong Orange Pi Zero Plus 2]] (H3 variant)<br />
* [[Sinovoip Banana Pi M2+]] (H5 variant)<br />
<br />
== Merged into 4.19 (LTS)==<br />
<br />
* A10 / A13 / A20 / A23 / A33<br />
** SRAM controller / system control<br />
<br />
* A64<br />
** SRAM controller / system control<br />
** Display clocks and bus<br />
** RTC clock output<br />
** PWM<br />
** R_I2C<br />
<br />
* H3<br />
** SRAM controller / system control<br />
<br />
* H6<br />
** MMC<br />
** PMIC<br />
<br />
* R40<br />
** HDMI support<br />
<br />
Board Changes<br />
* SPI flash node for [[Orange Pi PC 2]] and [[Pine64#Variants | Pine64 SoPINE]]<br />
* Use lid switch as wake-up source for A64 based laptops<br />
* LEDs added for [[PineH64]]<br />
<br />
New Devices<br />
* [[Pine Pinebook]]<br />
* Amarula A64-Relic<br />
<br />
== Changes merged up to 4.18 ==<br />
Changes up to 4.18 can be found on [[Linux mainlining history]] page.<br />
<br />
=References=<br />
<references /><br />
<br />
= See also =<br />
* [[Mainline Kernel Howto]]<br />
* [[Possible setups for hacking on mainline]]<br />
* [[Linux Kernel]]<br />
**[[Toolchain]]<br />
<br />
=External Links=<br />
* [http://www.kernel.org kernel.org] - Official website for the Linux Kernel<br />
** [http://github.com/torvalds/linux http://github.com/torvalds/linux] - Linus Torvalds' GitHub account with the upstream Linux kernel<br />
* [http://www.kernel.org/doc/ Linux Kernel documentation index]<br />
* [http://www.kernel.org/doc/man-pages/ Linux Kernel man pages]<br />
* [http://kernelnewbies.org/ Kernel Newbies Site - Excellent source of information for people new to kernel]<br />
* [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=summary Linus' kernel tree for 2.6]<br />
* [https://bugzilla.kernel.org/ Kernel bugzilla] - [https://bugzilla.kernel.org/show_bug.cgi?id=15790 Regressions for each of recent versions]<br />
* [http://www.fsfla.org/svnwiki/selibre/linux-libre/ Linux-libre project - Maintains and distributes fully free kernel]<br />
* [http://lingrok.org/ LinGrok, Linux kernel source code cross-reference]<br />
* [https://elixir.bootlin.com/linux/latest/source?a=arm Bootlin LXR (Linux Cross Reference)]<br />
* [http://lists.infradead.org/pipermail/linux-arm-kernel/ linux-arm-kernel - Mailing list archive]<br />
===How to upstream===<br />
* [http://www.elinux.org/images/a/ad/Arm-soc-checklist.pdf Your new ARM SoC Linux support check-list! by Thomas Petazzoni of Bootlin]<br />
*[http://www.cnx-software.com/2014/03/04/linux-kernel-upstreaming-how-to-linaro-connect-asia-2014/ Linux Kernel Upstreaming How-To (CNXSoft - Embedded Software Development)]<br />
**[http://www.youtube.com/watch?v=dY7fikYZ42c Matt Porter's YouTube video talk on “Upstreaming 101" (LCA14-111)]<br />
***[http://www.linaro.org/documents/download/65f888c674508efcf9bd5d90398a186a530d01c4c78db Matt Porter's presentation slides for “Upstreaming 101" (LCA14-111)]<br />
**[https://www.youtube.com/watch?v=FiQ5uV_Mm5c Matt Porter's YouTube video talk on “Upstreaming 201" (LCA14-112)]<br />
***[http://www.linaro.org/documents/download/7b9920fcc89589bad9063d87d9137f08530d020b71924 Matt Porter's presentation slides for “Upstreaming 201" (LCA14-112)]<br />
*[http://www.cnx-software.com/2011/08/19/how-to-write-and-submit-a-linux-kernel-patch/ How to Write and Submit a Linux Kernel Patch (CNXSoft - Embedded Software Development)]<br />
** [http://www.youtube.com/watch?v=LLBrBBImJt4 YouTube Video- Write and Submit your first Linux kernel Patch]<br />
** [http://www.cnx-software.com/pdf/kernel-tutorial/kernel_patch_tutorial.pdf Greg Kroah-Hartman Kernel Tutorial Write and Submit your first Linux Kernel Patch]<br />
*[http://www.linaro.org/connect-lca14/resources Linaro resources page from LCA (Linaro Connect Asia) 2014]<br />
<br />
=Notes=<br />
<references group=note /><br />
<br />
[[Category:Development]]</div>
Frozeus
https://linux-sunxi.org/index.php?title=Linux_mainlining_effort&diff=23836
Linux mainlining effort
2020-12-15T09:41:44Z
<p>Frozeus: /* Planned for 5.11 */</p>
<hr />
<div>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.<br />
<br />
=Overview=<br />
The idea is to submit the code needed to run the Linux kernel on Allwinner SoCs upstream, ie. to the official Linux kernel.<br />
<br />
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.<ref>http://www.elinux.org/images/a/ad/Arm-soc-checklist.pdf</ref><ref>[http://www.cnx-software.com/2013/01/16/your-new-arm-soc-linux-support-check-list-elce-2012/ Your New ARM SoC Linux Support Check-List – ELCE 2012]</ref><br />
<br />
Where relevant, I have attempted to include who is currently working on an item, mostly separate from any particular mainlining goal.<br />
<br />
=Status=<br />
<br />
The [[Mainline_Kernel_Howto|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|Mainline U-Boot howto]].<br />
<br />
The [[:Category:Mainline_Kernel | Mainline Kernel category ]] gives an overview of currently supported devices.<br />
<br />
== Status Matrix ==<br />
<br />
The goal of this matrix is to give an easy view of work on each SoC worked on by linux-sunxi.<br />
<br />
{| class="wikitable" style="text-align: center; width: 100%;"<br />
|-<br />
! style="width: 13%; text-align: left;" colspan="2" | Model<br />
! [[F1C100s|F1C-<br>100s]]<br />
! [[A10]]<br />
! [[A10s]]<br />
! [[A13]]<br>[[R8]]<br />
! [[A20]]<br>[[T2]]<br />
! [[A23]]<br />
! [[A31]]<br />
! [[A33]]<br>[[R16]]<br />
! [[A64]]<br />
! [[A80]]<br />
! [[A83T]]<br />
! [[A100]]<br />
! [[GR8]]<br />
! [[H3]]<br />
! [[H5]]<br />
! [[H6]]<br />
! [[R40]]<br>[[T3]]<br />
! [[V3]]|[[V3s]]<br>[[S3]]|[[S3L]]<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | AC97<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[Audio Codec]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 5.0<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" rowspan="3" | ADC<br />
| style="text-align: left;" | GPADC<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| N/A<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.12<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | Thermal<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: darkgreen;" | ?<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.7<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | Touch<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.16<br />
| N/A<br />
| style="background: lightgreen;" | 4.0<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| rowspan="4" style="text-align: left;" | [[CSI|Camera]]<br />
<br />
| style="text-align: left;" | BT656<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: grey; color: white;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.0<br />
<br />
|-<br />
| style="text-align: left;" | ISP<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | MIPI CSI-2<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
<br />
|-<br />
| style="text-align: left;" | Parallel<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: grey; color: white;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.0<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Clocks<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.10<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.10<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | CPUFreq (DVFS)<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: lightgreen;" | 5.9<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[Cryptographic_Hardware_Accelerators|Crypto]]<br />
| N/A<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.10<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Display (SimpleFB)<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen" | 4.16<br />
| style="background: lightgreen" | 4.16<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.10<br />
<br />
|-<br />
| rowspan="8" style="text-align: left;" | Display<br />
([https://dri.freedesktop.org/wiki/DRM/ DRM])<br />
<br />
| style="text-align: left;" | CVBS<br />
| style="background: red;" | NO<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9 ?<br />
| style="background: lightgreen;" | 4.7<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | HDMI Audio<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | HDMI CEC<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.14<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 4.19<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | HDMI Video<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.13<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.19<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | LVDS<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.7<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | MIPI DSI<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | RGB<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.7<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" | VGA<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | DMA<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" rowspan="2" | [[Ethernet]]<br />
| style="text-align: left;" | [[Ethernet#EMAC|EMAC]]<br />
| rowspan="2"| N/A<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.11<br />
| rowspan="2"| N/A<br />
| style="background: lightgreen;" | 3.11 <br />
| rowspan="2"| N/A<br />
| N/A<br />
| rowspan="2"| N/A<br />
| style="background: lightgreen;" rowspan="2" | 4.15<br />
| style="background: lightgreen;" rowspan="2" | 5.1<br />
| style="background: lightgreen;" rowspan="2" | 4.16<br />
| style="background: grey; color: white;" | ?<br />
| rowspan="2"| N/A<br />
| style="background: lightgreen;" rowspan="2" | 4.15<br />
| style="background: lightgreen;" rowspan="2" | 4.15<br />
| style="background: lightgreen;" rowspan="2" | 5.0<br />
| style="background: lightgreen;" rowspan="2" | 4.18<br />
| style="background: lightgreen;" rowspan="2" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" | [[Ethernet#GMAC|GMAC]]<br />
<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: grey; color: white;" | ?<br />
<br />
|-<br />
| style="text-align: left;" rowspan="2" | GPU(3D)<br />
| style="text-align: left;" | [[Mali]]<br />
| N/A<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.10<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | [[PowerVR]]<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | HW Spinlocks<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[I2C]]<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.13<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | I2S<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | IOMMU<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.8<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[IR]]<br />
| style="background: red" | NO<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 3.17<br />
| N/A<br />
| style="background: lightgreen;" | 4.0<br />
| N/A<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.10<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Keypad<br />
| N/A<br />
| style="background: orange;" | WIP<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | WIP<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | LRADC<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | MsgBox<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: lightgreen;" | 5.8<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[NAND]]<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 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 [[MTD_Driver#Challenges|this page]] </ref><br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9 <ref name="mlc"/><br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9 <ref name="mlc" /><br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9 <ref name="mlc" /><br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: red;" | NO<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | PCIe<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<ref name="h6-pcie">Allwinner H6 has a quirky PCIe controller that doesn't map the PCIe address space properly to CPU,<br />
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/</ref><br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Pinctrl<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[PMU]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: grey; color: white;" | ?<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[PWM_Controller|PWM]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.12<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[RSB]]<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.4<br />
| N/A<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[RTC]]<br />
| N/A<br />
| style="background: lightgreen;" | 3.14<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.10<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SATA]]<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | SD/ [[eMMC|MMC]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | SMP<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SPDIF]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.7<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.7<br />
| N/A<br />
| style="background: lightgreen;" | 4.9<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SPIdev|SPI]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.7<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SRAM Controller|SRAM]]<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 4.19<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 5.0 <br />
| style="background: lightgreen;" | 5.1 <br />
| style="background: lightgreen;" | 5.10<br />
| style="background: lightgreen;" | 5.10<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[USB]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[USB_OTG_Controller_Register_guide#USB_OTG|USB OTG]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | USB3<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red" | NO<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.5<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[Video_Engine|VE]] | [[Sunxi-Cedrus]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.2 <br />
| style="background: lightgreen;" | 5.10<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Watchdog<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
! style="text-align: left;" colspan="2" | Model<br />
! [[F1C100s|F1C-<br>100s]]<br />
! [[A10]]<br />
! [[A10s]]<br />
! [[A13]]<br />
[[R8]]<br />
! [[A20]]<br>[[T2]]<br />
! [[A23]]<br />
! [[A31]]<br />
! [[A33]]<br />
[[R16]]<br />
! [[A64]]<br />
! [[A80]]<br />
! [[A83T]]<br />
| [[A100]]<br />
! [[GR8]]<br />
! [[H3]]<br />
! [[H5]]<br />
! [[H6]]<br />
! [[R40]]<br />
[[T3]]<br />
! [[V3]]|[[V3s]]<br>[[S3]]|[[S3L]]<br />
<br />
|}<br />
<br />
<br />
{| class="wikitable" style="text-align: center;"<br />
|-<br />
! Legend<br />
|-<br />
| style="background: lightgreen;" | In Linux mainline since version x<br />
|-<br />
| style="background: darkgreen;" | Nobody works on it, but it should be compatible with already done drivers<br />
|-<br />
| style="background: orange;" | Somebody works on it<br />
|-<br />
| style="background: red;" | No support, nobody works on it<br />
|-<br />
| style="background: black; color: white;" | support impossible<br />
|-<br />
| style="background: grey; color: white;" | Status is unknown/to be completed<br />
|}<br />
<br />
== Work In Progress ==<br />
<br />
=== Core Stuff ===<br />
*[[V831]] / [[V833]] Clocks & Pinctrl / RTC / MMC / Watchdog / SPI - Icenowy Zheng [https://patchwork.kernel.org/project/linux-arm-kernel/cover/20201212040157.3639864-1-icenowy@aosc.io/ Support for Allwinner V831 SoC]<br />
<br />
*[[H616]] Clocks & Pinctrl Andre Przywara [https://patchwork.kernel.org/project/linux-arm-kernel/cover/20201202135409.13683-1-andre.przywara@arm.com/ arm64: sunxi: Initial Allwinner H616 SoC support]<br />
<br />
*[[AR100]] firmware (WiP: Samuel Holland) [https://github.com/crust-firmware/crust ARISC firmware for sunxi SoCs ]<br />
<br />
* [[A13]] PSCI Suspend / Resume / CPUIdle (WiP: Antoine Tenart) [http://lists.denx.de/pipermail/u-boot/2016-September/265453.html patch-v1]<br />
<br />
=== Major drivers ===<br />
* [[A100]] DMA/PMU/Watchdog/USB2/USB OTG/MMC(eMMC, SD) Frank Lee [https://patchwork.kernel.org/project/linux-arm-kernel/cover/cover.1604988979.git.frank@allwinnertech.com/ Second step support for A100]<br />
<br />
* [[A83T]]/[[V3s]] MIPI CSI-2 Paul Kocialkowski [https://patchwork.kernel.org/project/linux-arm-kernel/list/?series=369649 Allwinner MIPI CSI-2 support for A31/V3s/A83T ]<br />
<br />
* [[H6]] Hypervisor for PCIe [https://forum.armbian.com/topic/13529-a-try-on-utilizing-h6-pcie-with-virtualization/ A try on utilizing H6 PCIe with "Virtualization"]<br />
<br />
* [[A64]] / [[H3]] / [[H5]] / [[H6]] HDMI Audio - Clément Péron / Marcus Cooper / Jernej Škrabec [https://patchwork.kernel.org/cover/11510511/ Add Allwinner H3/H5/A64 HDMI audio]<br />
<br />
* [[R40]] MIPI-DSI WIP Jagan Teki [https://patchwork.kernel.org/cover/11314031/ drm/sun4i: Allwinner R40 MIPI-DSI support v3] <br />
<br />
* [[AC100]] Audio codec WiP Ondrej Jirman [https://megous.com/git/linux/commit/?h=orange-pi-5.5&id=170d38d650f67657600d4e0e868e0e7110b89ee1 digital part] [https://megous.com/git/linux/commit/?h=orange-pi-5.5&id=ee424255a6fb9280ac27c1953019b768ca973ca7 analog part]<br />
<br />
* [[F1C100s]] USB WIP George Hilliard [https://lore.kernel.org/patchwork/cover/1206936/ Support the Allwinner F1C100s USB stack]<br />
<br />
* [[V3s]] SRAM & Video Decoding Engine (Cedrus) WiP Martin Cerveny [https://patchwork.kernel.org/project/linux-arm-kernel/list/?series=347787 Enable video decoder] ([https://github.com/mcerveny/linux/commits/v3s_videocodec_v4 testing with attached LCD])<br />
<br />
=== Minor drivers ===<br />
<!-- Please move the newest entry to the top --><br />
* [[H6]] RSB Samuel Holland [https://patchwork.kernel.org/project/linux-arm-kernel/cover/20201213235506.25201-1-samuel@sholland.org/ Allwinner H6 RSB support]<br />
* [[A100]] CPUFreq (DVFS) Shuosheng Huang [https://patchwork.kernel.org/project/linux-arm-kernel/list/?series=396055&archive=both&state=* cpufreq: sun50i: add a100 cpufreq support]<br />
* [[A64]] hwspinlock WIP Nikolay Borisov [https://patchwork.kernel.org/cover/11373645/ Add support for hwspinlock on A64 SoC] <br />
* [[A83T]] / [[A64]] / [[H3]] hwspinlock WIP Corentin Labbe (montjoie) [https://lore.kernel.org/patchwork/patch/706512/ RFC,1/3][https://lore.kernel.org/patchwork/patch/706511/ RFC,2/3][https://lore.kernel.org/patchwork/patch/706513/ RFC,3/3]<br />
* [[A10]] / [[A20]] / [[A31]] HDMI Audio WIP Stefan Mavrodiev [https://lore.kernel.org/patchwork/cover/1177803/ Add support for sun4i HDMI audio]<br />
* [[A80]] Thermal sensor WIP Philipp Rossak (embed-3d): https://github.com/embed-3d/linux/branches/all<br />
* [[R40]] PWM (WIP Hao Zhang [https://www.spinics.net/lists/kernel/msg2731498.html patch-v2])<br />
* [[A31]]/[[A31s]] PWM support (WiP: Siarhei Volkau [http://lists.infradead.org/pipermail/linux-arm-kernel/2017-February/486405.html patch-v1])<br />
* [[A20]] Keypad (WiP: Yassin Jaffer (ddc) [http://lists.infradead.org/pipermail/linux-arm-kernel/2015-September/370079.html patch])<br />
<br />
=== Drivers that can still be improved/added ===<br />
<br />
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.<br />
<br />
* sunxi-musb driver lacks DMA support (with current driver, USB gadgets are limited to PIO, limiting speed to 10MiB/s and causing large CPU)<br />
* DE2 driver has buggy layer support, see [https://patchwork.kernel.org/patch/11145803/]<br />
* DE1/DE2/DE3 writeback support<br />
* A64 audiocodec driver components (sun8i-codec and sun50i-codec-analog) lack support for jack detection<br />
<br />
== Planned for 5.11 ==<br />
*[[H6]]<br />
** [[I2S]]<br />
<br />
New Devices Supported<br />
*[[H3]]<br />
** [[FriendlyArm NanoPi R1]]<br />
** [[FriendlyArm ZeroPi]]<br />
<br />
== Planned for 5.10 ==<br />
*[[A100]]<br />
** Clocks<br />
** Pinctrl<br />
** [[I2C]]<br />
** Thermal (THS)<br />
<br />
*[[R40]]<br />
** DMA<br />
** GPU [[Mali]]<br />
** [[IR]]<br />
** [[SRAM Controller|SRAM]]<br />
** [[Video_Engine]] | [[Sunxi-Cedrus]]<br />
<br />
*[[V3s]]<br />
** Crypto<br />
** Ethernet<br />
** SimpleFB<br />
** [[SRAM Controller|SRAM]]<br />
<br />
New Devices Supported<br />
*[[A100]]<br />
** [[Perf1 board]]<br />
*[[S3l]]<br />
** [[PineCube]]<br />
<br />
== Merged into 5.9 ==<br />
* [[H5]]<br />
** DVFS<br />
<br />
== Merged into 5.8 ==<br />
* [[H6]]<br />
** DVFS<br />
** IOMMU<br />
<br />
* [[A64]] / [[A83T]] / [[H3]] / [[H5]] / [[H6]]<br />
** Message Box<br />
<br />
== Merged into 5.7 ==<br />
*[[A20]]<br />
** LVDS<br />
<br />
*[[A83T]] and [[A64]]<br />
** Rotate driver<br />
<br />
*[[H6]]<br />
** SPI<br />
<br />
*[[R40]]<br />
** Thermal<br />
<br />
New Devices Supported<br />
*[[A13]]<br />
** [[PocketBook Touch Lux 3]]<br />
*[[A64]]<br />
** [[PineTab]]<br />
** [[PinePhone]]<br />
*[[A20]]<br />
** Linutronix Testbox v2<br />
<br />
== Merged into 5.6 ==<br />
* [[A10]]<br />
** CSI (BT656 and Parallel)<br />
<br />
*[[A64]]<br />
** MIPI DSI<br />
** DVFS<br />
<br />
*[[A64]] / [[A83T]] / [[H3]] / [[H5]] / [[H6]]<br />
** Thermal<br />
<br />
*[[H6]]<br />
** PWM<br />
<br />
*[[H3]] / [[H5]] / [[H6]] / [[R40]]<br />
**PMU<br />
<br />
*[[R40]]<br />
** CSI (BT656 and Parallel)<br />
** SPI<br />
<br />
New Devices Supported<br />
* [[H5]]<br />
** ALL-H3-IT H5 board<br />
** ALL-H5-CC H5 board<br />
* [[H6]]<br />
** [[PineH64]] Model A<br />
<br />
== Merged into 5.5 ==<br />
*[[H3]]<br />
** Deinterlace driver<br />
<br />
*[[H6]]<br />
**Crypto<br />
**GPU(3D) Mali<br />
**USB3 PHY (for boards not needing vbus switching)<br />
<br />
*[[A64]] / [[A80]] / [[A83T]] / [[H3]] / [[H5]] / [[R40]] <br />
**Crypto<br />
<br />
* multiple SoCs<br />
** [[Cedrus]] HEVC/H.265<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** Emlid Neutis<br />
<br />
New Devices Supported<br />
* [[H3]]<br />
** [[FriendlyARM_NanoPi_Duo2]]<br />
<br />
== Merged into 5.4 (LTS)==<br />
* [[A20]]<br />
** CSI (BT656 and Parallel)<br />
* [[A64]]<br />
** IR<br />
* [[H6]]<br />
** IR<br />
** RTC<br />
** SPDIF<br />
New Devices Supported<br />
* [[A64]]<br />
** [[Olimex A64-OLinuXino]] eMMC<br />
* [[H6]]<br />
** [[Tanix TX6]]<br />
* [[S3]]<br />
** [[Lichee Zero Plus]]<br />
<br />
== Merged into 5.3 ==<br />
* [[A64]]<br />
** LRADC<br />
** RGB LCD<br />
* [[A83T]]<br />
** CSI (BT656 and Parallel)<br />
* [[H6]]<br />
** DMA<br />
** Watchdog<br />
* multiple SoCs<br />
** [[Cedrus]] h264<br />
<br />
== Merged into 5.2 ==<br />
* [[A83T]]<br />
** LRADC<br />
** USB OTG<br />
<br />
* [[H6]]<br />
** [[Cedrus]]<br />
<br />
* multiple SoCs<br />
** [[Mali Open Source Driver|Lima]]<br />
** [[Mali Open Source Driver|Panfrost]]<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** Banana-Pi-M2-Zero<br />
<br />
New Devices Supported<br />
* [[H6]]<br />
** [[Beelink GS1]]<br />
** [[Xunlong Orange Pi 3]]<br />
<br />
== Merged into 5.1 ==<br />
* A10<br />
** Cedrus<br />
** PMU<br />
<br />
* A20<br />
** Audio Codec improvements<br />
<br />
* A23<br />
** Display pipeline<br />
** LCD enabled on Q8 A23 tablets<br />
<br />
* A64<br />
** [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c950ca8c35eeb32224a63adc47e12f9e226da241 ARM Architectural Timer errata workaround]<br />
** PMU<br />
** CSI (BT656 and Parallel)<br />
<br />
* A80<br />
** GMAC support<br />
<br />
* CSI in general<br />
** RGR565 support<br />
** JPEG pass-through support<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** [[Banana Pi M2+]]<br />
** [[Banana Pi M2 Ultra]]<br />
<br />
* [[LCD]] enabled on [[A13]] [[Q8]] tablets<br />
<br />
== Merged into 5.0 ==<br />
* A64<br />
** Cedrus<br />
** DTS changes for audio codec<br />
<br />
* F1C100s<br />
** initial F1C100s support<br />
<br />
* H6<br />
** Ethernet<br />
** DE3/HDMI support<br />
** USB 2.0<br />
<br />
* H3 / H5<br />
** CSI (BT656 and Parallel) Support<br />
<br />
* H5<br />
** Cedrus<br />
<br />
* R40<br />
** RTC<br />
<br />
* T3<br />
** initial T3 support<ref>https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b7badd1d7aa61087010803affa19bb83fb5a0af1</ref><br />
<br />
* V3s<br />
** CSI (BT656 and Parallel) Support<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** [[Sinovoip Banana Pi M2 Magic | Banana Pi M2 Magic]]<br />
** [[Banana Pi M3]]<br />
** [[Banana Pi M64]]<br />
** [[Cubietruck]]<br />
** [[Cubietech_Cubietruck_Plus|Cubietruck Plus]]<br />
<br />
New Devices Supported<br />
* [[Xunlong Orange Pi Lite 2]]<br />
<br />
== Merged into 4.20 ==<br />
<br />
* A13 / A20 / A33 / H3<br />
** Cedrus driver<br />
<br />
* A83T<br />
** IR receiver<br />
<br />
* A64<br />
** Cleanup for device tree files<br />
** HDMI support<br />
** Audio codec support (DTS changes will be merged in 5.0)<br />
<br />
* H3 / H5<br />
** SID<br />
<br />
* R40<br />
** SATA<br />
<br />
New Devices Supported<br />
* [[Pine64]] LTS<br />
* [[Xunlong Orange Pi One Plus]]<br />
* [[Xunlong Orange Pi Zero Plus 2]] (H3 variant)<br />
* [[Sinovoip Banana Pi M2+]] (H5 variant)<br />
<br />
== Merged into 4.19 (LTS)==<br />
<br />
* A10 / A13 / A20 / A23 / A33<br />
** SRAM controller / system control<br />
<br />
* A64<br />
** SRAM controller / system control<br />
** Display clocks and bus<br />
** RTC clock output<br />
** PWM<br />
** R_I2C<br />
<br />
* H3<br />
** SRAM controller / system control<br />
<br />
* H6<br />
** MMC<br />
** PMIC<br />
<br />
* R40<br />
** HDMI support<br />
<br />
Board Changes<br />
* SPI flash node for [[Orange Pi PC 2]] and [[Pine64#Variants | Pine64 SoPINE]]<br />
* Use lid switch as wake-up source for A64 based laptops<br />
* LEDs added for [[PineH64]]<br />
<br />
New Devices<br />
* [[Pine Pinebook]]<br />
* Amarula A64-Relic<br />
<br />
== Changes merged up to 4.18 ==<br />
Changes up to 4.18 can be found on [[Linux mainlining history]] page.<br />
<br />
=References=<br />
<references /><br />
<br />
= See also =<br />
* [[Mainline Kernel Howto]]<br />
* [[Possible setups for hacking on mainline]]<br />
* [[Linux Kernel]]<br />
**[[Toolchain]]<br />
<br />
=External Links=<br />
* [http://www.kernel.org kernel.org] - Official website for the Linux Kernel<br />
** [http://github.com/torvalds/linux http://github.com/torvalds/linux] - Linus Torvalds' GitHub account with the upstream Linux kernel<br />
* [http://www.kernel.org/doc/ Linux Kernel documentation index]<br />
* [http://www.kernel.org/doc/man-pages/ Linux Kernel man pages]<br />
* [http://kernelnewbies.org/ Kernel Newbies Site - Excellent source of information for people new to kernel]<br />
* [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=summary Linus' kernel tree for 2.6]<br />
* [https://bugzilla.kernel.org/ Kernel bugzilla] - [https://bugzilla.kernel.org/show_bug.cgi?id=15790 Regressions for each of recent versions]<br />
* [http://www.fsfla.org/svnwiki/selibre/linux-libre/ Linux-libre project - Maintains and distributes fully free kernel]<br />
* [http://lingrok.org/ LinGrok, Linux kernel source code cross-reference]<br />
* [https://elixir.bootlin.com/linux/latest/source?a=arm Bootlin LXR (Linux Cross Reference)]<br />
* [http://lists.infradead.org/pipermail/linux-arm-kernel/ linux-arm-kernel - Mailing list archive]<br />
===How to upstream===<br />
* [http://www.elinux.org/images/a/ad/Arm-soc-checklist.pdf Your new ARM SoC Linux support check-list! by Thomas Petazzoni of Bootlin]<br />
*[http://www.cnx-software.com/2014/03/04/linux-kernel-upstreaming-how-to-linaro-connect-asia-2014/ Linux Kernel Upstreaming How-To (CNXSoft - Embedded Software Development)]<br />
**[http://www.youtube.com/watch?v=dY7fikYZ42c Matt Porter's YouTube video talk on “Upstreaming 101" (LCA14-111)]<br />
***[http://www.linaro.org/documents/download/65f888c674508efcf9bd5d90398a186a530d01c4c78db Matt Porter's presentation slides for “Upstreaming 101" (LCA14-111)]<br />
**[https://www.youtube.com/watch?v=FiQ5uV_Mm5c Matt Porter's YouTube video talk on “Upstreaming 201" (LCA14-112)]<br />
***[http://www.linaro.org/documents/download/7b9920fcc89589bad9063d87d9137f08530d020b71924 Matt Porter's presentation slides for “Upstreaming 201" (LCA14-112)]<br />
*[http://www.cnx-software.com/2011/08/19/how-to-write-and-submit-a-linux-kernel-patch/ How to Write and Submit a Linux Kernel Patch (CNXSoft - Embedded Software Development)]<br />
** [http://www.youtube.com/watch?v=LLBrBBImJt4 YouTube Video- Write and Submit your first Linux kernel Patch]<br />
** [http://www.cnx-software.com/pdf/kernel-tutorial/kernel_patch_tutorial.pdf Greg Kroah-Hartman Kernel Tutorial Write and Submit your first Linux Kernel Patch]<br />
*[http://www.linaro.org/connect-lca14/resources Linaro resources page from LCA (Linaro Connect Asia) 2014]<br />
<br />
=Notes=<br />
<references group=note /><br />
<br />
[[Category:Development]]</div>
Frozeus
https://linux-sunxi.org/index.php?title=Linux_mainlining_effort&diff=23835
Linux mainlining effort
2020-12-15T09:40:15Z
<p>Frozeus: /* Planned for 5.11 */</p>
<hr />
<div>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.<br />
<br />
=Overview=<br />
The idea is to submit the code needed to run the Linux kernel on Allwinner SoCs upstream, ie. to the official Linux kernel.<br />
<br />
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.<ref>http://www.elinux.org/images/a/ad/Arm-soc-checklist.pdf</ref><ref>[http://www.cnx-software.com/2013/01/16/your-new-arm-soc-linux-support-check-list-elce-2012/ Your New ARM SoC Linux Support Check-List – ELCE 2012]</ref><br />
<br />
Where relevant, I have attempted to include who is currently working on an item, mostly separate from any particular mainlining goal.<br />
<br />
=Status=<br />
<br />
The [[Mainline_Kernel_Howto|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|Mainline U-Boot howto]].<br />
<br />
The [[:Category:Mainline_Kernel | Mainline Kernel category ]] gives an overview of currently supported devices.<br />
<br />
== Status Matrix ==<br />
<br />
The goal of this matrix is to give an easy view of work on each SoC worked on by linux-sunxi.<br />
<br />
{| class="wikitable" style="text-align: center; width: 100%;"<br />
|-<br />
! style="width: 13%; text-align: left;" colspan="2" | Model<br />
! [[F1C100s|F1C-<br>100s]]<br />
! [[A10]]<br />
! [[A10s]]<br />
! [[A13]]<br>[[R8]]<br />
! [[A20]]<br>[[T2]]<br />
! [[A23]]<br />
! [[A31]]<br />
! [[A33]]<br>[[R16]]<br />
! [[A64]]<br />
! [[A80]]<br />
! [[A83T]]<br />
! [[A100]]<br />
! [[GR8]]<br />
! [[H3]]<br />
! [[H5]]<br />
! [[H6]]<br />
! [[R40]]<br>[[T3]]<br />
! [[V3]]|[[V3s]]<br>[[S3]]|[[S3L]]<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | AC97<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[Audio Codec]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 5.0<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" rowspan="3" | ADC<br />
| style="text-align: left;" | GPADC<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| N/A<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.12<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | Thermal<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: darkgreen;" | ?<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.7<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | Touch<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.16<br />
| N/A<br />
| style="background: lightgreen;" | 4.0<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| rowspan="4" style="text-align: left;" | [[CSI|Camera]]<br />
<br />
| style="text-align: left;" | BT656<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: grey; color: white;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.0<br />
<br />
|-<br />
| style="text-align: left;" | ISP<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | MIPI CSI-2<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
<br />
|-<br />
| style="text-align: left;" | Parallel<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: grey; color: white;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.0<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Clocks<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.10<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.10<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | CPUFreq (DVFS)<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: lightgreen;" | 5.9<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[Cryptographic_Hardware_Accelerators|Crypto]]<br />
| N/A<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.10<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Display (SimpleFB)<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen" | 4.16<br />
| style="background: lightgreen" | 4.16<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.10<br />
<br />
|-<br />
| rowspan="8" style="text-align: left;" | Display<br />
([https://dri.freedesktop.org/wiki/DRM/ DRM])<br />
<br />
| style="text-align: left;" | CVBS<br />
| style="background: red;" | NO<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9 ?<br />
| style="background: lightgreen;" | 4.7<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | HDMI Audio<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | HDMI CEC<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.14<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 4.19<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | HDMI Video<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.13<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.19<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | LVDS<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.7<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | MIPI DSI<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | RGB<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.7<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" | VGA<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | DMA<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" rowspan="2" | [[Ethernet]]<br />
| style="text-align: left;" | [[Ethernet#EMAC|EMAC]]<br />
| rowspan="2"| N/A<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.11<br />
| rowspan="2"| N/A<br />
| style="background: lightgreen;" | 3.11 <br />
| rowspan="2"| N/A<br />
| N/A<br />
| rowspan="2"| N/A<br />
| style="background: lightgreen;" rowspan="2" | 4.15<br />
| style="background: lightgreen;" rowspan="2" | 5.1<br />
| style="background: lightgreen;" rowspan="2" | 4.16<br />
| style="background: grey; color: white;" | ?<br />
| rowspan="2"| N/A<br />
| style="background: lightgreen;" rowspan="2" | 4.15<br />
| style="background: lightgreen;" rowspan="2" | 4.15<br />
| style="background: lightgreen;" rowspan="2" | 5.0<br />
| style="background: lightgreen;" rowspan="2" | 4.18<br />
| style="background: lightgreen;" rowspan="2" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" | [[Ethernet#GMAC|GMAC]]<br />
<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: grey; color: white;" | ?<br />
<br />
|-<br />
| style="text-align: left;" rowspan="2" | GPU(3D)<br />
| style="text-align: left;" | [[Mali]]<br />
| N/A<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.10<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | [[PowerVR]]<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | HW Spinlocks<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[I2C]]<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.13<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | I2S<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | IOMMU<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.8<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[IR]]<br />
| style="background: red" | NO<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 3.17<br />
| N/A<br />
| style="background: lightgreen;" | 4.0<br />
| N/A<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.10<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Keypad<br />
| N/A<br />
| style="background: orange;" | WIP<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | WIP<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | LRADC<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | MsgBox<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: lightgreen;" | 5.8<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[NAND]]<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 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 [[MTD_Driver#Challenges|this page]] </ref><br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9 <ref name="mlc"/><br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9 <ref name="mlc" /><br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9 <ref name="mlc" /><br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: red;" | NO<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | PCIe<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<ref name="h6-pcie">Allwinner H6 has a quirky PCIe controller that doesn't map the PCIe address space properly to CPU,<br />
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/</ref><br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Pinctrl<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[PMU]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: grey; color: white;" | ?<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[PWM_Controller|PWM]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.12<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[RSB]]<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.4<br />
| N/A<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[RTC]]<br />
| N/A<br />
| style="background: lightgreen;" | 3.14<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.10<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SATA]]<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | SD/ [[eMMC|MMC]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | SMP<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SPDIF]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.7<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.7<br />
| N/A<br />
| style="background: lightgreen;" | 4.9<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SPIdev|SPI]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.7<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SRAM Controller|SRAM]]<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 4.19<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 5.0 <br />
| style="background: lightgreen;" | 5.1 <br />
| style="background: lightgreen;" | 5.10<br />
| style="background: lightgreen;" | 5.10<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[USB]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[USB_OTG_Controller_Register_guide#USB_OTG|USB OTG]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | USB3<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red" | NO<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.5<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[Video_Engine|VE]] | [[Sunxi-Cedrus]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.2 <br />
| style="background: lightgreen;" | 5.10<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Watchdog<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
! style="text-align: left;" colspan="2" | Model<br />
! [[F1C100s|F1C-<br>100s]]<br />
! [[A10]]<br />
! [[A10s]]<br />
! [[A13]]<br />
[[R8]]<br />
! [[A20]]<br>[[T2]]<br />
! [[A23]]<br />
! [[A31]]<br />
! [[A33]]<br />
[[R16]]<br />
! [[A64]]<br />
! [[A80]]<br />
! [[A83T]]<br />
| [[A100]]<br />
! [[GR8]]<br />
! [[H3]]<br />
! [[H5]]<br />
! [[H6]]<br />
! [[R40]]<br />
[[T3]]<br />
! [[V3]]|[[V3s]]<br>[[S3]]|[[S3L]]<br />
<br />
|}<br />
<br />
<br />
{| class="wikitable" style="text-align: center;"<br />
|-<br />
! Legend<br />
|-<br />
| style="background: lightgreen;" | In Linux mainline since version x<br />
|-<br />
| style="background: darkgreen;" | Nobody works on it, but it should be compatible with already done drivers<br />
|-<br />
| style="background: orange;" | Somebody works on it<br />
|-<br />
| style="background: red;" | No support, nobody works on it<br />
|-<br />
| style="background: black; color: white;" | support impossible<br />
|-<br />
| style="background: grey; color: white;" | Status is unknown/to be completed<br />
|}<br />
<br />
== Work In Progress ==<br />
<br />
=== Core Stuff ===<br />
*[[V831]] / [[V833]] Clocks & Pinctrl / RTC / MMC / Watchdog / SPI - Icenowy Zheng [https://patchwork.kernel.org/project/linux-arm-kernel/cover/20201212040157.3639864-1-icenowy@aosc.io/ Support for Allwinner V831 SoC]<br />
<br />
*[[H616]] Clocks & Pinctrl Andre Przywara [https://patchwork.kernel.org/project/linux-arm-kernel/cover/20201202135409.13683-1-andre.przywara@arm.com/ arm64: sunxi: Initial Allwinner H616 SoC support]<br />
<br />
*[[AR100]] firmware (WiP: Samuel Holland) [https://github.com/crust-firmware/crust ARISC firmware for sunxi SoCs ]<br />
<br />
* [[A13]] PSCI Suspend / Resume / CPUIdle (WiP: Antoine Tenart) [http://lists.denx.de/pipermail/u-boot/2016-September/265453.html patch-v1]<br />
<br />
=== Major drivers ===<br />
* [[A100]] DMA/PMU/Watchdog/USB2/USB OTG/MMC(eMMC, SD) Frank Lee [https://patchwork.kernel.org/project/linux-arm-kernel/cover/cover.1604988979.git.frank@allwinnertech.com/ Second step support for A100]<br />
<br />
* [[A83T]]/[[V3s]] MIPI CSI-2 Paul Kocialkowski [https://patchwork.kernel.org/project/linux-arm-kernel/list/?series=369649 Allwinner MIPI CSI-2 support for A31/V3s/A83T ]<br />
<br />
* [[H6]] Hypervisor for PCIe [https://forum.armbian.com/topic/13529-a-try-on-utilizing-h6-pcie-with-virtualization/ A try on utilizing H6 PCIe with "Virtualization"]<br />
<br />
* [[A64]] / [[H3]] / [[H5]] / [[H6]] HDMI Audio - Clément Péron / Marcus Cooper / Jernej Škrabec [https://patchwork.kernel.org/cover/11510511/ Add Allwinner H3/H5/A64 HDMI audio]<br />
<br />
* [[R40]] MIPI-DSI WIP Jagan Teki [https://patchwork.kernel.org/cover/11314031/ drm/sun4i: Allwinner R40 MIPI-DSI support v3] <br />
<br />
* [[AC100]] Audio codec WiP Ondrej Jirman [https://megous.com/git/linux/commit/?h=orange-pi-5.5&id=170d38d650f67657600d4e0e868e0e7110b89ee1 digital part] [https://megous.com/git/linux/commit/?h=orange-pi-5.5&id=ee424255a6fb9280ac27c1953019b768ca973ca7 analog part]<br />
<br />
* [[F1C100s]] USB WIP George Hilliard [https://lore.kernel.org/patchwork/cover/1206936/ Support the Allwinner F1C100s USB stack]<br />
<br />
* [[V3s]] SRAM & Video Decoding Engine (Cedrus) WiP Martin Cerveny [https://patchwork.kernel.org/project/linux-arm-kernel/list/?series=347787 Enable video decoder] ([https://github.com/mcerveny/linux/commits/v3s_videocodec_v4 testing with attached LCD])<br />
<br />
=== Minor drivers ===<br />
<!-- Please move the newest entry to the top --><br />
* [[H6]] RSB Samuel Holland [https://patchwork.kernel.org/project/linux-arm-kernel/cover/20201213235506.25201-1-samuel@sholland.org/ Allwinner H6 RSB support]<br />
* [[A100]] CPUFreq (DVFS) Shuosheng Huang [https://patchwork.kernel.org/project/linux-arm-kernel/list/?series=396055&archive=both&state=* cpufreq: sun50i: add a100 cpufreq support]<br />
* [[A64]] hwspinlock WIP Nikolay Borisov [https://patchwork.kernel.org/cover/11373645/ Add support for hwspinlock on A64 SoC] <br />
* [[A83T]] / [[A64]] / [[H3]] hwspinlock WIP Corentin Labbe (montjoie) [https://lore.kernel.org/patchwork/patch/706512/ RFC,1/3][https://lore.kernel.org/patchwork/patch/706511/ RFC,2/3][https://lore.kernel.org/patchwork/patch/706513/ RFC,3/3]<br />
* [[A10]] / [[A20]] / [[A31]] HDMI Audio WIP Stefan Mavrodiev [https://lore.kernel.org/patchwork/cover/1177803/ Add support for sun4i HDMI audio]<br />
* [[A80]] Thermal sensor WIP Philipp Rossak (embed-3d): https://github.com/embed-3d/linux/branches/all<br />
* [[R40]] PWM (WIP Hao Zhang [https://www.spinics.net/lists/kernel/msg2731498.html patch-v2])<br />
* [[A31]]/[[A31s]] PWM support (WiP: Siarhei Volkau [http://lists.infradead.org/pipermail/linux-arm-kernel/2017-February/486405.html patch-v1])<br />
* [[A20]] Keypad (WiP: Yassin Jaffer (ddc) [http://lists.infradead.org/pipermail/linux-arm-kernel/2015-September/370079.html patch])<br />
<br />
=== Drivers that can still be improved/added ===<br />
<br />
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.<br />
<br />
* sunxi-musb driver lacks DMA support (with current driver, USB gadgets are limited to PIO, limiting speed to 10MiB/s and causing large CPU)<br />
* DE2 driver has buggy layer support, see [https://patchwork.kernel.org/patch/11145803/]<br />
* DE1/DE2/DE3 writeback support<br />
* A64 audiocodec driver components (sun8i-codec and sun50i-codec-analog) lack support for jack detection<br />
<br />
== Planned for 5.11 ==<br />
*[[H6]]<br />
** [[I2S]]<br />
<br />
New Devices Supported<br />
*[[H3]]<br />
** [[FriendlyArm ZeroPi]]<br />
<br />
== Planned for 5.10 ==<br />
*[[A100]]<br />
** Clocks<br />
** Pinctrl<br />
** [[I2C]]<br />
** Thermal (THS)<br />
<br />
*[[R40]]<br />
** DMA<br />
** GPU [[Mali]]<br />
** [[IR]]<br />
** [[SRAM Controller|SRAM]]<br />
** [[Video_Engine]] | [[Sunxi-Cedrus]]<br />
<br />
*[[V3s]]<br />
** Crypto<br />
** Ethernet<br />
** SimpleFB<br />
** [[SRAM Controller|SRAM]]<br />
<br />
New Devices Supported<br />
*[[A100]]<br />
** [[Perf1 board]]<br />
*[[S3l]]<br />
** [[PineCube]]<br />
<br />
== Merged into 5.9 ==<br />
* [[H5]]<br />
** DVFS<br />
<br />
== Merged into 5.8 ==<br />
* [[H6]]<br />
** DVFS<br />
** IOMMU<br />
<br />
* [[A64]] / [[A83T]] / [[H3]] / [[H5]] / [[H6]]<br />
** Message Box<br />
<br />
== Merged into 5.7 ==<br />
*[[A20]]<br />
** LVDS<br />
<br />
*[[A83T]] and [[A64]]<br />
** Rotate driver<br />
<br />
*[[H6]]<br />
** SPI<br />
<br />
*[[R40]]<br />
** Thermal<br />
<br />
New Devices Supported<br />
*[[A13]]<br />
** [[PocketBook Touch Lux 3]]<br />
*[[A64]]<br />
** [[PineTab]]<br />
** [[PinePhone]]<br />
*[[A20]]<br />
** Linutronix Testbox v2<br />
<br />
== Merged into 5.6 ==<br />
* [[A10]]<br />
** CSI (BT656 and Parallel)<br />
<br />
*[[A64]]<br />
** MIPI DSI<br />
** DVFS<br />
<br />
*[[A64]] / [[A83T]] / [[H3]] / [[H5]] / [[H6]]<br />
** Thermal<br />
<br />
*[[H6]]<br />
** PWM<br />
<br />
*[[H3]] / [[H5]] / [[H6]] / [[R40]]<br />
**PMU<br />
<br />
*[[R40]]<br />
** CSI (BT656 and Parallel)<br />
** SPI<br />
<br />
New Devices Supported<br />
* [[H5]]<br />
** ALL-H3-IT H5 board<br />
** ALL-H5-CC H5 board<br />
* [[H6]]<br />
** [[PineH64]] Model A<br />
<br />
== Merged into 5.5 ==<br />
*[[H3]]<br />
** Deinterlace driver<br />
<br />
*[[H6]]<br />
**Crypto<br />
**GPU(3D) Mali<br />
**USB3 PHY (for boards not needing vbus switching)<br />
<br />
*[[A64]] / [[A80]] / [[A83T]] / [[H3]] / [[H5]] / [[R40]] <br />
**Crypto<br />
<br />
* multiple SoCs<br />
** [[Cedrus]] HEVC/H.265<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** Emlid Neutis<br />
<br />
New Devices Supported<br />
* [[H3]]<br />
** [[FriendlyARM_NanoPi_Duo2]]<br />
<br />
== Merged into 5.4 (LTS)==<br />
* [[A20]]<br />
** CSI (BT656 and Parallel)<br />
* [[A64]]<br />
** IR<br />
* [[H6]]<br />
** IR<br />
** RTC<br />
** SPDIF<br />
New Devices Supported<br />
* [[A64]]<br />
** [[Olimex A64-OLinuXino]] eMMC<br />
* [[H6]]<br />
** [[Tanix TX6]]<br />
* [[S3]]<br />
** [[Lichee Zero Plus]]<br />
<br />
== Merged into 5.3 ==<br />
* [[A64]]<br />
** LRADC<br />
** RGB LCD<br />
* [[A83T]]<br />
** CSI (BT656 and Parallel)<br />
* [[H6]]<br />
** DMA<br />
** Watchdog<br />
* multiple SoCs<br />
** [[Cedrus]] h264<br />
<br />
== Merged into 5.2 ==<br />
* [[A83T]]<br />
** LRADC<br />
** USB OTG<br />
<br />
* [[H6]]<br />
** [[Cedrus]]<br />
<br />
* multiple SoCs<br />
** [[Mali Open Source Driver|Lima]]<br />
** [[Mali Open Source Driver|Panfrost]]<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** Banana-Pi-M2-Zero<br />
<br />
New Devices Supported<br />
* [[H6]]<br />
** [[Beelink GS1]]<br />
** [[Xunlong Orange Pi 3]]<br />
<br />
== Merged into 5.1 ==<br />
* A10<br />
** Cedrus<br />
** PMU<br />
<br />
* A20<br />
** Audio Codec improvements<br />
<br />
* A23<br />
** Display pipeline<br />
** LCD enabled on Q8 A23 tablets<br />
<br />
* A64<br />
** [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c950ca8c35eeb32224a63adc47e12f9e226da241 ARM Architectural Timer errata workaround]<br />
** PMU<br />
** CSI (BT656 and Parallel)<br />
<br />
* A80<br />
** GMAC support<br />
<br />
* CSI in general<br />
** RGR565 support<br />
** JPEG pass-through support<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** [[Banana Pi M2+]]<br />
** [[Banana Pi M2 Ultra]]<br />
<br />
* [[LCD]] enabled on [[A13]] [[Q8]] tablets<br />
<br />
== Merged into 5.0 ==<br />
* A64<br />
** Cedrus<br />
** DTS changes for audio codec<br />
<br />
* F1C100s<br />
** initial F1C100s support<br />
<br />
* H6<br />
** Ethernet<br />
** DE3/HDMI support<br />
** USB 2.0<br />
<br />
* H3 / H5<br />
** CSI (BT656 and Parallel) Support<br />
<br />
* H5<br />
** Cedrus<br />
<br />
* R40<br />
** RTC<br />
<br />
* T3<br />
** initial T3 support<ref>https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b7badd1d7aa61087010803affa19bb83fb5a0af1</ref><br />
<br />
* V3s<br />
** CSI (BT656 and Parallel) Support<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** [[Sinovoip Banana Pi M2 Magic | Banana Pi M2 Magic]]<br />
** [[Banana Pi M3]]<br />
** [[Banana Pi M64]]<br />
** [[Cubietruck]]<br />
** [[Cubietech_Cubietruck_Plus|Cubietruck Plus]]<br />
<br />
New Devices Supported<br />
* [[Xunlong Orange Pi Lite 2]]<br />
<br />
== Merged into 4.20 ==<br />
<br />
* A13 / A20 / A33 / H3<br />
** Cedrus driver<br />
<br />
* A83T<br />
** IR receiver<br />
<br />
* A64<br />
** Cleanup for device tree files<br />
** HDMI support<br />
** Audio codec support (DTS changes will be merged in 5.0)<br />
<br />
* H3 / H5<br />
** SID<br />
<br />
* R40<br />
** SATA<br />
<br />
New Devices Supported<br />
* [[Pine64]] LTS<br />
* [[Xunlong Orange Pi One Plus]]<br />
* [[Xunlong Orange Pi Zero Plus 2]] (H3 variant)<br />
* [[Sinovoip Banana Pi M2+]] (H5 variant)<br />
<br />
== Merged into 4.19 (LTS)==<br />
<br />
* A10 / A13 / A20 / A23 / A33<br />
** SRAM controller / system control<br />
<br />
* A64<br />
** SRAM controller / system control<br />
** Display clocks and bus<br />
** RTC clock output<br />
** PWM<br />
** R_I2C<br />
<br />
* H3<br />
** SRAM controller / system control<br />
<br />
* H6<br />
** MMC<br />
** PMIC<br />
<br />
* R40<br />
** HDMI support<br />
<br />
Board Changes<br />
* SPI flash node for [[Orange Pi PC 2]] and [[Pine64#Variants | Pine64 SoPINE]]<br />
* Use lid switch as wake-up source for A64 based laptops<br />
* LEDs added for [[PineH64]]<br />
<br />
New Devices<br />
* [[Pine Pinebook]]<br />
* Amarula A64-Relic<br />
<br />
== Changes merged up to 4.18 ==<br />
Changes up to 4.18 can be found on [[Linux mainlining history]] page.<br />
<br />
=References=<br />
<references /><br />
<br />
= See also =<br />
* [[Mainline Kernel Howto]]<br />
* [[Possible setups for hacking on mainline]]<br />
* [[Linux Kernel]]<br />
**[[Toolchain]]<br />
<br />
=External Links=<br />
* [http://www.kernel.org kernel.org] - Official website for the Linux Kernel<br />
** [http://github.com/torvalds/linux http://github.com/torvalds/linux] - Linus Torvalds' GitHub account with the upstream Linux kernel<br />
* [http://www.kernel.org/doc/ Linux Kernel documentation index]<br />
* [http://www.kernel.org/doc/man-pages/ Linux Kernel man pages]<br />
* [http://kernelnewbies.org/ Kernel Newbies Site - Excellent source of information for people new to kernel]<br />
* [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=summary Linus' kernel tree for 2.6]<br />
* [https://bugzilla.kernel.org/ Kernel bugzilla] - [https://bugzilla.kernel.org/show_bug.cgi?id=15790 Regressions for each of recent versions]<br />
* [http://www.fsfla.org/svnwiki/selibre/linux-libre/ Linux-libre project - Maintains and distributes fully free kernel]<br />
* [http://lingrok.org/ LinGrok, Linux kernel source code cross-reference]<br />
* [https://elixir.bootlin.com/linux/latest/source?a=arm Bootlin LXR (Linux Cross Reference)]<br />
* [http://lists.infradead.org/pipermail/linux-arm-kernel/ linux-arm-kernel - Mailing list archive]<br />
===How to upstream===<br />
* [http://www.elinux.org/images/a/ad/Arm-soc-checklist.pdf Your new ARM SoC Linux support check-list! by Thomas Petazzoni of Bootlin]<br />
*[http://www.cnx-software.com/2014/03/04/linux-kernel-upstreaming-how-to-linaro-connect-asia-2014/ Linux Kernel Upstreaming How-To (CNXSoft - Embedded Software Development)]<br />
**[http://www.youtube.com/watch?v=dY7fikYZ42c Matt Porter's YouTube video talk on “Upstreaming 101" (LCA14-111)]<br />
***[http://www.linaro.org/documents/download/65f888c674508efcf9bd5d90398a186a530d01c4c78db Matt Porter's presentation slides for “Upstreaming 101" (LCA14-111)]<br />
**[https://www.youtube.com/watch?v=FiQ5uV_Mm5c Matt Porter's YouTube video talk on “Upstreaming 201" (LCA14-112)]<br />
***[http://www.linaro.org/documents/download/7b9920fcc89589bad9063d87d9137f08530d020b71924 Matt Porter's presentation slides for “Upstreaming 201" (LCA14-112)]<br />
*[http://www.cnx-software.com/2011/08/19/how-to-write-and-submit-a-linux-kernel-patch/ How to Write and Submit a Linux Kernel Patch (CNXSoft - Embedded Software Development)]<br />
** [http://www.youtube.com/watch?v=LLBrBBImJt4 YouTube Video- Write and Submit your first Linux kernel Patch]<br />
** [http://www.cnx-software.com/pdf/kernel-tutorial/kernel_patch_tutorial.pdf Greg Kroah-Hartman Kernel Tutorial Write and Submit your first Linux Kernel Patch]<br />
*[http://www.linaro.org/connect-lca14/resources Linaro resources page from LCA (Linaro Connect Asia) 2014]<br />
<br />
=Notes=<br />
<references group=note /><br />
<br />
[[Category:Development]]</div>
Frozeus
https://linux-sunxi.org/index.php?title=Linux_mainlining_effort&diff=23834
Linux mainlining effort
2020-12-15T09:38:22Z
<p>Frozeus: /* Planned for 5.10 */</p>
<hr />
<div>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.<br />
<br />
=Overview=<br />
The idea is to submit the code needed to run the Linux kernel on Allwinner SoCs upstream, ie. to the official Linux kernel.<br />
<br />
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.<ref>http://www.elinux.org/images/a/ad/Arm-soc-checklist.pdf</ref><ref>[http://www.cnx-software.com/2013/01/16/your-new-arm-soc-linux-support-check-list-elce-2012/ Your New ARM SoC Linux Support Check-List – ELCE 2012]</ref><br />
<br />
Where relevant, I have attempted to include who is currently working on an item, mostly separate from any particular mainlining goal.<br />
<br />
=Status=<br />
<br />
The [[Mainline_Kernel_Howto|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|Mainline U-Boot howto]].<br />
<br />
The [[:Category:Mainline_Kernel | Mainline Kernel category ]] gives an overview of currently supported devices.<br />
<br />
== Status Matrix ==<br />
<br />
The goal of this matrix is to give an easy view of work on each SoC worked on by linux-sunxi.<br />
<br />
{| class="wikitable" style="text-align: center; width: 100%;"<br />
|-<br />
! style="width: 13%; text-align: left;" colspan="2" | Model<br />
! [[F1C100s|F1C-<br>100s]]<br />
! [[A10]]<br />
! [[A10s]]<br />
! [[A13]]<br>[[R8]]<br />
! [[A20]]<br>[[T2]]<br />
! [[A23]]<br />
! [[A31]]<br />
! [[A33]]<br>[[R16]]<br />
! [[A64]]<br />
! [[A80]]<br />
! [[A83T]]<br />
! [[A100]]<br />
! [[GR8]]<br />
! [[H3]]<br />
! [[H5]]<br />
! [[H6]]<br />
! [[R40]]<br>[[T3]]<br />
! [[V3]]|[[V3s]]<br>[[S3]]|[[S3L]]<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | AC97<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[Audio Codec]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 5.0<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" rowspan="3" | ADC<br />
| style="text-align: left;" | GPADC<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| N/A<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.12<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | Thermal<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: darkgreen;" | ?<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.7<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | Touch<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.16<br />
| N/A<br />
| style="background: lightgreen;" | 4.0<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| rowspan="4" style="text-align: left;" | [[CSI|Camera]]<br />
<br />
| style="text-align: left;" | BT656<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: grey; color: white;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.0<br />
<br />
|-<br />
| style="text-align: left;" | ISP<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | MIPI CSI-2<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
<br />
|-<br />
| style="text-align: left;" | Parallel<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: grey; color: white;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.0<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Clocks<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.10<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.10<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | CPUFreq (DVFS)<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: lightgreen;" | 5.9<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[Cryptographic_Hardware_Accelerators|Crypto]]<br />
| N/A<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.10<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Display (SimpleFB)<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen" | 4.16<br />
| style="background: lightgreen" | 4.16<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.10<br />
<br />
|-<br />
| rowspan="8" style="text-align: left;" | Display<br />
([https://dri.freedesktop.org/wiki/DRM/ DRM])<br />
<br />
| style="text-align: left;" | CVBS<br />
| style="background: red;" | NO<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9 ?<br />
| style="background: lightgreen;" | 4.7<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | HDMI Audio<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | HDMI CEC<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.14<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 4.19<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | HDMI Video<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.13<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.19<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | LVDS<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.7<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | MIPI DSI<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | RGB<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.7<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" | VGA<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | DMA<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" rowspan="2" | [[Ethernet]]<br />
| style="text-align: left;" | [[Ethernet#EMAC|EMAC]]<br />
| rowspan="2"| N/A<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.11<br />
| rowspan="2"| N/A<br />
| style="background: lightgreen;" | 3.11 <br />
| rowspan="2"| N/A<br />
| N/A<br />
| rowspan="2"| N/A<br />
| style="background: lightgreen;" rowspan="2" | 4.15<br />
| style="background: lightgreen;" rowspan="2" | 5.1<br />
| style="background: lightgreen;" rowspan="2" | 4.16<br />
| style="background: grey; color: white;" | ?<br />
| rowspan="2"| N/A<br />
| style="background: lightgreen;" rowspan="2" | 4.15<br />
| style="background: lightgreen;" rowspan="2" | 4.15<br />
| style="background: lightgreen;" rowspan="2" | 5.0<br />
| style="background: lightgreen;" rowspan="2" | 4.18<br />
| style="background: lightgreen;" rowspan="2" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" | [[Ethernet#GMAC|GMAC]]<br />
<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: grey; color: white;" | ?<br />
<br />
|-<br />
| style="text-align: left;" rowspan="2" | GPU(3D)<br />
| style="text-align: left;" | [[Mali]]<br />
| N/A<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.10<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | [[PowerVR]]<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | HW Spinlocks<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[I2C]]<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.13<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | I2S<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | IOMMU<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.8<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[IR]]<br />
| style="background: red" | NO<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 3.17<br />
| N/A<br />
| style="background: lightgreen;" | 4.0<br />
| N/A<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.10<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Keypad<br />
| N/A<br />
| style="background: orange;" | WIP<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | WIP<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | LRADC<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | MsgBox<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: lightgreen;" | 5.8<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[NAND]]<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 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 [[MTD_Driver#Challenges|this page]] </ref><br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9 <ref name="mlc"/><br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9 <ref name="mlc" /><br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9 <ref name="mlc" /><br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: red;" | NO<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | PCIe<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<ref name="h6-pcie">Allwinner H6 has a quirky PCIe controller that doesn't map the PCIe address space properly to CPU,<br />
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/</ref><br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Pinctrl<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[PMU]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: grey; color: white;" | ?<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[PWM_Controller|PWM]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.12<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[RSB]]<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.4<br />
| N/A<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[RTC]]<br />
| N/A<br />
| style="background: lightgreen;" | 3.14<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.10<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SATA]]<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | SD/ [[eMMC|MMC]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | SMP<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SPDIF]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.7<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.7<br />
| N/A<br />
| style="background: lightgreen;" | 4.9<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SPIdev|SPI]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.7<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SRAM Controller|SRAM]]<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 4.19<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 5.0 <br />
| style="background: lightgreen;" | 5.1 <br />
| style="background: lightgreen;" | 5.10<br />
| style="background: lightgreen;" | 5.10<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[USB]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[USB_OTG_Controller_Register_guide#USB_OTG|USB OTG]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | USB3<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red" | NO<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.5<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[Video_Engine|VE]] | [[Sunxi-Cedrus]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.2 <br />
| style="background: lightgreen;" | 5.10<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Watchdog<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
! style="text-align: left;" colspan="2" | Model<br />
! [[F1C100s|F1C-<br>100s]]<br />
! [[A10]]<br />
! [[A10s]]<br />
! [[A13]]<br />
[[R8]]<br />
! [[A20]]<br>[[T2]]<br />
! [[A23]]<br />
! [[A31]]<br />
! [[A33]]<br />
[[R16]]<br />
! [[A64]]<br />
! [[A80]]<br />
! [[A83T]]<br />
| [[A100]]<br />
! [[GR8]]<br />
! [[H3]]<br />
! [[H5]]<br />
! [[H6]]<br />
! [[R40]]<br />
[[T3]]<br />
! [[V3]]|[[V3s]]<br>[[S3]]|[[S3L]]<br />
<br />
|}<br />
<br />
<br />
{| class="wikitable" style="text-align: center;"<br />
|-<br />
! Legend<br />
|-<br />
| style="background: lightgreen;" | In Linux mainline since version x<br />
|-<br />
| style="background: darkgreen;" | Nobody works on it, but it should be compatible with already done drivers<br />
|-<br />
| style="background: orange;" | Somebody works on it<br />
|-<br />
| style="background: red;" | No support, nobody works on it<br />
|-<br />
| style="background: black; color: white;" | support impossible<br />
|-<br />
| style="background: grey; color: white;" | Status is unknown/to be completed<br />
|}<br />
<br />
== Work In Progress ==<br />
<br />
=== Core Stuff ===<br />
*[[V831]] / [[V833]] Clocks & Pinctrl / RTC / MMC / Watchdog / SPI - Icenowy Zheng [https://patchwork.kernel.org/project/linux-arm-kernel/cover/20201212040157.3639864-1-icenowy@aosc.io/ Support for Allwinner V831 SoC]<br />
<br />
*[[H616]] Clocks & Pinctrl Andre Przywara [https://patchwork.kernel.org/project/linux-arm-kernel/cover/20201202135409.13683-1-andre.przywara@arm.com/ arm64: sunxi: Initial Allwinner H616 SoC support]<br />
<br />
*[[AR100]] firmware (WiP: Samuel Holland) [https://github.com/crust-firmware/crust ARISC firmware for sunxi SoCs ]<br />
<br />
* [[A13]] PSCI Suspend / Resume / CPUIdle (WiP: Antoine Tenart) [http://lists.denx.de/pipermail/u-boot/2016-September/265453.html patch-v1]<br />
<br />
=== Major drivers ===<br />
* [[A100]] DMA/PMU/Watchdog/USB2/USB OTG/MMC(eMMC, SD) Frank Lee [https://patchwork.kernel.org/project/linux-arm-kernel/cover/cover.1604988979.git.frank@allwinnertech.com/ Second step support for A100]<br />
<br />
* [[A83T]]/[[V3s]] MIPI CSI-2 Paul Kocialkowski [https://patchwork.kernel.org/project/linux-arm-kernel/list/?series=369649 Allwinner MIPI CSI-2 support for A31/V3s/A83T ]<br />
<br />
* [[H6]] Hypervisor for PCIe [https://forum.armbian.com/topic/13529-a-try-on-utilizing-h6-pcie-with-virtualization/ A try on utilizing H6 PCIe with "Virtualization"]<br />
<br />
* [[A64]] / [[H3]] / [[H5]] / [[H6]] HDMI Audio - Clément Péron / Marcus Cooper / Jernej Škrabec [https://patchwork.kernel.org/cover/11510511/ Add Allwinner H3/H5/A64 HDMI audio]<br />
<br />
* [[R40]] MIPI-DSI WIP Jagan Teki [https://patchwork.kernel.org/cover/11314031/ drm/sun4i: Allwinner R40 MIPI-DSI support v3] <br />
<br />
* [[AC100]] Audio codec WiP Ondrej Jirman [https://megous.com/git/linux/commit/?h=orange-pi-5.5&id=170d38d650f67657600d4e0e868e0e7110b89ee1 digital part] [https://megous.com/git/linux/commit/?h=orange-pi-5.5&id=ee424255a6fb9280ac27c1953019b768ca973ca7 analog part]<br />
<br />
* [[F1C100s]] USB WIP George Hilliard [https://lore.kernel.org/patchwork/cover/1206936/ Support the Allwinner F1C100s USB stack]<br />
<br />
* [[V3s]] SRAM & Video Decoding Engine (Cedrus) WiP Martin Cerveny [https://patchwork.kernel.org/project/linux-arm-kernel/list/?series=347787 Enable video decoder] ([https://github.com/mcerveny/linux/commits/v3s_videocodec_v4 testing with attached LCD])<br />
<br />
=== Minor drivers ===<br />
<!-- Please move the newest entry to the top --><br />
* [[H6]] RSB Samuel Holland [https://patchwork.kernel.org/project/linux-arm-kernel/cover/20201213235506.25201-1-samuel@sholland.org/ Allwinner H6 RSB support]<br />
* [[A100]] CPUFreq (DVFS) Shuosheng Huang [https://patchwork.kernel.org/project/linux-arm-kernel/list/?series=396055&archive=both&state=* cpufreq: sun50i: add a100 cpufreq support]<br />
* [[A64]] hwspinlock WIP Nikolay Borisov [https://patchwork.kernel.org/cover/11373645/ Add support for hwspinlock on A64 SoC] <br />
* [[A83T]] / [[A64]] / [[H3]] hwspinlock WIP Corentin Labbe (montjoie) [https://lore.kernel.org/patchwork/patch/706512/ RFC,1/3][https://lore.kernel.org/patchwork/patch/706511/ RFC,2/3][https://lore.kernel.org/patchwork/patch/706513/ RFC,3/3]<br />
* [[A10]] / [[A20]] / [[A31]] HDMI Audio WIP Stefan Mavrodiev [https://lore.kernel.org/patchwork/cover/1177803/ Add support for sun4i HDMI audio]<br />
* [[A80]] Thermal sensor WIP Philipp Rossak (embed-3d): https://github.com/embed-3d/linux/branches/all<br />
* [[R40]] PWM (WIP Hao Zhang [https://www.spinics.net/lists/kernel/msg2731498.html patch-v2])<br />
* [[A31]]/[[A31s]] PWM support (WiP: Siarhei Volkau [http://lists.infradead.org/pipermail/linux-arm-kernel/2017-February/486405.html patch-v1])<br />
* [[A20]] Keypad (WiP: Yassin Jaffer (ddc) [http://lists.infradead.org/pipermail/linux-arm-kernel/2015-September/370079.html patch])<br />
<br />
=== Drivers that can still be improved/added ===<br />
<br />
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.<br />
<br />
* sunxi-musb driver lacks DMA support (with current driver, USB gadgets are limited to PIO, limiting speed to 10MiB/s and causing large CPU)<br />
* DE2 driver has buggy layer support, see [https://patchwork.kernel.org/patch/11145803/]<br />
* DE1/DE2/DE3 writeback support<br />
* A64 audiocodec driver components (sun8i-codec and sun50i-codec-analog) lack support for jack detection<br />
<br />
== Planned for 5.11 ==<br />
New Devices Supported<br />
*[[H3]]<br />
** [[FriendlyArm ZeroPi]]<br />
*[[H6]]<br />
** [[I2S]]<br />
<br />
== Planned for 5.10 ==<br />
*[[A100]]<br />
** Clocks<br />
** Pinctrl<br />
** [[I2C]]<br />
** Thermal (THS)<br />
<br />
*[[R40]]<br />
** DMA<br />
** GPU [[Mali]]<br />
** [[IR]]<br />
** [[SRAM Controller|SRAM]]<br />
** [[Video_Engine]] | [[Sunxi-Cedrus]]<br />
<br />
*[[V3s]]<br />
** Crypto<br />
** Ethernet<br />
** SimpleFB<br />
** [[SRAM Controller|SRAM]]<br />
<br />
New Devices Supported<br />
*[[A100]]<br />
** [[Perf1 board]]<br />
*[[S3l]]<br />
** [[PineCube]]<br />
<br />
== Merged into 5.9 ==<br />
* [[H5]]<br />
** DVFS<br />
<br />
== Merged into 5.8 ==<br />
* [[H6]]<br />
** DVFS<br />
** IOMMU<br />
<br />
* [[A64]] / [[A83T]] / [[H3]] / [[H5]] / [[H6]]<br />
** Message Box<br />
<br />
== Merged into 5.7 ==<br />
*[[A20]]<br />
** LVDS<br />
<br />
*[[A83T]] and [[A64]]<br />
** Rotate driver<br />
<br />
*[[H6]]<br />
** SPI<br />
<br />
*[[R40]]<br />
** Thermal<br />
<br />
New Devices Supported<br />
*[[A13]]<br />
** [[PocketBook Touch Lux 3]]<br />
*[[A64]]<br />
** [[PineTab]]<br />
** [[PinePhone]]<br />
*[[A20]]<br />
** Linutronix Testbox v2<br />
<br />
== Merged into 5.6 ==<br />
* [[A10]]<br />
** CSI (BT656 and Parallel)<br />
<br />
*[[A64]]<br />
** MIPI DSI<br />
** DVFS<br />
<br />
*[[A64]] / [[A83T]] / [[H3]] / [[H5]] / [[H6]]<br />
** Thermal<br />
<br />
*[[H6]]<br />
** PWM<br />
<br />
*[[H3]] / [[H5]] / [[H6]] / [[R40]]<br />
**PMU<br />
<br />
*[[R40]]<br />
** CSI (BT656 and Parallel)<br />
** SPI<br />
<br />
New Devices Supported<br />
* [[H5]]<br />
** ALL-H3-IT H5 board<br />
** ALL-H5-CC H5 board<br />
* [[H6]]<br />
** [[PineH64]] Model A<br />
<br />
== Merged into 5.5 ==<br />
*[[H3]]<br />
** Deinterlace driver<br />
<br />
*[[H6]]<br />
**Crypto<br />
**GPU(3D) Mali<br />
**USB3 PHY (for boards not needing vbus switching)<br />
<br />
*[[A64]] / [[A80]] / [[A83T]] / [[H3]] / [[H5]] / [[R40]] <br />
**Crypto<br />
<br />
* multiple SoCs<br />
** [[Cedrus]] HEVC/H.265<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** Emlid Neutis<br />
<br />
New Devices Supported<br />
* [[H3]]<br />
** [[FriendlyARM_NanoPi_Duo2]]<br />
<br />
== Merged into 5.4 (LTS)==<br />
* [[A20]]<br />
** CSI (BT656 and Parallel)<br />
* [[A64]]<br />
** IR<br />
* [[H6]]<br />
** IR<br />
** RTC<br />
** SPDIF<br />
New Devices Supported<br />
* [[A64]]<br />
** [[Olimex A64-OLinuXino]] eMMC<br />
* [[H6]]<br />
** [[Tanix TX6]]<br />
* [[S3]]<br />
** [[Lichee Zero Plus]]<br />
<br />
== Merged into 5.3 ==<br />
* [[A64]]<br />
** LRADC<br />
** RGB LCD<br />
* [[A83T]]<br />
** CSI (BT656 and Parallel)<br />
* [[H6]]<br />
** DMA<br />
** Watchdog<br />
* multiple SoCs<br />
** [[Cedrus]] h264<br />
<br />
== Merged into 5.2 ==<br />
* [[A83T]]<br />
** LRADC<br />
** USB OTG<br />
<br />
* [[H6]]<br />
** [[Cedrus]]<br />
<br />
* multiple SoCs<br />
** [[Mali Open Source Driver|Lima]]<br />
** [[Mali Open Source Driver|Panfrost]]<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** Banana-Pi-M2-Zero<br />
<br />
New Devices Supported<br />
* [[H6]]<br />
** [[Beelink GS1]]<br />
** [[Xunlong Orange Pi 3]]<br />
<br />
== Merged into 5.1 ==<br />
* A10<br />
** Cedrus<br />
** PMU<br />
<br />
* A20<br />
** Audio Codec improvements<br />
<br />
* A23<br />
** Display pipeline<br />
** LCD enabled on Q8 A23 tablets<br />
<br />
* A64<br />
** [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c950ca8c35eeb32224a63adc47e12f9e226da241 ARM Architectural Timer errata workaround]<br />
** PMU<br />
** CSI (BT656 and Parallel)<br />
<br />
* A80<br />
** GMAC support<br />
<br />
* CSI in general<br />
** RGR565 support<br />
** JPEG pass-through support<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** [[Banana Pi M2+]]<br />
** [[Banana Pi M2 Ultra]]<br />
<br />
* [[LCD]] enabled on [[A13]] [[Q8]] tablets<br />
<br />
== Merged into 5.0 ==<br />
* A64<br />
** Cedrus<br />
** DTS changes for audio codec<br />
<br />
* F1C100s<br />
** initial F1C100s support<br />
<br />
* H6<br />
** Ethernet<br />
** DE3/HDMI support<br />
** USB 2.0<br />
<br />
* H3 / H5<br />
** CSI (BT656 and Parallel) Support<br />
<br />
* H5<br />
** Cedrus<br />
<br />
* R40<br />
** RTC<br />
<br />
* T3<br />
** initial T3 support<ref>https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b7badd1d7aa61087010803affa19bb83fb5a0af1</ref><br />
<br />
* V3s<br />
** CSI (BT656 and Parallel) Support<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** [[Sinovoip Banana Pi M2 Magic | Banana Pi M2 Magic]]<br />
** [[Banana Pi M3]]<br />
** [[Banana Pi M64]]<br />
** [[Cubietruck]]<br />
** [[Cubietech_Cubietruck_Plus|Cubietruck Plus]]<br />
<br />
New Devices Supported<br />
* [[Xunlong Orange Pi Lite 2]]<br />
<br />
== Merged into 4.20 ==<br />
<br />
* A13 / A20 / A33 / H3<br />
** Cedrus driver<br />
<br />
* A83T<br />
** IR receiver<br />
<br />
* A64<br />
** Cleanup for device tree files<br />
** HDMI support<br />
** Audio codec support (DTS changes will be merged in 5.0)<br />
<br />
* H3 / H5<br />
** SID<br />
<br />
* R40<br />
** SATA<br />
<br />
New Devices Supported<br />
* [[Pine64]] LTS<br />
* [[Xunlong Orange Pi One Plus]]<br />
* [[Xunlong Orange Pi Zero Plus 2]] (H3 variant)<br />
* [[Sinovoip Banana Pi M2+]] (H5 variant)<br />
<br />
== Merged into 4.19 (LTS)==<br />
<br />
* A10 / A13 / A20 / A23 / A33<br />
** SRAM controller / system control<br />
<br />
* A64<br />
** SRAM controller / system control<br />
** Display clocks and bus<br />
** RTC clock output<br />
** PWM<br />
** R_I2C<br />
<br />
* H3<br />
** SRAM controller / system control<br />
<br />
* H6<br />
** MMC<br />
** PMIC<br />
<br />
* R40<br />
** HDMI support<br />
<br />
Board Changes<br />
* SPI flash node for [[Orange Pi PC 2]] and [[Pine64#Variants | Pine64 SoPINE]]<br />
* Use lid switch as wake-up source for A64 based laptops<br />
* LEDs added for [[PineH64]]<br />
<br />
New Devices<br />
* [[Pine Pinebook]]<br />
* Amarula A64-Relic<br />
<br />
== Changes merged up to 4.18 ==<br />
Changes up to 4.18 can be found on [[Linux mainlining history]] page.<br />
<br />
=References=<br />
<references /><br />
<br />
= See also =<br />
* [[Mainline Kernel Howto]]<br />
* [[Possible setups for hacking on mainline]]<br />
* [[Linux Kernel]]<br />
**[[Toolchain]]<br />
<br />
=External Links=<br />
* [http://www.kernel.org kernel.org] - Official website for the Linux Kernel<br />
** [http://github.com/torvalds/linux http://github.com/torvalds/linux] - Linus Torvalds' GitHub account with the upstream Linux kernel<br />
* [http://www.kernel.org/doc/ Linux Kernel documentation index]<br />
* [http://www.kernel.org/doc/man-pages/ Linux Kernel man pages]<br />
* [http://kernelnewbies.org/ Kernel Newbies Site - Excellent source of information for people new to kernel]<br />
* [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=summary Linus' kernel tree for 2.6]<br />
* [https://bugzilla.kernel.org/ Kernel bugzilla] - [https://bugzilla.kernel.org/show_bug.cgi?id=15790 Regressions for each of recent versions]<br />
* [http://www.fsfla.org/svnwiki/selibre/linux-libre/ Linux-libre project - Maintains and distributes fully free kernel]<br />
* [http://lingrok.org/ LinGrok, Linux kernel source code cross-reference]<br />
* [https://elixir.bootlin.com/linux/latest/source?a=arm Bootlin LXR (Linux Cross Reference)]<br />
* [http://lists.infradead.org/pipermail/linux-arm-kernel/ linux-arm-kernel - Mailing list archive]<br />
===How to upstream===<br />
* [http://www.elinux.org/images/a/ad/Arm-soc-checklist.pdf Your new ARM SoC Linux support check-list! by Thomas Petazzoni of Bootlin]<br />
*[http://www.cnx-software.com/2014/03/04/linux-kernel-upstreaming-how-to-linaro-connect-asia-2014/ Linux Kernel Upstreaming How-To (CNXSoft - Embedded Software Development)]<br />
**[http://www.youtube.com/watch?v=dY7fikYZ42c Matt Porter's YouTube video talk on “Upstreaming 101" (LCA14-111)]<br />
***[http://www.linaro.org/documents/download/65f888c674508efcf9bd5d90398a186a530d01c4c78db Matt Porter's presentation slides for “Upstreaming 101" (LCA14-111)]<br />
**[https://www.youtube.com/watch?v=FiQ5uV_Mm5c Matt Porter's YouTube video talk on “Upstreaming 201" (LCA14-112)]<br />
***[http://www.linaro.org/documents/download/7b9920fcc89589bad9063d87d9137f08530d020b71924 Matt Porter's presentation slides for “Upstreaming 201" (LCA14-112)]<br />
*[http://www.cnx-software.com/2011/08/19/how-to-write-and-submit-a-linux-kernel-patch/ How to Write and Submit a Linux Kernel Patch (CNXSoft - Embedded Software Development)]<br />
** [http://www.youtube.com/watch?v=LLBrBBImJt4 YouTube Video- Write and Submit your first Linux kernel Patch]<br />
** [http://www.cnx-software.com/pdf/kernel-tutorial/kernel_patch_tutorial.pdf Greg Kroah-Hartman Kernel Tutorial Write and Submit your first Linux Kernel Patch]<br />
*[http://www.linaro.org/connect-lca14/resources Linaro resources page from LCA (Linaro Connect Asia) 2014]<br />
<br />
=Notes=<br />
<references group=note /><br />
<br />
[[Category:Development]]</div>
Frozeus
https://linux-sunxi.org/index.php?title=Linux_mainlining_effort&diff=23833
Linux mainlining effort
2020-12-15T09:36:54Z
<p>Frozeus: /* Planned for 5.10 */</p>
<hr />
<div>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.<br />
<br />
=Overview=<br />
The idea is to submit the code needed to run the Linux kernel on Allwinner SoCs upstream, ie. to the official Linux kernel.<br />
<br />
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.<ref>http://www.elinux.org/images/a/ad/Arm-soc-checklist.pdf</ref><ref>[http://www.cnx-software.com/2013/01/16/your-new-arm-soc-linux-support-check-list-elce-2012/ Your New ARM SoC Linux Support Check-List – ELCE 2012]</ref><br />
<br />
Where relevant, I have attempted to include who is currently working on an item, mostly separate from any particular mainlining goal.<br />
<br />
=Status=<br />
<br />
The [[Mainline_Kernel_Howto|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|Mainline U-Boot howto]].<br />
<br />
The [[:Category:Mainline_Kernel | Mainline Kernel category ]] gives an overview of currently supported devices.<br />
<br />
== Status Matrix ==<br />
<br />
The goal of this matrix is to give an easy view of work on each SoC worked on by linux-sunxi.<br />
<br />
{| class="wikitable" style="text-align: center; width: 100%;"<br />
|-<br />
! style="width: 13%; text-align: left;" colspan="2" | Model<br />
! [[F1C100s|F1C-<br>100s]]<br />
! [[A10]]<br />
! [[A10s]]<br />
! [[A13]]<br>[[R8]]<br />
! [[A20]]<br>[[T2]]<br />
! [[A23]]<br />
! [[A31]]<br />
! [[A33]]<br>[[R16]]<br />
! [[A64]]<br />
! [[A80]]<br />
! [[A83T]]<br />
! [[A100]]<br />
! [[GR8]]<br />
! [[H3]]<br />
! [[H5]]<br />
! [[H6]]<br />
! [[R40]]<br>[[T3]]<br />
! [[V3]]|[[V3s]]<br>[[S3]]|[[S3L]]<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | AC97<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[Audio Codec]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 5.0<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" rowspan="3" | ADC<br />
| style="text-align: left;" | GPADC<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| N/A<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.12<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | Thermal<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: darkgreen;" | ?<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.7<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | Touch<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.16<br />
| N/A<br />
| style="background: lightgreen;" | 4.0<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| rowspan="4" style="text-align: left;" | [[CSI|Camera]]<br />
<br />
| style="text-align: left;" | BT656<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: grey; color: white;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.0<br />
<br />
|-<br />
| style="text-align: left;" | ISP<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | MIPI CSI-2<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
<br />
|-<br />
| style="text-align: left;" | Parallel<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: grey; color: white;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.0<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Clocks<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.10<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.10<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | CPUFreq (DVFS)<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: lightgreen;" | 5.9<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[Cryptographic_Hardware_Accelerators|Crypto]]<br />
| N/A<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.10<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Display (SimpleFB)<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen" | 4.16<br />
| style="background: lightgreen" | 4.16<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.10<br />
<br />
|-<br />
| rowspan="8" style="text-align: left;" | Display<br />
([https://dri.freedesktop.org/wiki/DRM/ DRM])<br />
<br />
| style="text-align: left;" | CVBS<br />
| style="background: red;" | NO<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9 ?<br />
| style="background: lightgreen;" | 4.7<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | HDMI Audio<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | HDMI CEC<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.14<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 4.19<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | HDMI Video<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.13<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.19<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | LVDS<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.7<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | MIPI DSI<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | RGB<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.7<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" | VGA<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | DMA<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" rowspan="2" | [[Ethernet]]<br />
| style="text-align: left;" | [[Ethernet#EMAC|EMAC]]<br />
| rowspan="2"| N/A<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.11<br />
| rowspan="2"| N/A<br />
| style="background: lightgreen;" | 3.11 <br />
| rowspan="2"| N/A<br />
| N/A<br />
| rowspan="2"| N/A<br />
| style="background: lightgreen;" rowspan="2" | 4.15<br />
| style="background: lightgreen;" rowspan="2" | 5.1<br />
| style="background: lightgreen;" rowspan="2" | 4.16<br />
| style="background: grey; color: white;" | ?<br />
| rowspan="2"| N/A<br />
| style="background: lightgreen;" rowspan="2" | 4.15<br />
| style="background: lightgreen;" rowspan="2" | 4.15<br />
| style="background: lightgreen;" rowspan="2" | 5.0<br />
| style="background: lightgreen;" rowspan="2" | 4.18<br />
| style="background: lightgreen;" rowspan="2" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" | [[Ethernet#GMAC|GMAC]]<br />
<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: grey; color: white;" | ?<br />
<br />
|-<br />
| style="text-align: left;" rowspan="2" | GPU(3D)<br />
| style="text-align: left;" | [[Mali]]<br />
| N/A<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.10<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | [[PowerVR]]<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | HW Spinlocks<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[I2C]]<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.13<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | I2S<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | IOMMU<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.8<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[IR]]<br />
| style="background: red" | NO<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 3.17<br />
| N/A<br />
| style="background: lightgreen;" | 4.0<br />
| N/A<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.10<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Keypad<br />
| N/A<br />
| style="background: orange;" | WIP<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | WIP<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | LRADC<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | MsgBox<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: lightgreen;" | 5.8<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[NAND]]<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 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 [[MTD_Driver#Challenges|this page]] </ref><br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9 <ref name="mlc"/><br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9 <ref name="mlc" /><br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9 <ref name="mlc" /><br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: red;" | NO<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | PCIe<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<ref name="h6-pcie">Allwinner H6 has a quirky PCIe controller that doesn't map the PCIe address space properly to CPU,<br />
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/</ref><br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Pinctrl<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[PMU]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: grey; color: white;" | ?<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[PWM_Controller|PWM]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.12<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[RSB]]<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.4<br />
| N/A<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[RTC]]<br />
| N/A<br />
| style="background: lightgreen;" | 3.14<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.10<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SATA]]<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | SD/ [[eMMC|MMC]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | SMP<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SPDIF]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.7<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.7<br />
| N/A<br />
| style="background: lightgreen;" | 4.9<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SPIdev|SPI]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.7<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SRAM Controller|SRAM]]<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 4.19<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 5.0 <br />
| style="background: lightgreen;" | 5.1 <br />
| style="background: lightgreen;" | 5.10<br />
| style="background: lightgreen;" | 5.10<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[USB]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[USB_OTG_Controller_Register_guide#USB_OTG|USB OTG]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | USB3<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red" | NO<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.5<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[Video_Engine|VE]] | [[Sunxi-Cedrus]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: grey; color: white;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.2 <br />
| style="background: lightgreen;" | 5.10<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Watchdog<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
! style="text-align: left;" colspan="2" | Model<br />
! [[F1C100s|F1C-<br>100s]]<br />
! [[A10]]<br />
! [[A10s]]<br />
! [[A13]]<br />
[[R8]]<br />
! [[A20]]<br>[[T2]]<br />
! [[A23]]<br />
! [[A31]]<br />
! [[A33]]<br />
[[R16]]<br />
! [[A64]]<br />
! [[A80]]<br />
! [[A83T]]<br />
| [[A100]]<br />
! [[GR8]]<br />
! [[H3]]<br />
! [[H5]]<br />
! [[H6]]<br />
! [[R40]]<br />
[[T3]]<br />
! [[V3]]|[[V3s]]<br>[[S3]]|[[S3L]]<br />
<br />
|}<br />
<br />
<br />
{| class="wikitable" style="text-align: center;"<br />
|-<br />
! Legend<br />
|-<br />
| style="background: lightgreen;" | In Linux mainline since version x<br />
|-<br />
| style="background: darkgreen;" | Nobody works on it, but it should be compatible with already done drivers<br />
|-<br />
| style="background: orange;" | Somebody works on it<br />
|-<br />
| style="background: red;" | No support, nobody works on it<br />
|-<br />
| style="background: black; color: white;" | support impossible<br />
|-<br />
| style="background: grey; color: white;" | Status is unknown/to be completed<br />
|}<br />
<br />
== Work In Progress ==<br />
<br />
=== Core Stuff ===<br />
*[[V831]] / [[V833]] Clocks & Pinctrl / RTC / MMC / Watchdog / SPI - Icenowy Zheng [https://patchwork.kernel.org/project/linux-arm-kernel/cover/20201212040157.3639864-1-icenowy@aosc.io/ Support for Allwinner V831 SoC]<br />
<br />
*[[H616]] Clocks & Pinctrl Andre Przywara [https://patchwork.kernel.org/project/linux-arm-kernel/cover/20201202135409.13683-1-andre.przywara@arm.com/ arm64: sunxi: Initial Allwinner H616 SoC support]<br />
<br />
*[[AR100]] firmware (WiP: Samuel Holland) [https://github.com/crust-firmware/crust ARISC firmware for sunxi SoCs ]<br />
<br />
* [[A13]] PSCI Suspend / Resume / CPUIdle (WiP: Antoine Tenart) [http://lists.denx.de/pipermail/u-boot/2016-September/265453.html patch-v1]<br />
<br />
=== Major drivers ===<br />
* [[A100]] DMA/PMU/Watchdog/USB2/USB OTG/MMC(eMMC, SD) Frank Lee [https://patchwork.kernel.org/project/linux-arm-kernel/cover/cover.1604988979.git.frank@allwinnertech.com/ Second step support for A100]<br />
<br />
* [[A83T]]/[[V3s]] MIPI CSI-2 Paul Kocialkowski [https://patchwork.kernel.org/project/linux-arm-kernel/list/?series=369649 Allwinner MIPI CSI-2 support for A31/V3s/A83T ]<br />
<br />
* [[H6]] Hypervisor for PCIe [https://forum.armbian.com/topic/13529-a-try-on-utilizing-h6-pcie-with-virtualization/ A try on utilizing H6 PCIe with "Virtualization"]<br />
<br />
* [[A64]] / [[H3]] / [[H5]] / [[H6]] HDMI Audio - Clément Péron / Marcus Cooper / Jernej Škrabec [https://patchwork.kernel.org/cover/11510511/ Add Allwinner H3/H5/A64 HDMI audio]<br />
<br />
* [[R40]] MIPI-DSI WIP Jagan Teki [https://patchwork.kernel.org/cover/11314031/ drm/sun4i: Allwinner R40 MIPI-DSI support v3] <br />
<br />
* [[AC100]] Audio codec WiP Ondrej Jirman [https://megous.com/git/linux/commit/?h=orange-pi-5.5&id=170d38d650f67657600d4e0e868e0e7110b89ee1 digital part] [https://megous.com/git/linux/commit/?h=orange-pi-5.5&id=ee424255a6fb9280ac27c1953019b768ca973ca7 analog part]<br />
<br />
* [[F1C100s]] USB WIP George Hilliard [https://lore.kernel.org/patchwork/cover/1206936/ Support the Allwinner F1C100s USB stack]<br />
<br />
* [[V3s]] SRAM & Video Decoding Engine (Cedrus) WiP Martin Cerveny [https://patchwork.kernel.org/project/linux-arm-kernel/list/?series=347787 Enable video decoder] ([https://github.com/mcerveny/linux/commits/v3s_videocodec_v4 testing with attached LCD])<br />
<br />
=== Minor drivers ===<br />
<!-- Please move the newest entry to the top --><br />
* [[H6]] RSB Samuel Holland [https://patchwork.kernel.org/project/linux-arm-kernel/cover/20201213235506.25201-1-samuel@sholland.org/ Allwinner H6 RSB support]<br />
* [[A100]] CPUFreq (DVFS) Shuosheng Huang [https://patchwork.kernel.org/project/linux-arm-kernel/list/?series=396055&archive=both&state=* cpufreq: sun50i: add a100 cpufreq support]<br />
* [[A64]] hwspinlock WIP Nikolay Borisov [https://patchwork.kernel.org/cover/11373645/ Add support for hwspinlock on A64 SoC] <br />
* [[A83T]] / [[A64]] / [[H3]] hwspinlock WIP Corentin Labbe (montjoie) [https://lore.kernel.org/patchwork/patch/706512/ RFC,1/3][https://lore.kernel.org/patchwork/patch/706511/ RFC,2/3][https://lore.kernel.org/patchwork/patch/706513/ RFC,3/3]<br />
* [[A10]] / [[A20]] / [[A31]] HDMI Audio WIP Stefan Mavrodiev [https://lore.kernel.org/patchwork/cover/1177803/ Add support for sun4i HDMI audio]<br />
* [[A80]] Thermal sensor WIP Philipp Rossak (embed-3d): https://github.com/embed-3d/linux/branches/all<br />
* [[R40]] PWM (WIP Hao Zhang [https://www.spinics.net/lists/kernel/msg2731498.html patch-v2])<br />
* [[A31]]/[[A31s]] PWM support (WiP: Siarhei Volkau [http://lists.infradead.org/pipermail/linux-arm-kernel/2017-February/486405.html patch-v1])<br />
* [[A20]] Keypad (WiP: Yassin Jaffer (ddc) [http://lists.infradead.org/pipermail/linux-arm-kernel/2015-September/370079.html patch])<br />
<br />
=== Drivers that can still be improved/added ===<br />
<br />
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.<br />
<br />
* sunxi-musb driver lacks DMA support (with current driver, USB gadgets are limited to PIO, limiting speed to 10MiB/s and causing large CPU)<br />
* DE2 driver has buggy layer support, see [https://patchwork.kernel.org/patch/11145803/]<br />
* DE1/DE2/DE3 writeback support<br />
* A64 audiocodec driver components (sun8i-codec and sun50i-codec-analog) lack support for jack detection<br />
<br />
== Planned for 5.11 ==<br />
New Devices Supported<br />
*[[H3]]<br />
** [[FriendlyArm ZeroPi]]<br />
*[[H6]]<br />
** [[I2S]]<br />
<br />
== Planned for 5.10 ==<br />
*[[A100]]<br />
** Clocks<br />
** Pinctrl<br />
** [[I2C]]<br />
** Thermal (THS)<br />
<br />
*[[R40]]<br />
** DMA<br />
** GPU [[Mali]]<br />
** [[IR]]<br />
** [[SRAM Controller|SRAM]]<br />
** [[Video_Engine]] | [[Sunxi-Cedrus]]<br />
<br />
*[[V3s]]<br />
** Crypto<br />
** Ethernet<br />
** SimpleFB<br />
** [[SRAM Controller|SRAM]]<br />
<br />
New Devices Supported<br />
*[[A100]]<br />
** [[Perf1 board]]<br />
<br />
== Merged into 5.9 ==<br />
* [[H5]]<br />
** DVFS<br />
<br />
== Merged into 5.8 ==<br />
* [[H6]]<br />
** DVFS<br />
** IOMMU<br />
<br />
* [[A64]] / [[A83T]] / [[H3]] / [[H5]] / [[H6]]<br />
** Message Box<br />
<br />
== Merged into 5.7 ==<br />
*[[A20]]<br />
** LVDS<br />
<br />
*[[A83T]] and [[A64]]<br />
** Rotate driver<br />
<br />
*[[H6]]<br />
** SPI<br />
<br />
*[[R40]]<br />
** Thermal<br />
<br />
New Devices Supported<br />
*[[A13]]<br />
** [[PocketBook Touch Lux 3]]<br />
*[[A64]]<br />
** [[PineTab]]<br />
** [[PinePhone]]<br />
*[[A20]]<br />
** Linutronix Testbox v2<br />
<br />
== Merged into 5.6 ==<br />
* [[A10]]<br />
** CSI (BT656 and Parallel)<br />
<br />
*[[A64]]<br />
** MIPI DSI<br />
** DVFS<br />
<br />
*[[A64]] / [[A83T]] / [[H3]] / [[H5]] / [[H6]]<br />
** Thermal<br />
<br />
*[[H6]]<br />
** PWM<br />
<br />
*[[H3]] / [[H5]] / [[H6]] / [[R40]]<br />
**PMU<br />
<br />
*[[R40]]<br />
** CSI (BT656 and Parallel)<br />
** SPI<br />
<br />
New Devices Supported<br />
* [[H5]]<br />
** ALL-H3-IT H5 board<br />
** ALL-H5-CC H5 board<br />
* [[H6]]<br />
** [[PineH64]] Model A<br />
<br />
== Merged into 5.5 ==<br />
*[[H3]]<br />
** Deinterlace driver<br />
<br />
*[[H6]]<br />
**Crypto<br />
**GPU(3D) Mali<br />
**USB3 PHY (for boards not needing vbus switching)<br />
<br />
*[[A64]] / [[A80]] / [[A83T]] / [[H3]] / [[H5]] / [[R40]] <br />
**Crypto<br />
<br />
* multiple SoCs<br />
** [[Cedrus]] HEVC/H.265<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** Emlid Neutis<br />
<br />
New Devices Supported<br />
* [[H3]]<br />
** [[FriendlyARM_NanoPi_Duo2]]<br />
<br />
== Merged into 5.4 (LTS)==<br />
* [[A20]]<br />
** CSI (BT656 and Parallel)<br />
* [[A64]]<br />
** IR<br />
* [[H6]]<br />
** IR<br />
** RTC<br />
** SPDIF<br />
New Devices Supported<br />
* [[A64]]<br />
** [[Olimex A64-OLinuXino]] eMMC<br />
* [[H6]]<br />
** [[Tanix TX6]]<br />
* [[S3]]<br />
** [[Lichee Zero Plus]]<br />
<br />
== Merged into 5.3 ==<br />
* [[A64]]<br />
** LRADC<br />
** RGB LCD<br />
* [[A83T]]<br />
** CSI (BT656 and Parallel)<br />
* [[H6]]<br />
** DMA<br />
** Watchdog<br />
* multiple SoCs<br />
** [[Cedrus]] h264<br />
<br />
== Merged into 5.2 ==<br />
* [[A83T]]<br />
** LRADC<br />
** USB OTG<br />
<br />
* [[H6]]<br />
** [[Cedrus]]<br />
<br />
* multiple SoCs<br />
** [[Mali Open Source Driver|Lima]]<br />
** [[Mali Open Source Driver|Panfrost]]<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** Banana-Pi-M2-Zero<br />
<br />
New Devices Supported<br />
* [[H6]]<br />
** [[Beelink GS1]]<br />
** [[Xunlong Orange Pi 3]]<br />
<br />
== Merged into 5.1 ==<br />
* A10<br />
** Cedrus<br />
** PMU<br />
<br />
* A20<br />
** Audio Codec improvements<br />
<br />
* A23<br />
** Display pipeline<br />
** LCD enabled on Q8 A23 tablets<br />
<br />
* A64<br />
** [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c950ca8c35eeb32224a63adc47e12f9e226da241 ARM Architectural Timer errata workaround]<br />
** PMU<br />
** CSI (BT656 and Parallel)<br />
<br />
* A80<br />
** GMAC support<br />
<br />
* CSI in general<br />
** RGR565 support<br />
** JPEG pass-through support<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** [[Banana Pi M2+]]<br />
** [[Banana Pi M2 Ultra]]<br />
<br />
* [[LCD]] enabled on [[A13]] [[Q8]] tablets<br />
<br />
== Merged into 5.0 ==<br />
* A64<br />
** Cedrus<br />
** DTS changes for audio codec<br />
<br />
* F1C100s<br />
** initial F1C100s support<br />
<br />
* H6<br />
** Ethernet<br />
** DE3/HDMI support<br />
** USB 2.0<br />
<br />
* H3 / H5<br />
** CSI (BT656 and Parallel) Support<br />
<br />
* H5<br />
** Cedrus<br />
<br />
* R40<br />
** RTC<br />
<br />
* T3<br />
** initial T3 support<ref>https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b7badd1d7aa61087010803affa19bb83fb5a0af1</ref><br />
<br />
* V3s<br />
** CSI (BT656 and Parallel) Support<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** [[Sinovoip Banana Pi M2 Magic | Banana Pi M2 Magic]]<br />
** [[Banana Pi M3]]<br />
** [[Banana Pi M64]]<br />
** [[Cubietruck]]<br />
** [[Cubietech_Cubietruck_Plus|Cubietruck Plus]]<br />
<br />
New Devices Supported<br />
* [[Xunlong Orange Pi Lite 2]]<br />
<br />
== Merged into 4.20 ==<br />
<br />
* A13 / A20 / A33 / H3<br />
** Cedrus driver<br />
<br />
* A83T<br />
** IR receiver<br />
<br />
* A64<br />
** Cleanup for device tree files<br />
** HDMI support<br />
** Audio codec support (DTS changes will be merged in 5.0)<br />
<br />
* H3 / H5<br />
** SID<br />
<br />
* R40<br />
** SATA<br />
<br />
New Devices Supported<br />
* [[Pine64]] LTS<br />
* [[Xunlong Orange Pi One Plus]]<br />
* [[Xunlong Orange Pi Zero Plus 2]] (H3 variant)<br />
* [[Sinovoip Banana Pi M2+]] (H5 variant)<br />
<br />
== Merged into 4.19 (LTS)==<br />
<br />
* A10 / A13 / A20 / A23 / A33<br />
** SRAM controller / system control<br />
<br />
* A64<br />
** SRAM controller / system control<br />
** Display clocks and bus<br />
** RTC clock output<br />
** PWM<br />
** R_I2C<br />
<br />
* H3<br />
** SRAM controller / system control<br />
<br />
* H6<br />
** MMC<br />
** PMIC<br />
<br />
* R40<br />
** HDMI support<br />
<br />
Board Changes<br />
* SPI flash node for [[Orange Pi PC 2]] and [[Pine64#Variants | Pine64 SoPINE]]<br />
* Use lid switch as wake-up source for A64 based laptops<br />
* LEDs added for [[PineH64]]<br />
<br />
New Devices<br />
* [[Pine Pinebook]]<br />
* Amarula A64-Relic<br />
<br />
== Changes merged up to 4.18 ==<br />
Changes up to 4.18 can be found on [[Linux mainlining history]] page.<br />
<br />
=References=<br />
<references /><br />
<br />
= See also =<br />
* [[Mainline Kernel Howto]]<br />
* [[Possible setups for hacking on mainline]]<br />
* [[Linux Kernel]]<br />
**[[Toolchain]]<br />
<br />
=External Links=<br />
* [http://www.kernel.org kernel.org] - Official website for the Linux Kernel<br />
** [http://github.com/torvalds/linux http://github.com/torvalds/linux] - Linus Torvalds' GitHub account with the upstream Linux kernel<br />
* [http://www.kernel.org/doc/ Linux Kernel documentation index]<br />
* [http://www.kernel.org/doc/man-pages/ Linux Kernel man pages]<br />
* [http://kernelnewbies.org/ Kernel Newbies Site - Excellent source of information for people new to kernel]<br />
* [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=summary Linus' kernel tree for 2.6]<br />
* [https://bugzilla.kernel.org/ Kernel bugzilla] - [https://bugzilla.kernel.org/show_bug.cgi?id=15790 Regressions for each of recent versions]<br />
* [http://www.fsfla.org/svnwiki/selibre/linux-libre/ Linux-libre project - Maintains and distributes fully free kernel]<br />
* [http://lingrok.org/ LinGrok, Linux kernel source code cross-reference]<br />
* [https://elixir.bootlin.com/linux/latest/source?a=arm Bootlin LXR (Linux Cross Reference)]<br />
* [http://lists.infradead.org/pipermail/linux-arm-kernel/ linux-arm-kernel - Mailing list archive]<br />
===How to upstream===<br />
* [http://www.elinux.org/images/a/ad/Arm-soc-checklist.pdf Your new ARM SoC Linux support check-list! by Thomas Petazzoni of Bootlin]<br />
*[http://www.cnx-software.com/2014/03/04/linux-kernel-upstreaming-how-to-linaro-connect-asia-2014/ Linux Kernel Upstreaming How-To (CNXSoft - Embedded Software Development)]<br />
**[http://www.youtube.com/watch?v=dY7fikYZ42c Matt Porter's YouTube video talk on “Upstreaming 101" (LCA14-111)]<br />
***[http://www.linaro.org/documents/download/65f888c674508efcf9bd5d90398a186a530d01c4c78db Matt Porter's presentation slides for “Upstreaming 101" (LCA14-111)]<br />
**[https://www.youtube.com/watch?v=FiQ5uV_Mm5c Matt Porter's YouTube video talk on “Upstreaming 201" (LCA14-112)]<br />
***[http://www.linaro.org/documents/download/7b9920fcc89589bad9063d87d9137f08530d020b71924 Matt Porter's presentation slides for “Upstreaming 201" (LCA14-112)]<br />
*[http://www.cnx-software.com/2011/08/19/how-to-write-and-submit-a-linux-kernel-patch/ How to Write and Submit a Linux Kernel Patch (CNXSoft - Embedded Software Development)]<br />
** [http://www.youtube.com/watch?v=LLBrBBImJt4 YouTube Video- Write and Submit your first Linux kernel Patch]<br />
** [http://www.cnx-software.com/pdf/kernel-tutorial/kernel_patch_tutorial.pdf Greg Kroah-Hartman Kernel Tutorial Write and Submit your first Linux Kernel Patch]<br />
*[http://www.linaro.org/connect-lca14/resources Linaro resources page from LCA (Linaro Connect Asia) 2014]<br />
<br />
=Notes=<br />
<references group=note /><br />
<br />
[[Category:Development]]</div>
Frozeus
https://linux-sunxi.org/index.php?title=Beelink_GS1&diff=23782
Beelink GS1
2020-12-06T13:20:01Z
<p>Frozeus: /* Manual build */</p>
<hr />
<div>{{Infobox Board<br />
| image = [[File:Beelink_GS1_above.jpg|250px]]<br />
| manufacturer = [http://www.azw-online.com Shenzhen AZW Technology]<br />
| dimensions = 100''mm'' x 100''mm'' x 17''mm''<br />
| release_date = <br />
| website = <br />
| soc = [[H6]] @ 1.8Ghz<br />
| dram = 2GiB LPDDR3 @744 MHz, SpecTek SM512M32V01MD2LPF-107 or 3GiB LPDDR3<br />
| nand = 16GB (eMMC 5.0) Toshiba THGBMBG7D2KBAIL, or 32GB (eMMC 5.0) <br />
| power = DC 5V @ 2A, <br />
| video = HDMI (Type A - full)<br />
| audio = HDMI, SPDIF, <br />
| network = WiFi 802.11 b/g/n/ac ([https://www.fn-link.com/a-b-g-n-ac-wi-fi-bt-module/6222b-srb.html Fn-Link 6222B-PRB]), 10/100/1000Mbps Ethernet ([[Ethernet#Realtek_RTL8211E|Realtek RTL8211E]])<br />
| storage = µSD<br />
| usb = 1 USB2.0 Host, 1 USB3.0 HOST<br />
}}<br />
<br />
{{Remove_only_when_finished|This page needs to be properly filled according to the [[New_Device_howto |New Device Howto]] and the [[New_Device_page|New Device Page guide]].}}<br />
<br />
{{Remove|If a device is special, then feel free to provide a terse description of what makes this device so special. But terse, no novels, no marketing blurb.}}<br />
<br />
= Identification =<br />
On the bottom of the device, the following is printed:<br />
<pre>Model:Beelink GS1</pre><br />
<br />
The PCB has the following silkscreened on it:<br />
<pre>beelink<br />
GS1<br />
Ver:2.0</pre><br />
<br />
In android, under Settings->About Tablet, you will find:<br />
* Model Number: ''Beelink GS1''<br />
* Build Number: ''102NO''<br />
<br />
= Sunxi support =<br />
<br />
== Current status ==<br />
<br />
Beelink GS1 is currently supported by both mainline U-Boot and kernels.<br />
<br />
== Manual build ==<br />
<br />
You can build things for yourself by following our [[Manual_build_howto | Manual build howto]] and by choosing from the configurations available below.<br />
<br />
=== U-Boot ===<br />
<br />
==== Mainline U-Boot ====<br />
<br />
use the '''beelink_gs1_defconfig''' (supported since v2019.07) build target.<br />
<br />
Write u-boot-sunxi-with-spl.bin to an SD card with "dd if=u-boot-sunxi-with-spl.bin of=/dev/[SD] bs=1024 seek=8 conv=notrunc"<br />
<br />
=== Linux Kernel ===<br />
<br />
==== Sunxi/Legacy Kernel ====<br />
<br />
==== Mainline kernel ====<br />
use the '''sun50i-h6-beelink-gs1.dtb''' (kernel 5.2+).<br />
https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux.git/commit/?h=sunxi/for-next&id=089bee8dd119ba084dee6b17a2e1a53df4f30193<br />
<br />
= Tips, Tricks, Caveats =<br />
<br />
{{Remove|Add MANUFACTURER DEVICE specific tips, tricks, Caveats and nice to have changes here.}}<br />
<br />
== FEL mode ==<br />
<br />
The button on the bottom of the PCB triggers FEL mode (to be confirmed). It is reachable through a small hole in the bottom plastic cover. <br />
<br />
== {{Edit|Device specific topic}} ==<br />
<br />
{{Remove|If there are no further device specific topics to add, remove these sections.}}<br />
<br />
== {{Edit|...}} ==<br />
<br />
= Adding a serial port ('''voids warranty''') =<br />
<br />
[[File:Beelink_GS1_uart.jpg|thumb|240px|UART pads]]<br />
<br />
The GS1 UART runs at 3.3V levels, so you need a level converter (e.g. MAX3323) to connect the board to a regular serial port. Alternatively, a USB-to-UART adapter with 3.3V levels will also work. <br />
<br />
== Device disassembly ==<br />
<br />
The case is clipped together using plastic tabs on all four sides. Please see the [[Plastic_tool|Plastic tool howto]] for details of opening cases like these. The PCB is held in place by three small Philips-head screws. Make sure to remove the µSD card before taking out the PCB. <br />
<br />
== Locating the UART ==<br />
<br />
The UART (3.3V levels) is available on four solder holes (2mm spacing) next to the eMMC chip slot. Soldering in a header will void the warranty. <br />
<br />
With the square pad as pin 1 the pinout is as follows '''confirmed using USB-UART adapter''':<br />
<br />
* Pin 1: GND<br />
* Pin 2: RxD<br />
* Pin 3: TxD<br />
* Pin 4: 3v3<br />
<br />
= Pictures =<br />
<br />
<gallery><br />
File:Beelink_GS1_top.jpg<br />
File:Beelink_GS1_base.jpg<br />
File:Beelink_GS1_back.jpg<br />
File:Beelink_GS1_side.jpg<br />
File:Beelink_GS1_pcbtop.jpg<br />
File:Beelink_GS1_pcbbottom.jpg<br />
File:Beelink_GS1_heatsink.jpg<br />
File:Beelink_GS1_box.jpg<br />
</gallery><br />
<br />
= Also known as =<br />
<br />
There are currently no known rebadged devices. Update this section if you know otherwise. <br />
<br />
= See also =<br />
<br />
*[https://wikidevi.com/wiki/Beelink_GS1 Beelink_GS1 on 'wikidevi']<br />
*AXP805 Datasheet: [[File:AXP805_Datasheet_V1.0_en.pdf]]<br />
*H6 Datasheet: [[File:Allwinner_H6_V200_Datasheet_V1.1.pdf]]<br />
*H6 User Manual: [[File:Allwinner_H6_V200_User_Manual_V1.1.pdf]]<br />
*[https://forum.xda-developers.com/general/device-reviews-and-information/beelink-gs1-tv-box-review-beauty-beast-t3724795 xda-developers Review] <br />
<br />
== Manufacturer images ==<br />
<br />
{{Remove|Optional. Add non-sunxi images in this section.}}<br />
<br />
[[Category:Devices]]<br />
[[Category:H6 Boards]]<br />
[[Category:Devices with Ethernet port]]<br />
[[Category:Devices with HDMI port]]</div>
Frozeus
https://linux-sunxi.org/index.php?title=Beelink_GS1&diff=23781
Beelink GS1
2020-12-06T13:17:41Z
<p>Frozeus: /* Current status */</p>
<hr />
<div>{{Infobox Board<br />
| image = [[File:Beelink_GS1_above.jpg|250px]]<br />
| manufacturer = [http://www.azw-online.com Shenzhen AZW Technology]<br />
| dimensions = 100''mm'' x 100''mm'' x 17''mm''<br />
| release_date = <br />
| website = <br />
| soc = [[H6]] @ 1.8Ghz<br />
| dram = 2GiB LPDDR3 @744 MHz, SpecTek SM512M32V01MD2LPF-107 or 3GiB LPDDR3<br />
| nand = 16GB (eMMC 5.0) Toshiba THGBMBG7D2KBAIL, or 32GB (eMMC 5.0) <br />
| power = DC 5V @ 2A, <br />
| video = HDMI (Type A - full)<br />
| audio = HDMI, SPDIF, <br />
| network = WiFi 802.11 b/g/n/ac ([https://www.fn-link.com/a-b-g-n-ac-wi-fi-bt-module/6222b-srb.html Fn-Link 6222B-PRB]), 10/100/1000Mbps Ethernet ([[Ethernet#Realtek_RTL8211E|Realtek RTL8211E]])<br />
| storage = µSD<br />
| usb = 1 USB2.0 Host, 1 USB3.0 HOST<br />
}}<br />
<br />
{{Remove_only_when_finished|This page needs to be properly filled according to the [[New_Device_howto |New Device Howto]] and the [[New_Device_page|New Device Page guide]].}}<br />
<br />
{{Remove|If a device is special, then feel free to provide a terse description of what makes this device so special. But terse, no novels, no marketing blurb.}}<br />
<br />
= Identification =<br />
On the bottom of the device, the following is printed:<br />
<pre>Model:Beelink GS1</pre><br />
<br />
The PCB has the following silkscreened on it:<br />
<pre>beelink<br />
GS1<br />
Ver:2.0</pre><br />
<br />
In android, under Settings->About Tablet, you will find:<br />
* Model Number: ''Beelink GS1''<br />
* Build Number: ''102NO''<br />
<br />
= Sunxi support =<br />
<br />
== Current status ==<br />
<br />
Beelink GS1 is currently supported by both mainline U-Boot and kernels.<br />
<br />
== Manual build ==<br />
<br />
You can build things for yourself by following our [[Manual_build_howto | Manual build howto]] and by choosing from the configurations available below.<br />
<br />
=== U-Boot ===<br />
<br />
==== Sunxi/Legacy U-Boot ====<br />
<br />
Use the ''{{Edit|MANUFACTURER_DEVICE}}'' build target.<br />
<br />
==== Mainline U-Boot ====<br />
<br />
Planned for 2019.07 [https://git.denx.de/?p=u-boot/u-boot-sunxi.git;a=commit;h=517ee6420564ed40d53d49f1d2d96c71ad275c6a U-boot sunxi Git]<br />
<br />
=== Linux Kernel ===<br />
<br />
==== Sunxi/Legacy Kernel ====<br />
<br />
Use the [https://github.com/linux-sunxi/sunxi-boards/blob/master/sys_config/h6/beelink_gs1.fex beelink_gs1.fex] file.<br />
<br />
==== Mainline kernel ====<br />
<br />
since 5.2 : https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux.git/commit/?h=sunxi/for-next&id=089bee8dd119ba084dee6b17a2e1a53df4f30193<br />
<br />
= Tips, Tricks, Caveats =<br />
<br />
{{Remove|Add MANUFACTURER DEVICE specific tips, tricks, Caveats and nice to have changes here.}}<br />
<br />
== FEL mode ==<br />
<br />
The button on the bottom of the PCB triggers FEL mode (to be confirmed). It is reachable through a small hole in the bottom plastic cover. <br />
<br />
== {{Edit|Device specific topic}} ==<br />
<br />
{{Remove|If there are no further device specific topics to add, remove these sections.}}<br />
<br />
== {{Edit|...}} ==<br />
<br />
= Adding a serial port ('''voids warranty''') =<br />
<br />
[[File:Beelink_GS1_uart.jpg|thumb|240px|UART pads]]<br />
<br />
The GS1 UART runs at 3.3V levels, so you need a level converter (e.g. MAX3323) to connect the board to a regular serial port. Alternatively, a USB-to-UART adapter with 3.3V levels will also work. <br />
<br />
== Device disassembly ==<br />
<br />
The case is clipped together using plastic tabs on all four sides. Please see the [[Plastic_tool|Plastic tool howto]] for details of opening cases like these. The PCB is held in place by three small Philips-head screws. Make sure to remove the µSD card before taking out the PCB. <br />
<br />
== Locating the UART ==<br />
<br />
The UART (3.3V levels) is available on four solder holes (2mm spacing) next to the eMMC chip slot. Soldering in a header will void the warranty. <br />
<br />
With the square pad as pin 1 the pinout is as follows '''confirmed using USB-UART adapter''':<br />
<br />
* Pin 1: GND<br />
* Pin 2: RxD<br />
* Pin 3: TxD<br />
* Pin 4: 3v3<br />
<br />
= Pictures =<br />
<br />
<gallery><br />
File:Beelink_GS1_top.jpg<br />
File:Beelink_GS1_base.jpg<br />
File:Beelink_GS1_back.jpg<br />
File:Beelink_GS1_side.jpg<br />
File:Beelink_GS1_pcbtop.jpg<br />
File:Beelink_GS1_pcbbottom.jpg<br />
File:Beelink_GS1_heatsink.jpg<br />
File:Beelink_GS1_box.jpg<br />
</gallery><br />
<br />
= Also known as =<br />
<br />
There are currently no known rebadged devices. Update this section if you know otherwise. <br />
<br />
= See also =<br />
<br />
*[https://wikidevi.com/wiki/Beelink_GS1 Beelink_GS1 on 'wikidevi']<br />
*AXP805 Datasheet: [[File:AXP805_Datasheet_V1.0_en.pdf]]<br />
*H6 Datasheet: [[File:Allwinner_H6_V200_Datasheet_V1.1.pdf]]<br />
*H6 User Manual: [[File:Allwinner_H6_V200_User_Manual_V1.1.pdf]]<br />
*[https://forum.xda-developers.com/general/device-reviews-and-information/beelink-gs1-tv-box-review-beauty-beast-t3724795 xda-developers Review] <br />
<br />
== Manufacturer images ==<br />
<br />
{{Remove|Optional. Add non-sunxi images in this section.}}<br />
<br />
[[Category:Devices]]<br />
[[Category:H6 Boards]]<br />
[[Category:Devices with Ethernet port]]<br />
[[Category:Devices with HDMI port]]</div>
Frozeus
https://linux-sunxi.org/index.php?title=Beelink_GS1&diff=23780
Beelink GS1
2020-12-06T13:14:01Z
<p>Frozeus: </p>
<hr />
<div>{{Infobox Board<br />
| image = [[File:Beelink_GS1_above.jpg|250px]]<br />
| manufacturer = [http://www.azw-online.com Shenzhen AZW Technology]<br />
| dimensions = 100''mm'' x 100''mm'' x 17''mm''<br />
| release_date = <br />
| website = <br />
| soc = [[H6]] @ 1.8Ghz<br />
| dram = 2GiB LPDDR3 @744 MHz, SpecTek SM512M32V01MD2LPF-107 or 3GiB LPDDR3<br />
| nand = 16GB (eMMC 5.0) Toshiba THGBMBG7D2KBAIL, or 32GB (eMMC 5.0) <br />
| power = DC 5V @ 2A, <br />
| video = HDMI (Type A - full)<br />
| audio = HDMI, SPDIF, <br />
| network = WiFi 802.11 b/g/n/ac ([https://www.fn-link.com/a-b-g-n-ac-wi-fi-bt-module/6222b-srb.html Fn-Link 6222B-PRB]), 10/100/1000Mbps Ethernet ([[Ethernet#Realtek_RTL8211E|Realtek RTL8211E]])<br />
| storage = µSD<br />
| usb = 1 USB2.0 Host, 1 USB3.0 HOST<br />
}}<br />
<br />
{{Remove_only_when_finished|This page needs to be properly filled according to the [[New_Device_howto |New Device Howto]] and the [[New_Device_page|New Device Page guide]].}}<br />
<br />
{{Remove|If a device is special, then feel free to provide a terse description of what makes this device so special. But terse, no novels, no marketing blurb.}}<br />
<br />
= Identification =<br />
On the bottom of the device, the following is printed:<br />
<pre>Model:Beelink GS1</pre><br />
<br />
The PCB has the following silkscreened on it:<br />
<pre>beelink<br />
GS1<br />
Ver:2.0</pre><br />
<br />
In android, under Settings->About Tablet, you will find:<br />
* Model Number: ''Beelink GS1''<br />
* Build Number: ''102NO''<br />
<br />
= Sunxi support =<br />
<br />
== Current status ==<br />
<br />
{{Remove|Give a brief overview of the current status of support under sunxi here.}}<br />
<br />
== Manual build ==<br />
<br />
You can build things for yourself by following our [[Manual_build_howto | Manual build howto]] and by choosing from the configurations available below.<br />
<br />
=== U-Boot ===<br />
<br />
==== Sunxi/Legacy U-Boot ====<br />
<br />
Use the ''{{Edit|MANUFACTURER_DEVICE}}'' build target.<br />
<br />
==== Mainline U-Boot ====<br />
<br />
Planned for 2019.07 [https://git.denx.de/?p=u-boot/u-boot-sunxi.git;a=commit;h=517ee6420564ed40d53d49f1d2d96c71ad275c6a U-boot sunxi Git]<br />
<br />
=== Linux Kernel ===<br />
<br />
==== Sunxi/Legacy Kernel ====<br />
<br />
Use the [https://github.com/linux-sunxi/sunxi-boards/blob/master/sys_config/h6/beelink_gs1.fex beelink_gs1.fex] file.<br />
<br />
==== Mainline kernel ====<br />
<br />
since 5.2 : https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux.git/commit/?h=sunxi/for-next&id=089bee8dd119ba084dee6b17a2e1a53df4f30193<br />
<br />
= Tips, Tricks, Caveats =<br />
<br />
{{Remove|Add MANUFACTURER DEVICE specific tips, tricks, Caveats and nice to have changes here.}}<br />
<br />
== FEL mode ==<br />
<br />
The button on the bottom of the PCB triggers FEL mode (to be confirmed). It is reachable through a small hole in the bottom plastic cover. <br />
<br />
== {{Edit|Device specific topic}} ==<br />
<br />
{{Remove|If there are no further device specific topics to add, remove these sections.}}<br />
<br />
== {{Edit|...}} ==<br />
<br />
= Adding a serial port ('''voids warranty''') =<br />
<br />
[[File:Beelink_GS1_uart.jpg|thumb|240px|UART pads]]<br />
<br />
The GS1 UART runs at 3.3V levels, so you need a level converter (e.g. MAX3323) to connect the board to a regular serial port. Alternatively, a USB-to-UART adapter with 3.3V levels will also work. <br />
<br />
== Device disassembly ==<br />
<br />
The case is clipped together using plastic tabs on all four sides. Please see the [[Plastic_tool|Plastic tool howto]] for details of opening cases like these. The PCB is held in place by three small Philips-head screws. Make sure to remove the µSD card before taking out the PCB. <br />
<br />
== Locating the UART ==<br />
<br />
The UART (3.3V levels) is available on four solder holes (2mm spacing) next to the eMMC chip slot. Soldering in a header will void the warranty. <br />
<br />
With the square pad as pin 1 the pinout is as follows '''confirmed using USB-UART adapter''':<br />
<br />
* Pin 1: GND<br />
* Pin 2: RxD<br />
* Pin 3: TxD<br />
* Pin 4: 3v3<br />
<br />
= Pictures =<br />
<br />
<gallery><br />
File:Beelink_GS1_top.jpg<br />
File:Beelink_GS1_base.jpg<br />
File:Beelink_GS1_back.jpg<br />
File:Beelink_GS1_side.jpg<br />
File:Beelink_GS1_pcbtop.jpg<br />
File:Beelink_GS1_pcbbottom.jpg<br />
File:Beelink_GS1_heatsink.jpg<br />
File:Beelink_GS1_box.jpg<br />
</gallery><br />
<br />
= Also known as =<br />
<br />
There are currently no known rebadged devices. Update this section if you know otherwise. <br />
<br />
= See also =<br />
<br />
*[https://wikidevi.com/wiki/Beelink_GS1 Beelink_GS1 on 'wikidevi']<br />
*AXP805 Datasheet: [[File:AXP805_Datasheet_V1.0_en.pdf]]<br />
*H6 Datasheet: [[File:Allwinner_H6_V200_Datasheet_V1.1.pdf]]<br />
*H6 User Manual: [[File:Allwinner_H6_V200_User_Manual_V1.1.pdf]]<br />
*[https://forum.xda-developers.com/general/device-reviews-and-information/beelink-gs1-tv-box-review-beauty-beast-t3724795 xda-developers Review] <br />
<br />
== Manufacturer images ==<br />
<br />
{{Remove|Optional. Add non-sunxi images in this section.}}<br />
<br />
[[Category:Devices]]<br />
[[Category:H6 Boards]]<br />
[[Category:Devices with Ethernet port]]<br />
[[Category:Devices with HDMI port]]</div>
Frozeus
https://linux-sunxi.org/index.php?title=Xunlong_Orange_Pi_Zero2&diff=23723
Xunlong Orange Pi Zero2
2020-11-22T15:16:59Z
<p>Frozeus: Board received is 1.3</p>
<hr />
<div><br />
{{Infobox Board<br />
| image = [[File:PXL 20201121 165948432.jpg|thumbnail]]<br />
| manufacturer = [http://www.xunlong.tv/ Xunlong]<br />
| dimensions = ''53mm'' x ''60mm''<br />
| release_date = Nov 2020<br />
| website = [http://www.orangepi.org/Orange%20Pi%20Zero2/ Orange Pi Zero2]<br />
| soc = [[H616]] @ {{Edit|X}}Ghz<br />
| dram = 1GiB DDR3 @ 720 MHz (2 * [[DDR3#K4B4G1646D-BCK0|Samsung K4B4G1646E-BYMA]])<br />
| power = DC 5V @ 2A via USB-C connector<br />
| video = Micro HDMI 2.0a, CVBS on header<br />
| audio = Line out on header, HDMI audio<br />
| network = WiFi 802.11 a/b/g/n ([[Wifi#Manufacturer|AW859A]]), 10/100/1000Mbps Ethernet ([[Ethernet#Phyceivers|Realtek 8211F]])D<br />
| storage = µSD, 16Mbit [[Bootable_SPI_flash|SPI flash]]<br />
| usb = 1 X USB2.0 Host, 1 X USB2.0 OTG, 2 X USB2.0 Host on header<br />
| other = Accelerometer ([[Accelerometer#Device|Manufacturer device]]), GPS, IRDA<br />
| headers = UART, JTAG, LCD, VGA, ...<br />
}}<br />
<br />
Not to be confused with Zero Plus 2 (H5) This is the H616 version (2020)<br />
<br />
{{Remove_only_when_finished|This page needs to be properly filled according to the [[New_Device_howto |New Device Howto]] and the [[New_Device_page|New Device Page guide]].}}<br />
<br />
= Identification =<br />
<br />
A serial number sticker can be found on the back of the board:<br />
<pre>PI Zero2 - H616<br />
SerialNumber</pre><br />
<br />
The PCB has a version number silkscreened nest to the SOC and RAM:<br />
<pre>Orange Pi<br />
Zero2 v1.3</pre><br />
<br />
= General Notes =<br />
<br />
Note my board will not start (no LED or serial console) unless a SD card is installed.<br />
<br />
Ubuntu Focal image provided by vendor installs and boots to Armbian with no issues. Quick first pass looks good, although some pinmux and regulator logs will probably have to be addressed first.<br />
<br />
I have uploaded consoles to capture the starting point with this board.<br />
<br />
[https://drive.google.com/file/d/12DJZErEC6TubXwkM63IR2BrqXAQv0loe/view?usp=sharing u-boot environment]<br />
<br />
[https://drive.google.com/file/d/1O7e_aPta-71k0zMBKuKtXV2XqEjwVlEg/view?usp=sharing serial bootlog]<br />
<br />
[https://drive.google.com/file/d/1ENZSe2Wl1DQC_u_QI0fVbytzdo3wYffJ/view?usp=sharing dmesg 4.9.170-sun50iw9]<br />
<br />
<br />
= Sunxi support =<br />
<br />
== Current status ==<br />
<br />
Not yet supported, mostly as the [[H616]] SoC lack mainline (TF-A, U-Boot, Linux) support. Early versions of an U-Boot port available, H616 DRAM controller support is WIP.<br />
<br />
== Images ==<br />
<br />
{{Remove|Optional. Add MANUFACTURER DEVICE specific sunxi ROM images here. E.g. a livesuit image or some other linux image which uses linux-sunxi code. Do not put non-sunxi images here, they should live under [[#See_also|See also]]. If no sunxi based images are available, this section can be removed.}}<br />
<br />
== HW-Pack ==<br />
<br />
{{Remove|Optional. Add MANUFACTURER DEVICE sunxi HW-pack specifics here. When empty, this section can be removed.}}<br />
<br />
== BSP ==<br />
<br />
[https://drive.google.com/drive/folders/1HQqYQdJLkL2cmx47448wvQvAW7x9ZQwZ Allwinner H616 Android with Kernel 4.9]<br />
<br />
[https://github.com/orangepi-xunlong/orangepi-build Xunlong / OrangePi Armbian]<br />
<br />
== Manual build ==<br />
<br />
You can build things for yourself by following our [[Manual_build_howto | Manual build howto]] and by choosing from the configurations available below.<br />
<br />
=== U-Boot ===<br />
<br />
==== Sunxi/Legacy U-Boot ====<br />
<br />
Use the ''{{Edit|MANUFACTURER_DEVICE}}'' build target.<br />
<br />
==== Mainline U-Boot ====<br />
<br />
Use the ''{{Edit|MANUFACTURER_DEVICE}}'' build target.<br />
<br />
=== Linux Kernel ===<br />
<br />
==== Sunxi/Legacy Kernel ====<br />
<br />
Use the [https://github.com/linux-sunxi/sunxi-boards/blob/master/sys_config/SOC/MANUFACTURER_DEVICE.fex ''{{Edit|MANUFACTURER_DEVICE.fex}}''] file.<br />
<br />
==== Mainline kernel ====<br />
<br />
Use the ''{{Edit|FAMILY-CHIP-DEVICE.dtb}}'' device-tree binary.<br />
<br />
= Expansion ports =<br />
The Orange Pi Zero2 has a 26-pin, 0.1" populated connector with several low-speed interfaces.<br />
<br />
The primary function follows loosely the old Raspberry Pi pin assignment (TWI3 (aka I2C), UART5, SPI1, GPIOs), but pinmuxing gives access to more interfaces (not all at the same time): UART2 (incl. h/w handshake), TWI2, TWI4, SPDIF, PWM1, PWM2, single bit MMC2. <br />
<br />
{| class="wikitable" style="width:700px;"<br />
! colspan=4 | 2x13 Header<br />
|-<br />
| 1 || ''3.3V''<br />
| 2 || ''5V'' <br />
|-<br />
| 3 || TWI3_SDA / PH5 / SPI1_CS0 / UART2_TX<br />
| 4 || ''5V'' <br />
|-<br />
| 5 || TWI3_SCK / PH4 / SPDIF_OUT<br />
| 6 || ''GND''<br />
|-<br />
| 7 || PC9<br />
| 8 || UART5_TX / PH2 / SPDIF_CLK / PWM2 / TWI2_SCK<br />
|-<br />
| 9 || ''GND''<br />
| 10 || UART5_RX / PH3 / PWM1 / TWI2_SDA<br />
|-<br />
| 11 || PC6 / SCD2_CMD<br />
| 12 || PC11<br />
|-<br />
| 13 || PC5<br />
| 14 || ''GND''<br />
|-<br />
| 15 || PC8<br />
| 16 || PC15 / SPI0_WP<br />
|-<br />
| 17 || ''3.3V''<br />
| 18 || PC14<br />
|-<br />
| 19 || SPI1_MOSI / PH7 / UART2_RTS / TWI4_SDA<br />
| 20 || ''GND''<br />
|-<br />
| 21 || SPI1_MISO / PH8 / UART2_CTS<br />
| 22 || PC7<br />
|-<br />
| 23 || SPI1_CLK / PH6 / UART2_RX / TWI4_SCD<br />
| 24 || SPI1_CS1 / PH9<br />
|-<br />
| 25 || ''GND''<br />
| 26 || PC10 / SCD2_D0<br />
|}<br />
<br />
The Orange Pi Zero2 has another 13-pin, 0.1" header with USB and analogue interfaces.<br />
<br />
{| class="wikitable" style="width:350px;"<br />
! colspan=2 | 1x13 Header<br />
|-<br />
| 1 || ''5V''<br />
|-<br />
| 2 || ''GND'' <br />
|-<br />
| 3 || USB2-DM<br />
|-<br />
| 4 || USB2-DP<br />
|-<br />
| 5 || USB3-DM<br />
|-<br />
| 6 || USB3-DP<br />
|-<br />
| 7 || LINEOUTR<br />
|-<br />
| 8 || LINEOUTL<br />
|-<br />
| 9 || TV-OUT<br />
|-<br />
| 10 || PC1<br />
|-<br />
| 11 || PI16<br />
|-<br />
| 12 || PI6<br />
|-<br />
| 13 || [[CIR]]-RX / PH10<br />
|}<br />
<br />
= Tips, Tricks, Caveats =<br />
<br />
== FEL mode ==<br />
<br />
No dedicated FEL button. [[FEL|FEL mode]] will be entered without an SD card and with no valid eGON signature on the SPI flash (which is empty on arrival). Alternatively the usual FEL trigger SD card image can be used.<br />
<br />
The USB-C connector used to power the board carries the USB-OTG signals for the FEL mode, so the board needs to be powered through a host computer or a powered USB hub for using FEL mode.<br />
<br />
== {{Edit|Device specific topic}} ==<br />
<br />
{{Remove|If there are no further device specific topics to add, remove these sections.}}<br />
<br />
= Serial port =<br />
<br />
[[File:OPi_Zero2_UART.jpg|thumb|240px|OrangePi Zero 2 UART pads]]<br />
<br />
The UART pins are located behind the USB port on the board. They are marked as ''TX'', ''RX'' and ''GND'' on the PCB. Just attach some leads according to our [[UART|UART Howto]].<br />
<br />
= Pictures =<br />
<br />
{{Remove|Take some pictures of your device, [[Special:Upload | upload them]], and add them here. DO NOT UPLOAD PICTURES WHICH YOU PLUCKED OFF THE INTERNET.}}<br />
<br />
<gallery><br />
File:OPi_Zero_2_Top.jpeg<br />
File:OPi_Zero_2_Bottom.jpeg<br />
File:Device_buttons_1.jpg<br />
File:Device_buttons_2.jpg<br />
File:Device_board_front.jpg<br />
File:Device_board_back.jpg<br />
</gallery><br />
<br />
= See also =<br />
<br />
{{Remove|Add some nice to have links here. This includes related devices, and external links.}}<br />
<br />
== Manufacturer images ==<br />
<br />
{{Remove|Optional. Add non-sunxi images in this section.}}<br />
<br />
[[Category:Devices]]<br />
[[Category:CATEGORY]]</div>
Frozeus
https://linux-sunxi.org/index.php?title=Xunlong_Orange_Pi_Zero2&diff=23722
Xunlong Orange Pi Zero2
2020-11-22T15:14:50Z
<p>Frozeus: Add Top and Bottom pictures</p>
<hr />
<div><br />
{{Infobox Board<br />
| image = [[File:PXL 20201121 165948432.jpg|thumbnail]]<br />
| manufacturer = [http://www.xunlong.tv/ Xunlong]<br />
| dimensions = ''53mm'' x ''60mm''<br />
| release_date = Nov 2020<br />
| website = [http://www.orangepi.org/Orange%20Pi%20Zero2/ Orange Pi Zero2]<br />
| soc = [[H616]] @ {{Edit|X}}Ghz<br />
| dram = 1GiB DDR3 @ 720 MHz (2 * [[DDR3#K4B4G1646D-BCK0|Samsung K4B4G1646E-BYMA]])<br />
| power = DC 5V @ 2A via USB-C connector<br />
| video = Micro HDMI 2.0a, CVBS on header<br />
| audio = Line out on header, HDMI audio<br />
| network = WiFi 802.11 a/b/g/n ([[Wifi#Manufacturer|AW859A]]), 10/100/1000Mbps Ethernet ([[Ethernet#Phyceivers|Realtek 8211F]])D<br />
| storage = µSD, 16Mbit [[Bootable_SPI_flash|SPI flash]]<br />
| usb = 1 X USB2.0 Host, 1 X USB2.0 OTG, 2 X USB2.0 Host on header<br />
| other = Accelerometer ([[Accelerometer#Device|Manufacturer device]]), GPS, IRDA<br />
| headers = UART, JTAG, LCD, VGA, ...<br />
}}<br />
<br />
Not to be confused with Zero Plus 2 (H5) This is the H616 version (2020)<br />
<br />
{{Remove_only_when_finished|This page needs to be properly filled according to the [[New_Device_howto |New Device Howto]] and the [[New_Device_page|New Device Page guide]].}}<br />
<br />
= Identification =<br />
<br />
A serial number sticker can be found on the back of the board:<br />
<pre>PI Zero2 - H616<br />
SerialNumber</pre><br />
<br />
The PCB has a version number silkscreened nest to the SOC and RAM:<br />
<pre>Orange Pi<br />
Zero2 v1.2</pre><br />
<br />
= General Notes =<br />
<br />
Note my board will not start (no LED or serial console) unless a SD card is installed.<br />
<br />
Ubuntu Focal image provided by vendor installs and boots to Armbian with no issues. Quick first pass looks good, although some pinmux and regulator logs will probably have to be addressed first.<br />
<br />
I have uploaded consoles to capture the starting point with this board.<br />
<br />
[https://drive.google.com/file/d/12DJZErEC6TubXwkM63IR2BrqXAQv0loe/view?usp=sharing u-boot environment]<br />
<br />
[https://drive.google.com/file/d/1O7e_aPta-71k0zMBKuKtXV2XqEjwVlEg/view?usp=sharing serial bootlog]<br />
<br />
[https://drive.google.com/file/d/1ENZSe2Wl1DQC_u_QI0fVbytzdo3wYffJ/view?usp=sharing dmesg 4.9.170-sun50iw9]<br />
<br />
<br />
= Sunxi support =<br />
<br />
== Current status ==<br />
<br />
Not yet supported, mostly as the [[H616]] SoC lack mainline (TF-A, U-Boot, Linux) support. Early versions of an U-Boot port available, H616 DRAM controller support is WIP.<br />
<br />
== Images ==<br />
<br />
{{Remove|Optional. Add MANUFACTURER DEVICE specific sunxi ROM images here. E.g. a livesuit image or some other linux image which uses linux-sunxi code. Do not put non-sunxi images here, they should live under [[#See_also|See also]]. If no sunxi based images are available, this section can be removed.}}<br />
<br />
== HW-Pack ==<br />
<br />
{{Remove|Optional. Add MANUFACTURER DEVICE sunxi HW-pack specifics here. When empty, this section can be removed.}}<br />
<br />
== BSP ==<br />
<br />
[https://drive.google.com/drive/folders/1HQqYQdJLkL2cmx47448wvQvAW7x9ZQwZ Allwinner H616 Android with Kernel 4.9]<br />
<br />
[https://github.com/orangepi-xunlong/orangepi-build Xunlong / OrangePi Armbian]<br />
<br />
== Manual build ==<br />
<br />
You can build things for yourself by following our [[Manual_build_howto | Manual build howto]] and by choosing from the configurations available below.<br />
<br />
=== U-Boot ===<br />
<br />
==== Sunxi/Legacy U-Boot ====<br />
<br />
Use the ''{{Edit|MANUFACTURER_DEVICE}}'' build target.<br />
<br />
==== Mainline U-Boot ====<br />
<br />
Use the ''{{Edit|MANUFACTURER_DEVICE}}'' build target.<br />
<br />
=== Linux Kernel ===<br />
<br />
==== Sunxi/Legacy Kernel ====<br />
<br />
Use the [https://github.com/linux-sunxi/sunxi-boards/blob/master/sys_config/SOC/MANUFACTURER_DEVICE.fex ''{{Edit|MANUFACTURER_DEVICE.fex}}''] file.<br />
<br />
==== Mainline kernel ====<br />
<br />
Use the ''{{Edit|FAMILY-CHIP-DEVICE.dtb}}'' device-tree binary.<br />
<br />
= Expansion ports =<br />
The Orange Pi Zero2 has a 26-pin, 0.1" populated connector with several low-speed interfaces.<br />
<br />
The primary function follows loosely the old Raspberry Pi pin assignment (TWI3 (aka I2C), UART5, SPI1, GPIOs), but pinmuxing gives access to more interfaces (not all at the same time): UART2 (incl. h/w handshake), TWI2, TWI4, SPDIF, PWM1, PWM2, single bit MMC2. <br />
<br />
{| class="wikitable" style="width:700px;"<br />
! colspan=4 | 2x13 Header<br />
|-<br />
| 1 || ''3.3V''<br />
| 2 || ''5V'' <br />
|-<br />
| 3 || TWI3_SDA / PH5 / SPI1_CS0 / UART2_TX<br />
| 4 || ''5V'' <br />
|-<br />
| 5 || TWI3_SCK / PH4 / SPDIF_OUT<br />
| 6 || ''GND''<br />
|-<br />
| 7 || PC9<br />
| 8 || UART5_TX / PH2 / SPDIF_CLK / PWM2 / TWI2_SCK<br />
|-<br />
| 9 || ''GND''<br />
| 10 || UART5_RX / PH3 / PWM1 / TWI2_SDA<br />
|-<br />
| 11 || PC6 / SCD2_CMD<br />
| 12 || PC11<br />
|-<br />
| 13 || PC5<br />
| 14 || ''GND''<br />
|-<br />
| 15 || PC8<br />
| 16 || PC15 / SPI0_WP<br />
|-<br />
| 17 || ''3.3V''<br />
| 18 || PC14<br />
|-<br />
| 19 || SPI1_MOSI / PH7 / UART2_RTS / TWI4_SDA<br />
| 20 || ''GND''<br />
|-<br />
| 21 || SPI1_MISO / PH8 / UART2_CTS<br />
| 22 || PC7<br />
|-<br />
| 23 || SPI1_CLK / PH6 / UART2_RX / TWI4_SCD<br />
| 24 || SPI1_CS1 / PH9<br />
|-<br />
| 25 || ''GND''<br />
| 26 || PC10 / SCD2_D0<br />
|}<br />
<br />
The Orange Pi Zero2 has another 13-pin, 0.1" header with USB and analogue interfaces.<br />
<br />
{| class="wikitable" style="width:350px;"<br />
! colspan=2 | 1x13 Header<br />
|-<br />
| 1 || ''5V''<br />
|-<br />
| 2 || ''GND'' <br />
|-<br />
| 3 || USB2-DM<br />
|-<br />
| 4 || USB2-DP<br />
|-<br />
| 5 || USB3-DM<br />
|-<br />
| 6 || USB3-DP<br />
|-<br />
| 7 || LINEOUTR<br />
|-<br />
| 8 || LINEOUTL<br />
|-<br />
| 9 || TV-OUT<br />
|-<br />
| 10 || PC1<br />
|-<br />
| 11 || PI16<br />
|-<br />
| 12 || PI6<br />
|-<br />
| 13 || [[CIR]]-RX / PH10<br />
|}<br />
<br />
= Tips, Tricks, Caveats =<br />
<br />
== FEL mode ==<br />
<br />
No dedicated FEL button. [[FEL|FEL mode]] will be entered without an SD card and with no valid eGON signature on the SPI flash (which is empty on arrival). Alternatively the usual FEL trigger SD card image can be used.<br />
<br />
The USB-C connector used to power the board carries the USB-OTG signals for the FEL mode, so the board needs to be powered through a host computer or a powered USB hub for using FEL mode.<br />
<br />
== {{Edit|Device specific topic}} ==<br />
<br />
{{Remove|If there are no further device specific topics to add, remove these sections.}}<br />
<br />
= Serial port =<br />
<br />
[[File:OPi_Zero2_UART.jpg|thumb|240px|OrangePi Zero 2 UART pads]]<br />
<br />
The UART pins are located behind the USB port on the board. They are marked as ''TX'', ''RX'' and ''GND'' on the PCB. Just attach some leads according to our [[UART|UART Howto]].<br />
<br />
= Pictures =<br />
<br />
{{Remove|Take some pictures of your device, [[Special:Upload | upload them]], and add them here. DO NOT UPLOAD PICTURES WHICH YOU PLUCKED OFF THE INTERNET.}}<br />
<br />
<gallery><br />
File:OPi_Zero_2_Top.jpeg<br />
File:OPi_Zero_2_Bottom.jpeg<br />
File:Device_buttons_1.jpg<br />
File:Device_buttons_2.jpg<br />
File:Device_board_front.jpg<br />
File:Device_board_back.jpg<br />
</gallery><br />
<br />
= See also =<br />
<br />
{{Remove|Add some nice to have links here. This includes related devices, and external links.}}<br />
<br />
== Manufacturer images ==<br />
<br />
{{Remove|Optional. Add non-sunxi images in this section.}}<br />
<br />
[[Category:Devices]]<br />
[[Category:CATEGORY]]</div>
Frozeus
https://linux-sunxi.org/index.php?title=File:OPi_Zero_2_Top.jpeg&diff=23721
File:OPi Zero 2 Top.jpeg
2020-11-22T15:11:51Z
<p>Frozeus: </p>
<hr />
<div></div>
Frozeus
https://linux-sunxi.org/index.php?title=File:OPi_Zero_2_Bottom.jpeg&diff=23720
File:OPi Zero 2 Bottom.jpeg
2020-11-22T15:11:25Z
<p>Frozeus: </p>
<hr />
<div></div>
Frozeus
https://linux-sunxi.org/index.php?title=Allwinner_SoC_Family&diff=23638
Allwinner SoC Family
2020-11-08T13:23:02Z
<p>Frozeus: Fix 64bit already exist for R</p>
<hr />
<div>= SoC series =<br />
'''A''' series processors are used for mobile applications, mainly referring to tablet application here;<br />
<br />
'''B''' for "Book", used for E-book tablet reader. <br />
<br />
'''H''' for “Homlet”, mainly used in home entertainment applications, including smart OTT boxes, HDMI mini PCs, gaming boxes, etc;<br />
<br />
'''V''' for video-related applications, including video surveillance, automotive DVR, etc;<br />
<br />
'''T''' series processors target the Automotive products like ADAS. <br />
<br />
'''F''' series are processors based on Allwinner’s melis OS, mainly used in smart video radios, video MP5, etc;<br />
<br />
== "A"-Series ==<br />
Based on ARMv7 Cortex-A cores (Cortex-A7, A8 and A15) targeted for high-end devices like digital media players, tablets, and netbooks:<br />
{| class="wikitable"<br />
| [[A10|Allwinner A10]] || <small>(sun4i)</small> || 1 x Cortex-A8 CPU-core<br />
|-<br />
| [[A13|Allwinner A13]] || <small>(sun5i)</small> || 1 x Cortex-A8 CPU-core<br />
|-<br />
| [[A10s|Allwinner A10s]] || <small>(sun5i)</small> || 1 x Cortex-A8 CPU-core<br />
|-<br />
| [[A20|Allwinner A20]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=45</ref> || <small>(sun7i)</small> || 2 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A23|Allwinner A23]] || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A31|Allwinner A31]] || <small>(sun6i)</small> || 4 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A31s|Allwinner A31s]] || <small>(sun6i)</small> || 4 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A33|Allwinner A33]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=23</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A40i|Allwinner A40i]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=69</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A50|Allwinner A50]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=72</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A80|Allwinner A80]] || <small>(sun9i)</small> || 4 x Cortex-A7 CPU-cores + 4 x Cortex-A15 CPU-cores&nbsp;<br /><small>(using ARM big.LITTLE heterogeneous CPU architecture)</small><br />
|-<br />
| [[A83T|Allwinner A83T]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=24</ref> || <small>(sun8i)</small>&nbsp; || 8 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A100|Allwinner A100]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=24</ref> || <small>(sun50i)</small>&nbsp; || 4 x Cortex-A53 CPU-cores<br />
|}<br />
<br />
'''64-bit'''<br />
{| class="wikitable"<br />
| [[A63|Allwinner A63]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=67</ref> || <small>(sun50i)</small>&nbsp; || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[A64|Allwinner A64]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=9</ref> || <small>(sun50i)</small>&nbsp; || 4 x Cortex-A53 CPU-core<br />
|}<br />
<br />
== "B"-series ==<br />
<br />
{| class="wikitable"<br />
| [[B288|Allwinner B288]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=59</ref> || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|-<br />
| [[B300|Allwinner B300]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=86</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|}<br />
<br />
== "H"-Series ==<br />
Based on ARMv7/ARMv8 Cortex-A cores (A7/A53) targeted for video OTT (over-the-top) boxes and high-end gaming consoles:<br />
{| class="wikitable"<br />
| [[H2+|Allwinner H2+]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=62</ref> || <small>(sun8i)</small>&nbsp; || 4 x Cortex-A7 CPU-core&nbsp;<br />
|-<br />
| [[H3|Allwinner H3]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=47</ref> || <small>(sun8i)</small>&nbsp; || 4 x Cortex-A7 CPU-core&nbsp;<br />
|-<br />
| [[H8|Allwinner H8]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=46</ref> || <small>(sun8i)</small> || 8 x Cortex-A7 CPU-core<br />
|-<br />
| [[H80|Allwinner H80]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=46</ref> || <small>(sun8i)</small> || 8 x Cortex-A7 CPU-core<br />
|}<br />
<br />
'''64-bit'''<br />
{| class="wikitable"<br />
| [[H5|Allwinner H5]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=57</ref>&nbsp; || <small>(sun50i)</small>&nbsp; || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[H6|Allwinner H6]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=66</ref>&nbsp; || <small>(sun50i)</small>&nbsp; || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[H64|Allwinner H64]]<ref>http://web.archive.org/web/20160425223052/http://www.allwinnertech.com/en/clq/H_series/6100.html</ref> || <small>(sun50i)</small> || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[H313|Allwinner H313]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=90</ref> || <small>(sun50i)</small> || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[H616|Allwinner H616]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=89</ref> || <small>(sun50i)</small> || 4 x Cortex-A53 CPU-core<br />
|}<br />
<br />
== "R"-Series ==<br />
<br />
{| class="wikitable"<br />
| [[R6|Allwinner R6]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=79</ref> || <small>(sun3i)</small> || 1 x Cortex-A9 CPU-core<br />
|-<br />
| [[R7|Allwinner R7]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=82</ref> || <small>(sun8i)</small> || 1 x Cortex-A7 CPU-core<br />
|-<br />
| [[R8|Allwinner R8]]<ref>http://web.archive.org/web/20160510053338/http://www.allwinnertech.com/en/clq/R_series/2015/0514/R8.html</ref> || <small>(sun5i)</small>&nbsp; || 1 x Cortex-A8 CPU-core<br />
|-<br />
| [[R11|Allwinner R11]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=83</ref> || <small>(sun8i)</small> || 1 x Cortex-A7 CPU-core<br />
|-<br />
| [[R16|Allwinner R16]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=51</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[R40|Allwinner R40]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=56</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[R58|Allwinner R58]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=49</ref>&nbsp; || <small>(sun8i)</small> || 8 x Cortex-A7 CPU-core<br />
|-<br />
| [[R311|Allwinner R311]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=84</ref>&nbsp; || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[R328|Allwinner R328]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=85</ref>&nbsp; || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|}<br />
<br />
The Allwinner R8 is repackaged version of the A13. This SoC gets used in the minicomputer presented in Next Thing Co.'s [[NextThingCo CHIP|''C.H.I.P.'']] kickstarter project ("The $9 computer")<ref>http://nextthing.co/</ref>.<br />
<br />
By comparing the product pages the R16 seems to be a relabeled version of A33. This is somewhat confirmed by the (identical) SoC ID the BROM reports.<ref>https://groups.google.com/d/msg/linux-sunxi/vx6oQMy-nis/vgVc8d1KBAAJ</ref><br />
<br />
'''64-bit'''<br />
{| class="wikitable"<br />
| [[R18|Allwinner R18]]|| <small>sun50i</small> || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[R329|Allwinner R329]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=91</ref>&nbsp; || <small>(sun50i)</small> || 2 x Cortex-A53 CPU-core<br />
|}<br />
<br />
== "T"-series ==<br />
<br />
{| class="wikitable"<br />
| [[T2|Allwinner T2]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=39</ref> || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|-<br />
| [[T3|Allwinner T3]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=41</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[T7|Allwinner T7]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=71</ref> || <small>(sun8i)</small> || 6 x Cortex-A7 CPU-core<br />
|-<br />
| [[T8|Allwinner T8]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=33</ref> || <small>(sun8i)</small> || 8 x Cortex-A7 CPU-core<br />
|}<br />
<br />
== "V"-series ==<br />
<br />
{| class="wikitable"<br />
| [[V3|Allwinner V3]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=37</ref> || <small>(sun8i)</small> || 1 x Cortex-A7 CPU-core<br />
|-<br />
| [[V3s|Allwinner V3s]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=38</ref> || <small>(sun8i)</small> || 1 x Cortex-A7 CPU-core<br />
|-<br />
| [[V5|Allwinner V5]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=70</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[V40|Allwinner V40]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=36</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[V66|Allwinner V66]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=35</ref> || <small>(sun8i)</small> || 8 x Cortex-A7 CPU-core<br />
|-<br />
| [[V316|Allwinner V316]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=87</ref> || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|-<br />
| [[V536|Allwinner V536]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=88</ref> || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|}<br />
<br />
== "F"-Series ==<br />
:'''{{note|The F series is not supported by the linux-sunxi community due to lack of developers and hardware. ''sun3i'' have only official linux support, ''sunii'' have no linux support, only Allwinner's "Melis" RTOS.}}'''<br />
<br />
Based on ARMv5 ARM926-EJS core and currently targeted for low market devices such as cheap ebook readers, etc.<br />
<br />
F1C700 seems to be a remarked A13, and it's ARMv7.<br />
<br />
{| class="wikitable"<br />
| [[C100|Boxchip C100]] || <small>(sun3i)</small><br />
|-<br />
| [[E200|Boxchip E200]] || <small>(sun3i)</small><br />
|-<br />
| [[F10|Boxchip F10]] <small>aka SoChip SC9800 aka Teclast T8100</small>&nbsp; || <small>(sunii)</small><br />
|-<br />
| [[F13|Boxchip F13]] || <small>(sunii)</small><br />
|-<br />
| [[F13|Boxchip F15]] <small>aka SoChip SC8600 aka Teclast T7200</small> || <small>(sunii)</small><br />
|-<br />
| [[F18|Boxchip F18]] || <small>(sunii)</small><br />
|-<br />
| [[F20|Boxchip F20]] || <small>(sun3i)</small><br />
|-<br />
| [[F23|Allwinner F23]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=30</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C100A|Allwinner F1C100A]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=29</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C100s|Allwinner F1C100s]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=73</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C200s|Allwinner F1C200s]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=74</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C500s|Allwinner F1C500s]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=75</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C600|Allwinner F1C600]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=28</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C700|Allwinner F1C700]] || <small>(sun5i)</small><br />
|-<br />
| [[F1C800|Allwinner F1C800]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=76</ref> || <small>(suniv)</small><br />
|}<br />
<br />
== "MR"-series ==<br />
<br />
{| class="wikitable"<br />
| [[MR100|Allwinner MR100]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=77</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[MR133|Allwinner MR133]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=86</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|}<br />
<br />
= 2013 naming scheme change =<br />
<br />
Initially, Allwinner named their SoCs chronologically:<br />
* sun4i = A10<br />
* sun5i = A13/A10s<br />
* sun6i = A31<br />
* sun7i = A20<br />
<br />
but, somewhere in 2013, Allwinner decided to update their naming scheme to be based on the ARM core used instead: (taken from the A80 SDK kernel code).<br />
<br />
Note: SoCs with "?" have never appeared on Allwinner's website. <ref>https://github.com/tinalinux/brandy/blob/r40-v1.y/SUNXI_README</ref><br />
<br />
{| class="wikitable"<br />
! sunxi (arm cores) !! sunxiwx (soc id) !! p (rev id) !! soc name !! cores !! notes<br />
|-<br />
| sun3i (arm926ejs) || sun3iw1 (0x1663) || sun3iw1p1 || [[F1C100s]], [[F1C100A]], [[F1C200s]], [[F1C500]], [[F1C600]], [[R6]] || 1xARM926EJ-S<br />
|-<br />
| style="text-align: left;" rowspan="4" | sun4i (cortex-a8) <br />
| sun4iw1 (0x1623) || sun4iw1p1 || [[A10]] || 1xCortex-A8<br />
|-<br />
| style="text-align: left;" rowspan="3" | sun4iw2 (0x1625)<br />
| sun4iw2p1 || [[A13]] || 1xCortex-A8<br />
|-<br />
| sun4iw2p2 || [[A12]] || ?<br />
|-<br />
| sun4iw2p3 || [[A10s]] || 1xCortex-A8<br />
|-<br />
| style="text-align: left;" rowspan="20" | sun8i <br />
(cortex-a7 smp)<br />
<br />
| style="text-align: left;" rowspan="2" | sun8iw1 (0x1633)<br />
<br />
| sun8iw1p1 || [[A31]] || 4xCortex-A7<br />
|-<br />
| sun8iw1p2 || [[A31s]] || 4xCortex-A7<br />
|-<br />
| style="text-align: left;" rowspan="2" | sun8iw2 (0x1651)<br />
<br />
| sun8iw2p1 || [[A20]] || 2xCortex-A7<br />
|-<br />
| sun8iw2p2 || ? || ?<br />
|-<br />
| style="text-align: left;" rowspan="2" | sun8iw3 (0x1650)<br />
<br />
| sun8iw3p1 || [[A23]] || 2xCortex-A7<br />
|-<br />
| sun8iw3p2 || ? || ?<br />
|-<br />
| sun8iw5 (0x1667) || sun8iw5p1 || [[A33]] || 4xCortex-A7<br />
|-<br />
| sun8iw6 (0x1673) || sun8iw6p1 || [[A83T]] || 8xCortex-A7<br />
|-<br />
| sun8iw7 (0x1680) || sun8iw7p1 || [[H3]], [[H2+]] || 4xCortex-A7<br />
|-<br />
| style="text-align: left;" rowspan="2" | sun8iw8 (0x1681)<br />
<br />
| sun8iw8p1 || [[V3]], [[V3s]] || 1xCortex-A7 || called V30 in allwinner's kernel source<br />
|-<br />
| sun8iw8p2 || ? || ? || called V33 in allwinner's kernel source<br />
|-<br />
| sun8iw10 (0x1699) || sun8iw10p1 || [[B288]], [[B100]] || 2xCortex-A7<br />
|-<br />
| style="text-align: left;" rowspan="4" | sun8iw11 (0x1701)<br />
<br />
| sun8iw11p1 || [[R40]], [[V40]], [[T3]], [[A20e]]? || 4xCortex-A7<br />
|-<br />
| sun8iw11p2 || ?? || 4xCortex-A7<br />
|-<br />
| sun8iw11p3 || ?? || 4xCortex-A7<br />
|-<br />
| sun8iw11p4 || ?? || 4xCortex-A7<br />
|-<br />
| sun8iw12 (0x1721) || sun8iw12p1 || [[V5]] || 4xCortex-A7<br />
|-<br />
| sun8iw15 (0x1755) || sun8iw15p1 || [[R311]] || 4xCortex-A7<br />
|-<br />
| sun8iw16 (0x1816) || sun8iw16p1 || [[V356]] || 2xCortex-A7<br />
|-<br />
| sun8iw17 (0x1708) || sun8iw17p1 || [[T7]] || 6xCortex-A7<br />
|-<br />
| style="text-align: left;" rowspan="2" | sun9i <br />
(cortex-a15/cortex-a7 big.LITTLE) <br />
<br />
| style="text-align: left;" rowspan="2" | sun9iw1 (0x1639)<br />
| sun9iw1p1 || [[A80]] || 4xCortex-A7 + 4xCortex-A15<br />
|-<br />
| sun9iw1p2 || [[A80T]] || ?<br />
|-<br />
| style="text-align: left;" rowspan="7" | sun50i <br />
(cortex-a53 smp) <br />
| sun50iw1 (0x1689) || sun50iw1p1 || [[A64]] || 4xCortex-A53<br />
|-<br />
| sun50iw2 (0x1718) || sun50iw2p1 || [[H5]] || 4xCortex-A53<br />
|-<br />
| sun50iw3 (0x1719) || sun50iw3p1 || [[A63]] || 4xCortex-A53<br />
|-<br />
| sun50iw6 (0x1728) || sun50iw6p1 || [[H6]] || 4xCortex-A53<br />
|-<br />
| sun50iw9 (0x1823) || sun50iw9p1 || [[H616]], [[H313]] || 4xCortex-A53<br />
|-<br />
| sun50iw10 (0x1855) || sun50iw10p1 || [[A100]] || 4xCortex-A53<br />
|-<br />
| sun50iw11 (0x????) || sun50iw11p1 || [[R329]] || 2xCortex-A53<br />
|}<br />
<br />
This new naming scheme is of absolutely no value with respect to the rest of the SoC. The actual ARM core(s) used are usually the least important piece of information for SoC support. This table completely ignores the fact that A20 is an updated A10 and is pin compatible. It also ignores the fact that A31 introduced a lot of changes which were carried on to the A23/A33 and possibly A80 parts. It therefore is quite likely that this naming scheme was purely a marketing decision, and that Allwinner marketing will change its mind again.<br />
<br />
= Features =<br />
* CPU: ARMv7-A [http://en.wikipedia.org/wiki/ARM_Cortex-A7 Cortex-A7], [http://en.wikipedia.org/wiki/ARM_Cortex-A15 Cortex-A15] or [http://en.wikipedia.org/wiki/ARM_Cortex-A8 Cortex-A8] Central Processor Unit with (co-)processor extensions:<br />
** Advanced SIMD: [http://en.wikipedia.org/wiki/ARM_architecture#Advanced_SIMD_.28NEON.29 NEON] (ARM's extended general-purpose advanced SIMD vector processing extension engine)<br />
** [[Vector Floating Point Unit]] ([http://en.wikipedia.org/wiki/ARM_architecture#Floating-point_.28VFP.29 VFPU]): ARM VFPv3 lite (Cortex-A8) / VFPv4 (Cortex-A7)<br />
** Security Extensions: <br />
*** [http://en.wikipedia.org/wiki/ARM_architecture#Security_extensions_.28TrustZone.29 TrustZone] secure world<br />
*** [[Security_System|Security accelerator]] supporting AES, DES, 3DES, SHA-1, MD5 and pseudo-random number generation<br />
** [http://en.wikipedia.org/wiki/ARM_architecture#Thumb-2 Thumb-2] instruction set extension for optimized code to reduce memory footprint and improve performance<br />
* GPU: [[Mali400]], Mali400-MP2, SGX544 or PowerVR G6230 Graphics Procesor Unit, supporting OpenGL ES2.<br />
* VPU: [[Cedar Engine]] (Video Processor Unit for audio and video hardware decoding or encoding)<br />
* HDMI-transmitter with [http://en.wikipedia.org/wiki/HDMI#CEC HDMI CEC] (Consumer Electronics Control), with exception of A13 which lacks HDMI-transmitter and SATA-controller<ref>[http://olimex.wordpress.com/2012/04/24/cortex-a8-in-tqfp-sure-allwinner-a13/ "Cortex A8 in TQFP? sure Allwinner A13"] ''Retrieved 23 September 2012''</ref><br />
* Hardware virtualization capabilities (Cortex-A7 only).<br />
* Up to 4GB memory (Cortex-A8), Up to 1TB memory with LPAE (Cortex-A7 only).<br />
<br />
== Comparison table ==<br />
{| class="wikitable"<br />
! scope="row" | !! [[A10]] !! [[A10s]] !! [[A13]] !! [[A20]] !! [[A23]] !! [[A31]] !! [[A31s]] !! [[A33]] !! [[A80]]<br />
|-<br />
! scope="row" | Generation <br />
| sun4i || sun5i || sun5i || sun7i || sun8i || sun6i || sun6i || sun8i || sun9i <br />
|-<br />
! scope="row" | CPU<br />
| Cortex-A8 || Cortex-A8 || Cortex-A8 || Cortex-A7 || Cortex-A7 ||Cortex-A7 || Cortex-A7 || Cortex-A7 || Cortex-A7 / A15 <br />
|-<br />
! scope="row" | CPU Maximum frequency<br />
| 1 GHz|| 1 GHz || 1 GHz|| 960 MHz|| 1.5 GHz || ? GHz || ? GHz || 1.5 GHz || 2 (??) GHz<br />
|-<br />
! scope="row" | Cores<br />
| 1 || 1 || 1 || 2 || 2 || 4 || 4 || 4 || 2 x 4<br />
|-<br />
! scope="row" | Extensions<br />
| NEON, VFPv3, Thumb-2 || NEON, VFPv3, Thumb-2 || NEON, VFPv3, Thumb-2 || NEON, VFPv3 / VFPv4, Thumb-2 ||NEON, VFPv3 / VFPv4, Thumb-2 || NEON, VFPv3 / VFPv4, Thumb-2 || NEON, VFPv3 / VFPv4, Thumb-2 || NEON, VFPv3 / VFPv4, Thumb-2 || ? (A80)<br />
|-<br />
! scope="row" | Memory<br />
| DDR2, DDR3</br> (max 2GB @ DDR800) || DDR2, DDR3</br> (max 2GB @ DDR800) || DDR2, DDR3</br> (max 512MB @ DDR800) || LPDDR3, DDR3,</br>LPDDR2 || DDR3</br>(max 1GB) || 2-channel DDR3, LPDDR2, </br>2-channel DDR3L, DDR3U || DDR3, DDR3L, LPDDR2 || single-channel DDR3, DDR3L</br>(max 1GB) || 2-channel DDR3, DDR3L, LPDDR3, LPDDR2</br> up to 8GB<br />
|-<br />
! scope="row" | GPU<br />
| [[Mali400]]</br>320&nbsp;MHz || [[Mali400]]</br>320&nbsp;MHz || [[Mali400]]</br>320&nbsp;MHz || [[Mali400]]-MP2</br>350&nbsp;MHz || [[Mali400]]-MP2 || SGX544</br>200&nbsp;MHz || SGX544</br>200&nbsp;MHz || [[Mali400]]-MP2 || 64-core PowerVR G6230<br />
|-<br />
! scope="row" | GPU API<br />
| OpenGL ES 2.0, OpenVG 1.1 || OpenGL ES 2.0, OpenVG 1.1 || OpenGL ES 2.0, OpenVG 1.1 || OpenGL ES 2.0, OpenVG 1.1 || OpenGL ES 2.0, OpenVG 1.1 || OpenGL ES 2.0, OpenVG 1.1, OpenCL 1.1, and DirectX 9.3 || OpenGL ES 2.0, OpenVG 1.1, OpenCL 1.1, and DirectX 9.3 || OpenGL ES 2.0, OpenVG 1.1 || OpenGL 3.x, OpenGL ES Next,3.0,2.0, Open CL 1.x, DirectX 11 level 9_3/10_0<ref>http://www.imgtec.com/news/detail.asp?ID=845</ref><br />
|-<br />
! scope="row" | [[Cedar Engine|Video decoder]]<br />
| 2160p || 1080p || 1080p || 2160p, 4K×2K, 1080p 3D || 1080p@60fps || 2160p, 4K×2K, 1080p 3D || 2160p, 1080p 3D || 1080p@60fps || ? (A80)<br />
|-<br />
! scope="row" | [[Cedar Engine|Video encoder]]<br />
| H.264 1080p@30fps, JPEG || H.264 1080p@30fps, JPEG || H.264 1080p@30fps, JPEG || H.264 1080p@30fps, JPEG || 1080p@60fps || H.264 1080p@60fps, JPEG || H264 1080p@30fps, 720p@60fps || H.264 1080p@60fps, JPEG || H.264 HP/VP8 4Kx2K@30fp<br />
|-<br />
! scope="row" | Audio decoder<br />
| AC3, DTS || ? || ? || AC3, DTS || - || ? (A31) || ? (A31S) || ? (A33) || ? (A80)<br />
|-<br />
! scope="row" | Video interfaces<br />
| HDMI 1.3, YPbPr, VGA, CPU/RGB/LVDS LCD || HDMI 1.3, RGB/LVDS LCD || RGB LCD, VGA|| HDMI 1.4, CVBS, YPbPr, VGA, CPU/RGB/LVDS LCD || CPU/RGB/LVDS LCD, MIPI DSI || HDMI 1.4, MIPI DSI, 2-channel LVDS, 2-channel RGB LCD || HDMI 1.4, LVDS, RGB LCD || CPU/RGB/LVDS LCD, MIPI DSI || HDMI 4K, RGB LCD 2048x1536@60fps, dual-channel LVDS 1920x1080@60fps, 4-lane MIPI DSI 1920x1200@60fps, 4-lane eDP 2560x1600@60fps<br />
|-<br />
! scope="row" | Audio interfaces<br />
| I2S, SPDIF, AC97 || I2S, AC97 || I2S, AC97 || I2S, PCM, AC97 || I2S, PCM || 2 I2S, 2 PCM || I2S, 2 PCM || ? (A33) || ? (A80)<br />
|-<br />
! scope="row" | USB OTG<br />
| 1 || 1 || 1 || 1 || 1 || 1 || 1 || ? (A33) || 1<br />
|-<br />
! scope="row" | USB Host<br />
| 2 || 1 || 1 || 2 || 1 || 2 || 2 || ? (A33) || 2x USB Host, USB 3.0/2.0 Dual-Role (host/device)<br />
|-<br />
! scope="row" | Ethernet<br />
| EMAC || EMAC || - || EMAC/GMAC || - || GMAC || GMAC || - || GMAC<br />
|-<br />
! scope="row" | Storage<br />
| NAND (max 64GB), SATA II, SD Card 3.0 || NAND (max 64GB), SD Card 3.0 || NAND (max 64GB), SD Card 3.0 || NAND, MMC, [http://olimex.wordpress.com/2013/04/05/allwinners-a10-and-a20-are-they-really-pin-to-pin-compatible-and-drop-in-replacement/#comment-5452 SATA] || raw NAND, eMMC, SD card || 4 x SD Card, eMMC NAND, 2-channel raw NAND || 4 x SD Card, eMMC NAND, raw NAND || 3 x SD Card, eMMC NAND, raw NAND || 4 x SD/MMC<br />
|-<br />
! scope="row" | Package<br />
| BGA441</br>19&nbsp;mm&nbsp;×&nbsp;19&nbsp;mm</br>0.80&nbsp;mm Pitch || BGA336</br>14&nbsp;mm&nbsp;×&nbsp;14&nbsp;mm</br>0.65&nbsp;mm Pitch || eLQFP176</br>20&nbsp;mm&nbsp;×&nbsp;20&nbsp;mm ||BGA441</br>19&nbsp;mm&nbsp;×&nbsp;19&nbsp;mm</br>0.80&nbsp;mm Pitch || FBGA280</br>14&nbsp;mm&nbsp;x&nbsp;14&nbsp;mm&nbsp;x&nbsp;1.4&nbsp;mm</br>0.80&nbsp;mm Pitch || BGA609</br>18&nbsp;mm&nbsp;×&nbsp;8&nbsp;mm</br>0.65&nbsp;mm Pitch || ? (A31S) || ? (Allwinner: pin compatible with A23) || ? (A80)<br />
|-<br />
! scope="row" | Lithography<br />
| 55 nm || 55 nm|| 55 nm || 40 nm || 40 nm || 40 nm || 40 nm || 40 nm || 28 nm<br />
|}<br />
<ref>http://blog.thinkteletronics.com/all-mobile-socsolutions/ All Mobile Soc/Solutions.</ref><br />
<br />
= References =<br />
<references /><br />
<br />
[[Category:System on Chip]]</div>
Frozeus
https://linux-sunxi.org/index.php?title=Allwinner_SoC_Family&diff=23637
Allwinner SoC Family
2020-11-08T13:22:32Z
<p>Frozeus: R329 is 64 bit</p>
<hr />
<div>= SoC series =<br />
'''A''' series processors are used for mobile applications, mainly referring to tablet application here;<br />
<br />
'''B''' for "Book", used for E-book tablet reader. <br />
<br />
'''H''' for “Homlet”, mainly used in home entertainment applications, including smart OTT boxes, HDMI mini PCs, gaming boxes, etc;<br />
<br />
'''V''' for video-related applications, including video surveillance, automotive DVR, etc;<br />
<br />
'''T''' series processors target the Automotive products like ADAS. <br />
<br />
'''F''' series are processors based on Allwinner’s melis OS, mainly used in smart video radios, video MP5, etc;<br />
<br />
== "A"-Series ==<br />
Based on ARMv7 Cortex-A cores (Cortex-A7, A8 and A15) targeted for high-end devices like digital media players, tablets, and netbooks:<br />
{| class="wikitable"<br />
| [[A10|Allwinner A10]] || <small>(sun4i)</small> || 1 x Cortex-A8 CPU-core<br />
|-<br />
| [[A13|Allwinner A13]] || <small>(sun5i)</small> || 1 x Cortex-A8 CPU-core<br />
|-<br />
| [[A10s|Allwinner A10s]] || <small>(sun5i)</small> || 1 x Cortex-A8 CPU-core<br />
|-<br />
| [[A20|Allwinner A20]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=45</ref> || <small>(sun7i)</small> || 2 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A23|Allwinner A23]] || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A31|Allwinner A31]] || <small>(sun6i)</small> || 4 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A31s|Allwinner A31s]] || <small>(sun6i)</small> || 4 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A33|Allwinner A33]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=23</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A40i|Allwinner A40i]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=69</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A50|Allwinner A50]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=72</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A80|Allwinner A80]] || <small>(sun9i)</small> || 4 x Cortex-A7 CPU-cores + 4 x Cortex-A15 CPU-cores&nbsp;<br /><small>(using ARM big.LITTLE heterogeneous CPU architecture)</small><br />
|-<br />
| [[A83T|Allwinner A83T]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=24</ref> || <small>(sun8i)</small>&nbsp; || 8 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A100|Allwinner A100]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=24</ref> || <small>(sun50i)</small>&nbsp; || 4 x Cortex-A53 CPU-cores<br />
|}<br />
<br />
'''64-bit'''<br />
{| class="wikitable"<br />
| [[A63|Allwinner A63]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=67</ref> || <small>(sun50i)</small>&nbsp; || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[A64|Allwinner A64]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=9</ref> || <small>(sun50i)</small>&nbsp; || 4 x Cortex-A53 CPU-core<br />
|}<br />
<br />
== "B"-series ==<br />
<br />
{| class="wikitable"<br />
| [[B288|Allwinner B288]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=59</ref> || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|-<br />
| [[B300|Allwinner B300]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=86</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|}<br />
<br />
== "H"-Series ==<br />
Based on ARMv7/ARMv8 Cortex-A cores (A7/A53) targeted for video OTT (over-the-top) boxes and high-end gaming consoles:<br />
{| class="wikitable"<br />
| [[H2+|Allwinner H2+]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=62</ref> || <small>(sun8i)</small>&nbsp; || 4 x Cortex-A7 CPU-core&nbsp;<br />
|-<br />
| [[H3|Allwinner H3]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=47</ref> || <small>(sun8i)</small>&nbsp; || 4 x Cortex-A7 CPU-core&nbsp;<br />
|-<br />
| [[H8|Allwinner H8]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=46</ref> || <small>(sun8i)</small> || 8 x Cortex-A7 CPU-core<br />
|-<br />
| [[H80|Allwinner H80]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=46</ref> || <small>(sun8i)</small> || 8 x Cortex-A7 CPU-core<br />
|}<br />
<br />
'''64-bit'''<br />
{| class="wikitable"<br />
| [[H5|Allwinner H5]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=57</ref>&nbsp; || <small>(sun50i)</small>&nbsp; || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[H6|Allwinner H6]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=66</ref>&nbsp; || <small>(sun50i)</small>&nbsp; || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[H64|Allwinner H64]]<ref>http://web.archive.org/web/20160425223052/http://www.allwinnertech.com/en/clq/H_series/6100.html</ref> || <small>(sun50i)</small> || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[H313|Allwinner H313]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=90</ref> || <small>(sun50i)</small> || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[H616|Allwinner H616]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=89</ref> || <small>(sun50i)</small> || 4 x Cortex-A53 CPU-core<br />
|}<br />
<br />
== "R"-Series ==<br />
<br />
{| class="wikitable"<br />
| [[R6|Allwinner R6]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=79</ref> || <small>(sun3i)</small> || 1 x Cortex-A9 CPU-core<br />
|-<br />
| [[R7|Allwinner R7]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=82</ref> || <small>(sun8i)</small> || 1 x Cortex-A7 CPU-core<br />
|-<br />
| [[R8|Allwinner R8]]<ref>http://web.archive.org/web/20160510053338/http://www.allwinnertech.com/en/clq/R_series/2015/0514/R8.html</ref> || <small>(sun5i)</small>&nbsp; || 1 x Cortex-A8 CPU-core<br />
|-<br />
| [[R11|Allwinner R11]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=83</ref> || <small>(sun8i)</small> || 1 x Cortex-A7 CPU-core<br />
|-<br />
| [[R16|Allwinner R16]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=51</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[R40|Allwinner R40]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=56</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[R58|Allwinner R58]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=49</ref>&nbsp; || <small>(sun8i)</small> || 8 x Cortex-A7 CPU-core<br />
|-<br />
| [[R311|Allwinner R311]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=84</ref>&nbsp; || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[R328|Allwinner R328]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=85</ref>&nbsp; || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|}<br />
<br />
'''64-bit'''<br />
{| class="wikitable"<br />
| [[R329|Allwinner R329]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=91</ref>&nbsp; || <small>(sun50i)</small> || 2 x Cortex-A53 CPU-core<br />
|}<br />
<br />
The Allwinner R8 is repackaged version of the A13. This SoC gets used in the minicomputer presented in Next Thing Co.'s [[NextThingCo CHIP|''C.H.I.P.'']] kickstarter project ("The $9 computer")<ref>http://nextthing.co/</ref>.<br />
<br />
By comparing the product pages the R16 seems to be a relabeled version of A33. This is somewhat confirmed by the (identical) SoC ID the BROM reports.<ref>https://groups.google.com/d/msg/linux-sunxi/vx6oQMy-nis/vgVc8d1KBAAJ</ref><br />
<br />
'''64-bit'''<br />
{| class="wikitable"<br />
| [[R18|Allwinner R18]]|| <small>sun50i</small> || 4 x Cortex-A53 CPU-core<br />
|}<br />
<br />
== "T"-series ==<br />
<br />
{| class="wikitable"<br />
| [[T2|Allwinner T2]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=39</ref> || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|-<br />
| [[T3|Allwinner T3]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=41</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[T7|Allwinner T7]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=71</ref> || <small>(sun8i)</small> || 6 x Cortex-A7 CPU-core<br />
|-<br />
| [[T8|Allwinner T8]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=33</ref> || <small>(sun8i)</small> || 8 x Cortex-A7 CPU-core<br />
|}<br />
<br />
== "V"-series ==<br />
<br />
{| class="wikitable"<br />
| [[V3|Allwinner V3]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=37</ref> || <small>(sun8i)</small> || 1 x Cortex-A7 CPU-core<br />
|-<br />
| [[V3s|Allwinner V3s]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=38</ref> || <small>(sun8i)</small> || 1 x Cortex-A7 CPU-core<br />
|-<br />
| [[V5|Allwinner V5]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=70</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[V40|Allwinner V40]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=36</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[V66|Allwinner V66]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=35</ref> || <small>(sun8i)</small> || 8 x Cortex-A7 CPU-core<br />
|-<br />
| [[V316|Allwinner V316]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=87</ref> || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|-<br />
| [[V536|Allwinner V536]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=88</ref> || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|}<br />
<br />
== "F"-Series ==<br />
:'''{{note|The F series is not supported by the linux-sunxi community due to lack of developers and hardware. ''sun3i'' have only official linux support, ''sunii'' have no linux support, only Allwinner's "Melis" RTOS.}}'''<br />
<br />
Based on ARMv5 ARM926-EJS core and currently targeted for low market devices such as cheap ebook readers, etc.<br />
<br />
F1C700 seems to be a remarked A13, and it's ARMv7.<br />
<br />
{| class="wikitable"<br />
| [[C100|Boxchip C100]] || <small>(sun3i)</small><br />
|-<br />
| [[E200|Boxchip E200]] || <small>(sun3i)</small><br />
|-<br />
| [[F10|Boxchip F10]] <small>aka SoChip SC9800 aka Teclast T8100</small>&nbsp; || <small>(sunii)</small><br />
|-<br />
| [[F13|Boxchip F13]] || <small>(sunii)</small><br />
|-<br />
| [[F13|Boxchip F15]] <small>aka SoChip SC8600 aka Teclast T7200</small> || <small>(sunii)</small><br />
|-<br />
| [[F18|Boxchip F18]] || <small>(sunii)</small><br />
|-<br />
| [[F20|Boxchip F20]] || <small>(sun3i)</small><br />
|-<br />
| [[F23|Allwinner F23]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=30</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C100A|Allwinner F1C100A]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=29</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C100s|Allwinner F1C100s]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=73</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C200s|Allwinner F1C200s]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=74</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C500s|Allwinner F1C500s]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=75</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C600|Allwinner F1C600]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=28</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C700|Allwinner F1C700]] || <small>(sun5i)</small><br />
|-<br />
| [[F1C800|Allwinner F1C800]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=76</ref> || <small>(suniv)</small><br />
|}<br />
<br />
== "MR"-series ==<br />
<br />
{| class="wikitable"<br />
| [[MR100|Allwinner MR100]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=77</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[MR133|Allwinner MR133]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=86</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|}<br />
<br />
= 2013 naming scheme change =<br />
<br />
Initially, Allwinner named their SoCs chronologically:<br />
* sun4i = A10<br />
* sun5i = A13/A10s<br />
* sun6i = A31<br />
* sun7i = A20<br />
<br />
but, somewhere in 2013, Allwinner decided to update their naming scheme to be based on the ARM core used instead: (taken from the A80 SDK kernel code).<br />
<br />
Note: SoCs with "?" have never appeared on Allwinner's website. <ref>https://github.com/tinalinux/brandy/blob/r40-v1.y/SUNXI_README</ref><br />
<br />
{| class="wikitable"<br />
! sunxi (arm cores) !! sunxiwx (soc id) !! p (rev id) !! soc name !! cores !! notes<br />
|-<br />
| sun3i (arm926ejs) || sun3iw1 (0x1663) || sun3iw1p1 || [[F1C100s]], [[F1C100A]], [[F1C200s]], [[F1C500]], [[F1C600]], [[R6]] || 1xARM926EJ-S<br />
|-<br />
| style="text-align: left;" rowspan="4" | sun4i (cortex-a8) <br />
| sun4iw1 (0x1623) || sun4iw1p1 || [[A10]] || 1xCortex-A8<br />
|-<br />
| style="text-align: left;" rowspan="3" | sun4iw2 (0x1625)<br />
| sun4iw2p1 || [[A13]] || 1xCortex-A8<br />
|-<br />
| sun4iw2p2 || [[A12]] || ?<br />
|-<br />
| sun4iw2p3 || [[A10s]] || 1xCortex-A8<br />
|-<br />
| style="text-align: left;" rowspan="20" | sun8i <br />
(cortex-a7 smp)<br />
<br />
| style="text-align: left;" rowspan="2" | sun8iw1 (0x1633)<br />
<br />
| sun8iw1p1 || [[A31]] || 4xCortex-A7<br />
|-<br />
| sun8iw1p2 || [[A31s]] || 4xCortex-A7<br />
|-<br />
| style="text-align: left;" rowspan="2" | sun8iw2 (0x1651)<br />
<br />
| sun8iw2p1 || [[A20]] || 2xCortex-A7<br />
|-<br />
| sun8iw2p2 || ? || ?<br />
|-<br />
| style="text-align: left;" rowspan="2" | sun8iw3 (0x1650)<br />
<br />
| sun8iw3p1 || [[A23]] || 2xCortex-A7<br />
|-<br />
| sun8iw3p2 || ? || ?<br />
|-<br />
| sun8iw5 (0x1667) || sun8iw5p1 || [[A33]] || 4xCortex-A7<br />
|-<br />
| sun8iw6 (0x1673) || sun8iw6p1 || [[A83T]] || 8xCortex-A7<br />
|-<br />
| sun8iw7 (0x1680) || sun8iw7p1 || [[H3]], [[H2+]] || 4xCortex-A7<br />
|-<br />
| style="text-align: left;" rowspan="2" | sun8iw8 (0x1681)<br />
<br />
| sun8iw8p1 || [[V3]], [[V3s]] || 1xCortex-A7 || called V30 in allwinner's kernel source<br />
|-<br />
| sun8iw8p2 || ? || ? || called V33 in allwinner's kernel source<br />
|-<br />
| sun8iw10 (0x1699) || sun8iw10p1 || [[B288]], [[B100]] || 2xCortex-A7<br />
|-<br />
| style="text-align: left;" rowspan="4" | sun8iw11 (0x1701)<br />
<br />
| sun8iw11p1 || [[R40]], [[V40]], [[T3]], [[A20e]]? || 4xCortex-A7<br />
|-<br />
| sun8iw11p2 || ?? || 4xCortex-A7<br />
|-<br />
| sun8iw11p3 || ?? || 4xCortex-A7<br />
|-<br />
| sun8iw11p4 || ?? || 4xCortex-A7<br />
|-<br />
| sun8iw12 (0x1721) || sun8iw12p1 || [[V5]] || 4xCortex-A7<br />
|-<br />
| sun8iw15 (0x1755) || sun8iw15p1 || [[R311]] || 4xCortex-A7<br />
|-<br />
| sun8iw16 (0x1816) || sun8iw16p1 || [[V356]] || 2xCortex-A7<br />
|-<br />
| sun8iw17 (0x1708) || sun8iw17p1 || [[T7]] || 6xCortex-A7<br />
|-<br />
| style="text-align: left;" rowspan="2" | sun9i <br />
(cortex-a15/cortex-a7 big.LITTLE) <br />
<br />
| style="text-align: left;" rowspan="2" | sun9iw1 (0x1639)<br />
| sun9iw1p1 || [[A80]] || 4xCortex-A7 + 4xCortex-A15<br />
|-<br />
| sun9iw1p2 || [[A80T]] || ?<br />
|-<br />
| style="text-align: left;" rowspan="7" | sun50i <br />
(cortex-a53 smp) <br />
| sun50iw1 (0x1689) || sun50iw1p1 || [[A64]] || 4xCortex-A53<br />
|-<br />
| sun50iw2 (0x1718) || sun50iw2p1 || [[H5]] || 4xCortex-A53<br />
|-<br />
| sun50iw3 (0x1719) || sun50iw3p1 || [[A63]] || 4xCortex-A53<br />
|-<br />
| sun50iw6 (0x1728) || sun50iw6p1 || [[H6]] || 4xCortex-A53<br />
|-<br />
| sun50iw9 (0x1823) || sun50iw9p1 || [[H616]], [[H313]] || 4xCortex-A53<br />
|-<br />
| sun50iw10 (0x1855) || sun50iw10p1 || [[A100]] || 4xCortex-A53<br />
|-<br />
| sun50iw11 (0x????) || sun50iw11p1 || [[R329]] || 2xCortex-A53<br />
|}<br />
<br />
This new naming scheme is of absolutely no value with respect to the rest of the SoC. The actual ARM core(s) used are usually the least important piece of information for SoC support. This table completely ignores the fact that A20 is an updated A10 and is pin compatible. It also ignores the fact that A31 introduced a lot of changes which were carried on to the A23/A33 and possibly A80 parts. It therefore is quite likely that this naming scheme was purely a marketing decision, and that Allwinner marketing will change its mind again.<br />
<br />
= Features =<br />
* CPU: ARMv7-A [http://en.wikipedia.org/wiki/ARM_Cortex-A7 Cortex-A7], [http://en.wikipedia.org/wiki/ARM_Cortex-A15 Cortex-A15] or [http://en.wikipedia.org/wiki/ARM_Cortex-A8 Cortex-A8] Central Processor Unit with (co-)processor extensions:<br />
** Advanced SIMD: [http://en.wikipedia.org/wiki/ARM_architecture#Advanced_SIMD_.28NEON.29 NEON] (ARM's extended general-purpose advanced SIMD vector processing extension engine)<br />
** [[Vector Floating Point Unit]] ([http://en.wikipedia.org/wiki/ARM_architecture#Floating-point_.28VFP.29 VFPU]): ARM VFPv3 lite (Cortex-A8) / VFPv4 (Cortex-A7)<br />
** Security Extensions: <br />
*** [http://en.wikipedia.org/wiki/ARM_architecture#Security_extensions_.28TrustZone.29 TrustZone] secure world<br />
*** [[Security_System|Security accelerator]] supporting AES, DES, 3DES, SHA-1, MD5 and pseudo-random number generation<br />
** [http://en.wikipedia.org/wiki/ARM_architecture#Thumb-2 Thumb-2] instruction set extension for optimized code to reduce memory footprint and improve performance<br />
* GPU: [[Mali400]], Mali400-MP2, SGX544 or PowerVR G6230 Graphics Procesor Unit, supporting OpenGL ES2.<br />
* VPU: [[Cedar Engine]] (Video Processor Unit for audio and video hardware decoding or encoding)<br />
* HDMI-transmitter with [http://en.wikipedia.org/wiki/HDMI#CEC HDMI CEC] (Consumer Electronics Control), with exception of A13 which lacks HDMI-transmitter and SATA-controller<ref>[http://olimex.wordpress.com/2012/04/24/cortex-a8-in-tqfp-sure-allwinner-a13/ "Cortex A8 in TQFP? sure Allwinner A13"] ''Retrieved 23 September 2012''</ref><br />
* Hardware virtualization capabilities (Cortex-A7 only).<br />
* Up to 4GB memory (Cortex-A8), Up to 1TB memory with LPAE (Cortex-A7 only).<br />
<br />
== Comparison table ==<br />
{| class="wikitable"<br />
! scope="row" | !! [[A10]] !! [[A10s]] !! [[A13]] !! [[A20]] !! [[A23]] !! [[A31]] !! [[A31s]] !! [[A33]] !! [[A80]]<br />
|-<br />
! scope="row" | Generation <br />
| sun4i || sun5i || sun5i || sun7i || sun8i || sun6i || sun6i || sun8i || sun9i <br />
|-<br />
! scope="row" | CPU<br />
| Cortex-A8 || Cortex-A8 || Cortex-A8 || Cortex-A7 || Cortex-A7 ||Cortex-A7 || Cortex-A7 || Cortex-A7 || Cortex-A7 / A15 <br />
|-<br />
! scope="row" | CPU Maximum frequency<br />
| 1 GHz|| 1 GHz || 1 GHz|| 960 MHz|| 1.5 GHz || ? GHz || ? GHz || 1.5 GHz || 2 (??) GHz<br />
|-<br />
! scope="row" | Cores<br />
| 1 || 1 || 1 || 2 || 2 || 4 || 4 || 4 || 2 x 4<br />
|-<br />
! scope="row" | Extensions<br />
| NEON, VFPv3, Thumb-2 || NEON, VFPv3, Thumb-2 || NEON, VFPv3, Thumb-2 || NEON, VFPv3 / VFPv4, Thumb-2 ||NEON, VFPv3 / VFPv4, Thumb-2 || NEON, VFPv3 / VFPv4, Thumb-2 || NEON, VFPv3 / VFPv4, Thumb-2 || NEON, VFPv3 / VFPv4, Thumb-2 || ? (A80)<br />
|-<br />
! scope="row" | Memory<br />
| DDR2, DDR3</br> (max 2GB @ DDR800) || DDR2, DDR3</br> (max 2GB @ DDR800) || DDR2, DDR3</br> (max 512MB @ DDR800) || LPDDR3, DDR3,</br>LPDDR2 || DDR3</br>(max 1GB) || 2-channel DDR3, LPDDR2, </br>2-channel DDR3L, DDR3U || DDR3, DDR3L, LPDDR2 || single-channel DDR3, DDR3L</br>(max 1GB) || 2-channel DDR3, DDR3L, LPDDR3, LPDDR2</br> up to 8GB<br />
|-<br />
! scope="row" | GPU<br />
| [[Mali400]]</br>320&nbsp;MHz || [[Mali400]]</br>320&nbsp;MHz || [[Mali400]]</br>320&nbsp;MHz || [[Mali400]]-MP2</br>350&nbsp;MHz || [[Mali400]]-MP2 || SGX544</br>200&nbsp;MHz || SGX544</br>200&nbsp;MHz || [[Mali400]]-MP2 || 64-core PowerVR G6230<br />
|-<br />
! scope="row" | GPU API<br />
| OpenGL ES 2.0, OpenVG 1.1 || OpenGL ES 2.0, OpenVG 1.1 || OpenGL ES 2.0, OpenVG 1.1 || OpenGL ES 2.0, OpenVG 1.1 || OpenGL ES 2.0, OpenVG 1.1 || OpenGL ES 2.0, OpenVG 1.1, OpenCL 1.1, and DirectX 9.3 || OpenGL ES 2.0, OpenVG 1.1, OpenCL 1.1, and DirectX 9.3 || OpenGL ES 2.0, OpenVG 1.1 || OpenGL 3.x, OpenGL ES Next,3.0,2.0, Open CL 1.x, DirectX 11 level 9_3/10_0<ref>http://www.imgtec.com/news/detail.asp?ID=845</ref><br />
|-<br />
! scope="row" | [[Cedar Engine|Video decoder]]<br />
| 2160p || 1080p || 1080p || 2160p, 4K×2K, 1080p 3D || 1080p@60fps || 2160p, 4K×2K, 1080p 3D || 2160p, 1080p 3D || 1080p@60fps || ? (A80)<br />
|-<br />
! scope="row" | [[Cedar Engine|Video encoder]]<br />
| H.264 1080p@30fps, JPEG || H.264 1080p@30fps, JPEG || H.264 1080p@30fps, JPEG || H.264 1080p@30fps, JPEG || 1080p@60fps || H.264 1080p@60fps, JPEG || H264 1080p@30fps, 720p@60fps || H.264 1080p@60fps, JPEG || H.264 HP/VP8 4Kx2K@30fp<br />
|-<br />
! scope="row" | Audio decoder<br />
| AC3, DTS || ? || ? || AC3, DTS || - || ? (A31) || ? (A31S) || ? (A33) || ? (A80)<br />
|-<br />
! scope="row" | Video interfaces<br />
| HDMI 1.3, YPbPr, VGA, CPU/RGB/LVDS LCD || HDMI 1.3, RGB/LVDS LCD || RGB LCD, VGA|| HDMI 1.4, CVBS, YPbPr, VGA, CPU/RGB/LVDS LCD || CPU/RGB/LVDS LCD, MIPI DSI || HDMI 1.4, MIPI DSI, 2-channel LVDS, 2-channel RGB LCD || HDMI 1.4, LVDS, RGB LCD || CPU/RGB/LVDS LCD, MIPI DSI || HDMI 4K, RGB LCD 2048x1536@60fps, dual-channel LVDS 1920x1080@60fps, 4-lane MIPI DSI 1920x1200@60fps, 4-lane eDP 2560x1600@60fps<br />
|-<br />
! scope="row" | Audio interfaces<br />
| I2S, SPDIF, AC97 || I2S, AC97 || I2S, AC97 || I2S, PCM, AC97 || I2S, PCM || 2 I2S, 2 PCM || I2S, 2 PCM || ? (A33) || ? (A80)<br />
|-<br />
! scope="row" | USB OTG<br />
| 1 || 1 || 1 || 1 || 1 || 1 || 1 || ? (A33) || 1<br />
|-<br />
! scope="row" | USB Host<br />
| 2 || 1 || 1 || 2 || 1 || 2 || 2 || ? (A33) || 2x USB Host, USB 3.0/2.0 Dual-Role (host/device)<br />
|-<br />
! scope="row" | Ethernet<br />
| EMAC || EMAC || - || EMAC/GMAC || - || GMAC || GMAC || - || GMAC<br />
|-<br />
! scope="row" | Storage<br />
| NAND (max 64GB), SATA II, SD Card 3.0 || NAND (max 64GB), SD Card 3.0 || NAND (max 64GB), SD Card 3.0 || NAND, MMC, [http://olimex.wordpress.com/2013/04/05/allwinners-a10-and-a20-are-they-really-pin-to-pin-compatible-and-drop-in-replacement/#comment-5452 SATA] || raw NAND, eMMC, SD card || 4 x SD Card, eMMC NAND, 2-channel raw NAND || 4 x SD Card, eMMC NAND, raw NAND || 3 x SD Card, eMMC NAND, raw NAND || 4 x SD/MMC<br />
|-<br />
! scope="row" | Package<br />
| BGA441</br>19&nbsp;mm&nbsp;×&nbsp;19&nbsp;mm</br>0.80&nbsp;mm Pitch || BGA336</br>14&nbsp;mm&nbsp;×&nbsp;14&nbsp;mm</br>0.65&nbsp;mm Pitch || eLQFP176</br>20&nbsp;mm&nbsp;×&nbsp;20&nbsp;mm ||BGA441</br>19&nbsp;mm&nbsp;×&nbsp;19&nbsp;mm</br>0.80&nbsp;mm Pitch || FBGA280</br>14&nbsp;mm&nbsp;x&nbsp;14&nbsp;mm&nbsp;x&nbsp;1.4&nbsp;mm</br>0.80&nbsp;mm Pitch || BGA609</br>18&nbsp;mm&nbsp;×&nbsp;8&nbsp;mm</br>0.65&nbsp;mm Pitch || ? (A31S) || ? (Allwinner: pin compatible with A23) || ? (A80)<br />
|-<br />
! scope="row" | Lithography<br />
| 55 nm || 55 nm|| 55 nm || 40 nm || 40 nm || 40 nm || 40 nm || 40 nm || 28 nm<br />
|}<br />
<ref>http://blog.thinkteletronics.com/all-mobile-socsolutions/ All Mobile Soc/Solutions.</ref><br />
<br />
= References =<br />
<references /><br />
<br />
[[Category:System on Chip]]</div>
Frozeus
https://linux-sunxi.org/index.php?title=Allwinner_SoC_Family&diff=23636
Allwinner SoC Family
2020-11-08T13:21:31Z
<p>Frozeus: /* "R"-Series */</p>
<hr />
<div>= SoC series =<br />
'''A''' series processors are used for mobile applications, mainly referring to tablet application here;<br />
<br />
'''B''' for "Book", used for E-book tablet reader. <br />
<br />
'''H''' for “Homlet”, mainly used in home entertainment applications, including smart OTT boxes, HDMI mini PCs, gaming boxes, etc;<br />
<br />
'''V''' for video-related applications, including video surveillance, automotive DVR, etc;<br />
<br />
'''T''' series processors target the Automotive products like ADAS. <br />
<br />
'''F''' series are processors based on Allwinner’s melis OS, mainly used in smart video radios, video MP5, etc;<br />
<br />
== "A"-Series ==<br />
Based on ARMv7 Cortex-A cores (Cortex-A7, A8 and A15) targeted for high-end devices like digital media players, tablets, and netbooks:<br />
{| class="wikitable"<br />
| [[A10|Allwinner A10]] || <small>(sun4i)</small> || 1 x Cortex-A8 CPU-core<br />
|-<br />
| [[A13|Allwinner A13]] || <small>(sun5i)</small> || 1 x Cortex-A8 CPU-core<br />
|-<br />
| [[A10s|Allwinner A10s]] || <small>(sun5i)</small> || 1 x Cortex-A8 CPU-core<br />
|-<br />
| [[A20|Allwinner A20]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=45</ref> || <small>(sun7i)</small> || 2 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A23|Allwinner A23]] || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A31|Allwinner A31]] || <small>(sun6i)</small> || 4 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A31s|Allwinner A31s]] || <small>(sun6i)</small> || 4 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A33|Allwinner A33]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=23</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A40i|Allwinner A40i]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=69</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A50|Allwinner A50]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=72</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A80|Allwinner A80]] || <small>(sun9i)</small> || 4 x Cortex-A7 CPU-cores + 4 x Cortex-A15 CPU-cores&nbsp;<br /><small>(using ARM big.LITTLE heterogeneous CPU architecture)</small><br />
|-<br />
| [[A83T|Allwinner A83T]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=24</ref> || <small>(sun8i)</small>&nbsp; || 8 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A100|Allwinner A100]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=24</ref> || <small>(sun50i)</small>&nbsp; || 4 x Cortex-A53 CPU-cores<br />
|}<br />
<br />
'''64-bit'''<br />
{| class="wikitable"<br />
| [[A63|Allwinner A63]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=67</ref> || <small>(sun50i)</small>&nbsp; || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[A64|Allwinner A64]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=9</ref> || <small>(sun50i)</small>&nbsp; || 4 x Cortex-A53 CPU-core<br />
|}<br />
<br />
== "B"-series ==<br />
<br />
{| class="wikitable"<br />
| [[B288|Allwinner B288]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=59</ref> || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|-<br />
| [[B300|Allwinner B300]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=86</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|}<br />
<br />
== "H"-Series ==<br />
Based on ARMv7/ARMv8 Cortex-A cores (A7/A53) targeted for video OTT (over-the-top) boxes and high-end gaming consoles:<br />
{| class="wikitable"<br />
| [[H2+|Allwinner H2+]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=62</ref> || <small>(sun8i)</small>&nbsp; || 4 x Cortex-A7 CPU-core&nbsp;<br />
|-<br />
| [[H3|Allwinner H3]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=47</ref> || <small>(sun8i)</small>&nbsp; || 4 x Cortex-A7 CPU-core&nbsp;<br />
|-<br />
| [[H8|Allwinner H8]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=46</ref> || <small>(sun8i)</small> || 8 x Cortex-A7 CPU-core<br />
|-<br />
| [[H80|Allwinner H80]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=46</ref> || <small>(sun8i)</small> || 8 x Cortex-A7 CPU-core<br />
|}<br />
<br />
'''64-bit'''<br />
{| class="wikitable"<br />
| [[H5|Allwinner H5]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=57</ref>&nbsp; || <small>(sun50i)</small>&nbsp; || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[H6|Allwinner H6]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=66</ref>&nbsp; || <small>(sun50i)</small>&nbsp; || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[H64|Allwinner H64]]<ref>http://web.archive.org/web/20160425223052/http://www.allwinnertech.com/en/clq/H_series/6100.html</ref> || <small>(sun50i)</small> || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[H313|Allwinner H313]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=90</ref> || <small>(sun50i)</small> || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[H616|Allwinner H616]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=89</ref> || <small>(sun50i)</small> || 4 x Cortex-A53 CPU-core<br />
|}<br />
<br />
== "R"-Series ==<br />
<br />
{| class="wikitable"<br />
| [[R6|Allwinner R6]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=79</ref> || <small>(sun3i)</small> || 1 x Cortex-A9 CPU-core<br />
|-<br />
| [[R7|Allwinner R7]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=82</ref> || <small>(sun8i)</small> || 1 x Cortex-A7 CPU-core<br />
|-<br />
| [[R8|Allwinner R8]]<ref>http://web.archive.org/web/20160510053338/http://www.allwinnertech.com/en/clq/R_series/2015/0514/R8.html</ref> || <small>(sun5i)</small>&nbsp; || 1 x Cortex-A8 CPU-core<br />
|-<br />
| [[R11|Allwinner R11]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=83</ref> || <small>(sun8i)</small> || 1 x Cortex-A7 CPU-core<br />
|-<br />
| [[R16|Allwinner R16]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=51</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[R40|Allwinner R40]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=56</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[R58|Allwinner R58]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=49</ref>&nbsp; || <small>(sun8i)</small> || 8 x Cortex-A7 CPU-core<br />
|-<br />
| [[R311|Allwinner R311]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=84</ref>&nbsp; || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[R328|Allwinner R328]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=85</ref>&nbsp; || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|-<br />
| [[R329|Allwinner R329]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=91</ref>&nbsp; || <small>(sun50i)</small> || 2 x Cortex-A53 CPU-core<br />
|}<br />
<br />
The Allwinner R8 is repackaged version of the A13. This SoC gets used in the minicomputer presented in Next Thing Co.'s [[NextThingCo CHIP|''C.H.I.P.'']] kickstarter project ("The $9 computer")<ref>http://nextthing.co/</ref>.<br />
<br />
By comparing the product pages the R16 seems to be a relabeled version of A33. This is somewhat confirmed by the (identical) SoC ID the BROM reports.<ref>https://groups.google.com/d/msg/linux-sunxi/vx6oQMy-nis/vgVc8d1KBAAJ</ref><br />
<br />
'''64-bit'''<br />
{| class="wikitable"<br />
| [[R18|Allwinner R18]]|| <small>sun50i</small> || 4 x Cortex-A53 CPU-core<br />
|}<br />
<br />
== "T"-series ==<br />
<br />
{| class="wikitable"<br />
| [[T2|Allwinner T2]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=39</ref> || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|-<br />
| [[T3|Allwinner T3]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=41</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[T7|Allwinner T7]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=71</ref> || <small>(sun8i)</small> || 6 x Cortex-A7 CPU-core<br />
|-<br />
| [[T8|Allwinner T8]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=33</ref> || <small>(sun8i)</small> || 8 x Cortex-A7 CPU-core<br />
|}<br />
<br />
== "V"-series ==<br />
<br />
{| class="wikitable"<br />
| [[V3|Allwinner V3]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=37</ref> || <small>(sun8i)</small> || 1 x Cortex-A7 CPU-core<br />
|-<br />
| [[V3s|Allwinner V3s]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=38</ref> || <small>(sun8i)</small> || 1 x Cortex-A7 CPU-core<br />
|-<br />
| [[V5|Allwinner V5]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=70</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[V40|Allwinner V40]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=36</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[V66|Allwinner V66]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=35</ref> || <small>(sun8i)</small> || 8 x Cortex-A7 CPU-core<br />
|-<br />
| [[V316|Allwinner V316]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=87</ref> || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|-<br />
| [[V536|Allwinner V536]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=88</ref> || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|}<br />
<br />
== "F"-Series ==<br />
:'''{{note|The F series is not supported by the linux-sunxi community due to lack of developers and hardware. ''sun3i'' have only official linux support, ''sunii'' have no linux support, only Allwinner's "Melis" RTOS.}}'''<br />
<br />
Based on ARMv5 ARM926-EJS core and currently targeted for low market devices such as cheap ebook readers, etc.<br />
<br />
F1C700 seems to be a remarked A13, and it's ARMv7.<br />
<br />
{| class="wikitable"<br />
| [[C100|Boxchip C100]] || <small>(sun3i)</small><br />
|-<br />
| [[E200|Boxchip E200]] || <small>(sun3i)</small><br />
|-<br />
| [[F10|Boxchip F10]] <small>aka SoChip SC9800 aka Teclast T8100</small>&nbsp; || <small>(sunii)</small><br />
|-<br />
| [[F13|Boxchip F13]] || <small>(sunii)</small><br />
|-<br />
| [[F13|Boxchip F15]] <small>aka SoChip SC8600 aka Teclast T7200</small> || <small>(sunii)</small><br />
|-<br />
| [[F18|Boxchip F18]] || <small>(sunii)</small><br />
|-<br />
| [[F20|Boxchip F20]] || <small>(sun3i)</small><br />
|-<br />
| [[F23|Allwinner F23]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=30</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C100A|Allwinner F1C100A]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=29</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C100s|Allwinner F1C100s]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=73</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C200s|Allwinner F1C200s]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=74</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C500s|Allwinner F1C500s]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=75</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C600|Allwinner F1C600]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=28</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C700|Allwinner F1C700]] || <small>(sun5i)</small><br />
|-<br />
| [[F1C800|Allwinner F1C800]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=76</ref> || <small>(suniv)</small><br />
|}<br />
<br />
== "MR"-series ==<br />
<br />
{| class="wikitable"<br />
| [[MR100|Allwinner MR100]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=77</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[MR133|Allwinner MR133]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=86</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|}<br />
<br />
= 2013 naming scheme change =<br />
<br />
Initially, Allwinner named their SoCs chronologically:<br />
* sun4i = A10<br />
* sun5i = A13/A10s<br />
* sun6i = A31<br />
* sun7i = A20<br />
<br />
but, somewhere in 2013, Allwinner decided to update their naming scheme to be based on the ARM core used instead: (taken from the A80 SDK kernel code).<br />
<br />
Note: SoCs with "?" have never appeared on Allwinner's website. <ref>https://github.com/tinalinux/brandy/blob/r40-v1.y/SUNXI_README</ref><br />
<br />
{| class="wikitable"<br />
! sunxi (arm cores) !! sunxiwx (soc id) !! p (rev id) !! soc name !! cores !! notes<br />
|-<br />
| sun3i (arm926ejs) || sun3iw1 (0x1663) || sun3iw1p1 || [[F1C100s]], [[F1C100A]], [[F1C200s]], [[F1C500]], [[F1C600]], [[R6]] || 1xARM926EJ-S<br />
|-<br />
| style="text-align: left;" rowspan="4" | sun4i (cortex-a8) <br />
| sun4iw1 (0x1623) || sun4iw1p1 || [[A10]] || 1xCortex-A8<br />
|-<br />
| style="text-align: left;" rowspan="3" | sun4iw2 (0x1625)<br />
| sun4iw2p1 || [[A13]] || 1xCortex-A8<br />
|-<br />
| sun4iw2p2 || [[A12]] || ?<br />
|-<br />
| sun4iw2p3 || [[A10s]] || 1xCortex-A8<br />
|-<br />
| style="text-align: left;" rowspan="20" | sun8i <br />
(cortex-a7 smp)<br />
<br />
| style="text-align: left;" rowspan="2" | sun8iw1 (0x1633)<br />
<br />
| sun8iw1p1 || [[A31]] || 4xCortex-A7<br />
|-<br />
| sun8iw1p2 || [[A31s]] || 4xCortex-A7<br />
|-<br />
| style="text-align: left;" rowspan="2" | sun8iw2 (0x1651)<br />
<br />
| sun8iw2p1 || [[A20]] || 2xCortex-A7<br />
|-<br />
| sun8iw2p2 || ? || ?<br />
|-<br />
| style="text-align: left;" rowspan="2" | sun8iw3 (0x1650)<br />
<br />
| sun8iw3p1 || [[A23]] || 2xCortex-A7<br />
|-<br />
| sun8iw3p2 || ? || ?<br />
|-<br />
| sun8iw5 (0x1667) || sun8iw5p1 || [[A33]] || 4xCortex-A7<br />
|-<br />
| sun8iw6 (0x1673) || sun8iw6p1 || [[A83T]] || 8xCortex-A7<br />
|-<br />
| sun8iw7 (0x1680) || sun8iw7p1 || [[H3]], [[H2+]] || 4xCortex-A7<br />
|-<br />
| style="text-align: left;" rowspan="2" | sun8iw8 (0x1681)<br />
<br />
| sun8iw8p1 || [[V3]], [[V3s]] || 1xCortex-A7 || called V30 in allwinner's kernel source<br />
|-<br />
| sun8iw8p2 || ? || ? || called V33 in allwinner's kernel source<br />
|-<br />
| sun8iw10 (0x1699) || sun8iw10p1 || [[B288]], [[B100]] || 2xCortex-A7<br />
|-<br />
| style="text-align: left;" rowspan="4" | sun8iw11 (0x1701)<br />
<br />
| sun8iw11p1 || [[R40]], [[V40]], [[T3]], [[A20e]]? || 4xCortex-A7<br />
|-<br />
| sun8iw11p2 || ?? || 4xCortex-A7<br />
|-<br />
| sun8iw11p3 || ?? || 4xCortex-A7<br />
|-<br />
| sun8iw11p4 || ?? || 4xCortex-A7<br />
|-<br />
| sun8iw12 (0x1721) || sun8iw12p1 || [[V5]] || 4xCortex-A7<br />
|-<br />
| sun8iw15 (0x1755) || sun8iw15p1 || [[R311]] || 4xCortex-A7<br />
|-<br />
| sun8iw16 (0x1816) || sun8iw16p1 || [[V356]] || 2xCortex-A7<br />
|-<br />
| sun8iw17 (0x1708) || sun8iw17p1 || [[T7]] || 6xCortex-A7<br />
|-<br />
| style="text-align: left;" rowspan="2" | sun9i <br />
(cortex-a15/cortex-a7 big.LITTLE) <br />
<br />
| style="text-align: left;" rowspan="2" | sun9iw1 (0x1639)<br />
| sun9iw1p1 || [[A80]] || 4xCortex-A7 + 4xCortex-A15<br />
|-<br />
| sun9iw1p2 || [[A80T]] || ?<br />
|-<br />
| style="text-align: left;" rowspan="7" | sun50i <br />
(cortex-a53 smp) <br />
| sun50iw1 (0x1689) || sun50iw1p1 || [[A64]] || 4xCortex-A53<br />
|-<br />
| sun50iw2 (0x1718) || sun50iw2p1 || [[H5]] || 4xCortex-A53<br />
|-<br />
| sun50iw3 (0x1719) || sun50iw3p1 || [[A63]] || 4xCortex-A53<br />
|-<br />
| sun50iw6 (0x1728) || sun50iw6p1 || [[H6]] || 4xCortex-A53<br />
|-<br />
| sun50iw9 (0x1823) || sun50iw9p1 || [[H616]], [[H313]] || 4xCortex-A53<br />
|-<br />
| sun50iw10 (0x1855) || sun50iw10p1 || [[A100]] || 4xCortex-A53<br />
|-<br />
| sun50iw11 (0x????) || sun50iw11p1 || [[R329]] || 2xCortex-A53<br />
|}<br />
<br />
This new naming scheme is of absolutely no value with respect to the rest of the SoC. The actual ARM core(s) used are usually the least important piece of information for SoC support. This table completely ignores the fact that A20 is an updated A10 and is pin compatible. It also ignores the fact that A31 introduced a lot of changes which were carried on to the A23/A33 and possibly A80 parts. It therefore is quite likely that this naming scheme was purely a marketing decision, and that Allwinner marketing will change its mind again.<br />
<br />
= Features =<br />
* CPU: ARMv7-A [http://en.wikipedia.org/wiki/ARM_Cortex-A7 Cortex-A7], [http://en.wikipedia.org/wiki/ARM_Cortex-A15 Cortex-A15] or [http://en.wikipedia.org/wiki/ARM_Cortex-A8 Cortex-A8] Central Processor Unit with (co-)processor extensions:<br />
** Advanced SIMD: [http://en.wikipedia.org/wiki/ARM_architecture#Advanced_SIMD_.28NEON.29 NEON] (ARM's extended general-purpose advanced SIMD vector processing extension engine)<br />
** [[Vector Floating Point Unit]] ([http://en.wikipedia.org/wiki/ARM_architecture#Floating-point_.28VFP.29 VFPU]): ARM VFPv3 lite (Cortex-A8) / VFPv4 (Cortex-A7)<br />
** Security Extensions: <br />
*** [http://en.wikipedia.org/wiki/ARM_architecture#Security_extensions_.28TrustZone.29 TrustZone] secure world<br />
*** [[Security_System|Security accelerator]] supporting AES, DES, 3DES, SHA-1, MD5 and pseudo-random number generation<br />
** [http://en.wikipedia.org/wiki/ARM_architecture#Thumb-2 Thumb-2] instruction set extension for optimized code to reduce memory footprint and improve performance<br />
* GPU: [[Mali400]], Mali400-MP2, SGX544 or PowerVR G6230 Graphics Procesor Unit, supporting OpenGL ES2.<br />
* VPU: [[Cedar Engine]] (Video Processor Unit for audio and video hardware decoding or encoding)<br />
* HDMI-transmitter with [http://en.wikipedia.org/wiki/HDMI#CEC HDMI CEC] (Consumer Electronics Control), with exception of A13 which lacks HDMI-transmitter and SATA-controller<ref>[http://olimex.wordpress.com/2012/04/24/cortex-a8-in-tqfp-sure-allwinner-a13/ "Cortex A8 in TQFP? sure Allwinner A13"] ''Retrieved 23 September 2012''</ref><br />
* Hardware virtualization capabilities (Cortex-A7 only).<br />
* Up to 4GB memory (Cortex-A8), Up to 1TB memory with LPAE (Cortex-A7 only).<br />
<br />
== Comparison table ==<br />
{| class="wikitable"<br />
! scope="row" | !! [[A10]] !! [[A10s]] !! [[A13]] !! [[A20]] !! [[A23]] !! [[A31]] !! [[A31s]] !! [[A33]] !! [[A80]]<br />
|-<br />
! scope="row" | Generation <br />
| sun4i || sun5i || sun5i || sun7i || sun8i || sun6i || sun6i || sun8i || sun9i <br />
|-<br />
! scope="row" | CPU<br />
| Cortex-A8 || Cortex-A8 || Cortex-A8 || Cortex-A7 || Cortex-A7 ||Cortex-A7 || Cortex-A7 || Cortex-A7 || Cortex-A7 / A15 <br />
|-<br />
! scope="row" | CPU Maximum frequency<br />
| 1 GHz|| 1 GHz || 1 GHz|| 960 MHz|| 1.5 GHz || ? GHz || ? GHz || 1.5 GHz || 2 (??) GHz<br />
|-<br />
! scope="row" | Cores<br />
| 1 || 1 || 1 || 2 || 2 || 4 || 4 || 4 || 2 x 4<br />
|-<br />
! scope="row" | Extensions<br />
| NEON, VFPv3, Thumb-2 || NEON, VFPv3, Thumb-2 || NEON, VFPv3, Thumb-2 || NEON, VFPv3 / VFPv4, Thumb-2 ||NEON, VFPv3 / VFPv4, Thumb-2 || NEON, VFPv3 / VFPv4, Thumb-2 || NEON, VFPv3 / VFPv4, Thumb-2 || NEON, VFPv3 / VFPv4, Thumb-2 || ? (A80)<br />
|-<br />
! scope="row" | Memory<br />
| DDR2, DDR3</br> (max 2GB @ DDR800) || DDR2, DDR3</br> (max 2GB @ DDR800) || DDR2, DDR3</br> (max 512MB @ DDR800) || LPDDR3, DDR3,</br>LPDDR2 || DDR3</br>(max 1GB) || 2-channel DDR3, LPDDR2, </br>2-channel DDR3L, DDR3U || DDR3, DDR3L, LPDDR2 || single-channel DDR3, DDR3L</br>(max 1GB) || 2-channel DDR3, DDR3L, LPDDR3, LPDDR2</br> up to 8GB<br />
|-<br />
! scope="row" | GPU<br />
| [[Mali400]]</br>320&nbsp;MHz || [[Mali400]]</br>320&nbsp;MHz || [[Mali400]]</br>320&nbsp;MHz || [[Mali400]]-MP2</br>350&nbsp;MHz || [[Mali400]]-MP2 || SGX544</br>200&nbsp;MHz || SGX544</br>200&nbsp;MHz || [[Mali400]]-MP2 || 64-core PowerVR G6230<br />
|-<br />
! scope="row" | GPU API<br />
| OpenGL ES 2.0, OpenVG 1.1 || OpenGL ES 2.0, OpenVG 1.1 || OpenGL ES 2.0, OpenVG 1.1 || OpenGL ES 2.0, OpenVG 1.1 || OpenGL ES 2.0, OpenVG 1.1 || OpenGL ES 2.0, OpenVG 1.1, OpenCL 1.1, and DirectX 9.3 || OpenGL ES 2.0, OpenVG 1.1, OpenCL 1.1, and DirectX 9.3 || OpenGL ES 2.0, OpenVG 1.1 || OpenGL 3.x, OpenGL ES Next,3.0,2.0, Open CL 1.x, DirectX 11 level 9_3/10_0<ref>http://www.imgtec.com/news/detail.asp?ID=845</ref><br />
|-<br />
! scope="row" | [[Cedar Engine|Video decoder]]<br />
| 2160p || 1080p || 1080p || 2160p, 4K×2K, 1080p 3D || 1080p@60fps || 2160p, 4K×2K, 1080p 3D || 2160p, 1080p 3D || 1080p@60fps || ? (A80)<br />
|-<br />
! scope="row" | [[Cedar Engine|Video encoder]]<br />
| H.264 1080p@30fps, JPEG || H.264 1080p@30fps, JPEG || H.264 1080p@30fps, JPEG || H.264 1080p@30fps, JPEG || 1080p@60fps || H.264 1080p@60fps, JPEG || H264 1080p@30fps, 720p@60fps || H.264 1080p@60fps, JPEG || H.264 HP/VP8 4Kx2K@30fp<br />
|-<br />
! scope="row" | Audio decoder<br />
| AC3, DTS || ? || ? || AC3, DTS || - || ? (A31) || ? (A31S) || ? (A33) || ? (A80)<br />
|-<br />
! scope="row" | Video interfaces<br />
| HDMI 1.3, YPbPr, VGA, CPU/RGB/LVDS LCD || HDMI 1.3, RGB/LVDS LCD || RGB LCD, VGA|| HDMI 1.4, CVBS, YPbPr, VGA, CPU/RGB/LVDS LCD || CPU/RGB/LVDS LCD, MIPI DSI || HDMI 1.4, MIPI DSI, 2-channel LVDS, 2-channel RGB LCD || HDMI 1.4, LVDS, RGB LCD || CPU/RGB/LVDS LCD, MIPI DSI || HDMI 4K, RGB LCD 2048x1536@60fps, dual-channel LVDS 1920x1080@60fps, 4-lane MIPI DSI 1920x1200@60fps, 4-lane eDP 2560x1600@60fps<br />
|-<br />
! scope="row" | Audio interfaces<br />
| I2S, SPDIF, AC97 || I2S, AC97 || I2S, AC97 || I2S, PCM, AC97 || I2S, PCM || 2 I2S, 2 PCM || I2S, 2 PCM || ? (A33) || ? (A80)<br />
|-<br />
! scope="row" | USB OTG<br />
| 1 || 1 || 1 || 1 || 1 || 1 || 1 || ? (A33) || 1<br />
|-<br />
! scope="row" | USB Host<br />
| 2 || 1 || 1 || 2 || 1 || 2 || 2 || ? (A33) || 2x USB Host, USB 3.0/2.0 Dual-Role (host/device)<br />
|-<br />
! scope="row" | Ethernet<br />
| EMAC || EMAC || - || EMAC/GMAC || - || GMAC || GMAC || - || GMAC<br />
|-<br />
! scope="row" | Storage<br />
| NAND (max 64GB), SATA II, SD Card 3.0 || NAND (max 64GB), SD Card 3.0 || NAND (max 64GB), SD Card 3.0 || NAND, MMC, [http://olimex.wordpress.com/2013/04/05/allwinners-a10-and-a20-are-they-really-pin-to-pin-compatible-and-drop-in-replacement/#comment-5452 SATA] || raw NAND, eMMC, SD card || 4 x SD Card, eMMC NAND, 2-channel raw NAND || 4 x SD Card, eMMC NAND, raw NAND || 3 x SD Card, eMMC NAND, raw NAND || 4 x SD/MMC<br />
|-<br />
! scope="row" | Package<br />
| BGA441</br>19&nbsp;mm&nbsp;×&nbsp;19&nbsp;mm</br>0.80&nbsp;mm Pitch || BGA336</br>14&nbsp;mm&nbsp;×&nbsp;14&nbsp;mm</br>0.65&nbsp;mm Pitch || eLQFP176</br>20&nbsp;mm&nbsp;×&nbsp;20&nbsp;mm ||BGA441</br>19&nbsp;mm&nbsp;×&nbsp;19&nbsp;mm</br>0.80&nbsp;mm Pitch || FBGA280</br>14&nbsp;mm&nbsp;x&nbsp;14&nbsp;mm&nbsp;x&nbsp;1.4&nbsp;mm</br>0.80&nbsp;mm Pitch || BGA609</br>18&nbsp;mm&nbsp;×&nbsp;8&nbsp;mm</br>0.65&nbsp;mm Pitch || ? (A31S) || ? (Allwinner: pin compatible with A23) || ? (A80)<br />
|-<br />
! scope="row" | Lithography<br />
| 55 nm || 55 nm|| 55 nm || 40 nm || 40 nm || 40 nm || 40 nm || 40 nm || 28 nm<br />
|}<br />
<ref>http://blog.thinkteletronics.com/all-mobile-socsolutions/ All Mobile Soc/Solutions.</ref><br />
<br />
= References =<br />
<references /><br />
<br />
[[Category:System on Chip]]</div>
Frozeus
https://linux-sunxi.org/index.php?title=Allwinner_SoC_Family&diff=23635
Allwinner SoC Family
2020-11-08T13:19:42Z
<p>Frozeus: Add R329</p>
<hr />
<div>= SoC series =<br />
'''A''' series processors are used for mobile applications, mainly referring to tablet application here;<br />
<br />
'''B''' for "Book", used for E-book tablet reader. <br />
<br />
'''H''' for “Homlet”, mainly used in home entertainment applications, including smart OTT boxes, HDMI mini PCs, gaming boxes, etc;<br />
<br />
'''V''' for video-related applications, including video surveillance, automotive DVR, etc;<br />
<br />
'''T''' series processors target the Automotive products like ADAS. <br />
<br />
'''F''' series are processors based on Allwinner’s melis OS, mainly used in smart video radios, video MP5, etc;<br />
<br />
== "A"-Series ==<br />
Based on ARMv7 Cortex-A cores (Cortex-A7, A8 and A15) targeted for high-end devices like digital media players, tablets, and netbooks:<br />
{| class="wikitable"<br />
| [[A10|Allwinner A10]] || <small>(sun4i)</small> || 1 x Cortex-A8 CPU-core<br />
|-<br />
| [[A13|Allwinner A13]] || <small>(sun5i)</small> || 1 x Cortex-A8 CPU-core<br />
|-<br />
| [[A10s|Allwinner A10s]] || <small>(sun5i)</small> || 1 x Cortex-A8 CPU-core<br />
|-<br />
| [[A20|Allwinner A20]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=45</ref> || <small>(sun7i)</small> || 2 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A23|Allwinner A23]] || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A31|Allwinner A31]] || <small>(sun6i)</small> || 4 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A31s|Allwinner A31s]] || <small>(sun6i)</small> || 4 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A33|Allwinner A33]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=23</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A40i|Allwinner A40i]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=69</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A50|Allwinner A50]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=72</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A80|Allwinner A80]] || <small>(sun9i)</small> || 4 x Cortex-A7 CPU-cores + 4 x Cortex-A15 CPU-cores&nbsp;<br /><small>(using ARM big.LITTLE heterogeneous CPU architecture)</small><br />
|-<br />
| [[A83T|Allwinner A83T]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=24</ref> || <small>(sun8i)</small>&nbsp; || 8 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A100|Allwinner A100]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=24</ref> || <small>(sun50i)</small>&nbsp; || 4 x Cortex-A53 CPU-cores<br />
|}<br />
<br />
'''64-bit'''<br />
{| class="wikitable"<br />
| [[A63|Allwinner A63]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=67</ref> || <small>(sun50i)</small>&nbsp; || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[A64|Allwinner A64]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=9</ref> || <small>(sun50i)</small>&nbsp; || 4 x Cortex-A53 CPU-core<br />
|}<br />
<br />
== "B"-series ==<br />
<br />
{| class="wikitable"<br />
| [[B288|Allwinner B288]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=59</ref> || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|-<br />
| [[B300|Allwinner B300]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=86</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|}<br />
<br />
== "H"-Series ==<br />
Based on ARMv7/ARMv8 Cortex-A cores (A7/A53) targeted for video OTT (over-the-top) boxes and high-end gaming consoles:<br />
{| class="wikitable"<br />
| [[H2+|Allwinner H2+]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=62</ref> || <small>(sun8i)</small>&nbsp; || 4 x Cortex-A7 CPU-core&nbsp;<br />
|-<br />
| [[H3|Allwinner H3]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=47</ref> || <small>(sun8i)</small>&nbsp; || 4 x Cortex-A7 CPU-core&nbsp;<br />
|-<br />
| [[H8|Allwinner H8]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=46</ref> || <small>(sun8i)</small> || 8 x Cortex-A7 CPU-core<br />
|-<br />
| [[H80|Allwinner H80]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=46</ref> || <small>(sun8i)</small> || 8 x Cortex-A7 CPU-core<br />
|}<br />
<br />
'''64-bit'''<br />
{| class="wikitable"<br />
| [[H5|Allwinner H5]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=57</ref>&nbsp; || <small>(sun50i)</small>&nbsp; || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[H6|Allwinner H6]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=66</ref>&nbsp; || <small>(sun50i)</small>&nbsp; || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[H64|Allwinner H64]]<ref>http://web.archive.org/web/20160425223052/http://www.allwinnertech.com/en/clq/H_series/6100.html</ref> || <small>(sun50i)</small> || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[H313|Allwinner H313]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=90</ref> || <small>(sun50i)</small> || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[H616|Allwinner H616]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=89</ref> || <small>(sun50i)</small> || 4 x Cortex-A53 CPU-core<br />
|}<br />
<br />
== "R"-Series ==<br />
<br />
{| class="wikitable"<br />
| [[R6|Allwinner R6]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=79</ref> || <small>(sun3i)</small> || 1 x Cortex-A9 CPU-core<br />
|-<br />
| [[R7|Allwinner R7]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=82</ref> || <small>(sun8i)</small> || 1 x Cortex-A7 CPU-core<br />
|-<br />
| [[R8|Allwinner R8]]<ref>http://web.archive.org/web/20160510053338/http://www.allwinnertech.com/en/clq/R_series/2015/0514/R8.html</ref> || <small>(sun5i)</small>&nbsp; || 1 x Cortex-A8 CPU-core<br />
|-<br />
| [[R11|Allwinner R11]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=83</ref> || <small>(sun8i)</small> || 1 x Cortex-A7 CPU-core<br />
|-<br />
| [[R16|Allwinner R16]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=51</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[R40|Allwinner R40]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=56</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[R58|Allwinner R58]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=49</ref>&nbsp; || <small>(sun8i)</small> || 8 x Cortex-A7 CPU-core<br />
|-<br />
| [[R311|Allwinner R311]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=84</ref>&nbsp; || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[R328|Allwinner R328]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=85</ref>&nbsp; || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|-<br />
| [[R329|Allwinner R329]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=85</ref>&nbsp; || <small>(sun50i)</small> || 2 x Cortex-A53 CPU-core<br />
|}<br />
<br />
The Allwinner R8 is repackaged version of the A13. This SoC gets used in the minicomputer presented in Next Thing Co.'s [[NextThingCo CHIP|''C.H.I.P.'']] kickstarter project ("The $9 computer")<ref>http://nextthing.co/</ref>.<br />
<br />
By comparing the product pages the R16 seems to be a relabeled version of A33. This is somewhat confirmed by the (identical) SoC ID the BROM reports.<ref>https://groups.google.com/d/msg/linux-sunxi/vx6oQMy-nis/vgVc8d1KBAAJ</ref><br />
<br />
'''64-bit'''<br />
{| class="wikitable"<br />
| [[R18|Allwinner R18]]|| <small>sun50i</small> || 4 x Cortex-A53 CPU-core<br />
|}<br />
<br />
== "T"-series ==<br />
<br />
{| class="wikitable"<br />
| [[T2|Allwinner T2]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=39</ref> || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|-<br />
| [[T3|Allwinner T3]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=41</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[T7|Allwinner T7]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=71</ref> || <small>(sun8i)</small> || 6 x Cortex-A7 CPU-core<br />
|-<br />
| [[T8|Allwinner T8]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=33</ref> || <small>(sun8i)</small> || 8 x Cortex-A7 CPU-core<br />
|}<br />
<br />
== "V"-series ==<br />
<br />
{| class="wikitable"<br />
| [[V3|Allwinner V3]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=37</ref> || <small>(sun8i)</small> || 1 x Cortex-A7 CPU-core<br />
|-<br />
| [[V3s|Allwinner V3s]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=38</ref> || <small>(sun8i)</small> || 1 x Cortex-A7 CPU-core<br />
|-<br />
| [[V5|Allwinner V5]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=70</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[V40|Allwinner V40]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=36</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[V66|Allwinner V66]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=35</ref> || <small>(sun8i)</small> || 8 x Cortex-A7 CPU-core<br />
|-<br />
| [[V316|Allwinner V316]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=87</ref> || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|-<br />
| [[V536|Allwinner V536]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=88</ref> || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|}<br />
<br />
== "F"-Series ==<br />
:'''{{note|The F series is not supported by the linux-sunxi community due to lack of developers and hardware. ''sun3i'' have only official linux support, ''sunii'' have no linux support, only Allwinner's "Melis" RTOS.}}'''<br />
<br />
Based on ARMv5 ARM926-EJS core and currently targeted for low market devices such as cheap ebook readers, etc.<br />
<br />
F1C700 seems to be a remarked A13, and it's ARMv7.<br />
<br />
{| class="wikitable"<br />
| [[C100|Boxchip C100]] || <small>(sun3i)</small><br />
|-<br />
| [[E200|Boxchip E200]] || <small>(sun3i)</small><br />
|-<br />
| [[F10|Boxchip F10]] <small>aka SoChip SC9800 aka Teclast T8100</small>&nbsp; || <small>(sunii)</small><br />
|-<br />
| [[F13|Boxchip F13]] || <small>(sunii)</small><br />
|-<br />
| [[F13|Boxchip F15]] <small>aka SoChip SC8600 aka Teclast T7200</small> || <small>(sunii)</small><br />
|-<br />
| [[F18|Boxchip F18]] || <small>(sunii)</small><br />
|-<br />
| [[F20|Boxchip F20]] || <small>(sun3i)</small><br />
|-<br />
| [[F23|Allwinner F23]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=30</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C100A|Allwinner F1C100A]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=29</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C100s|Allwinner F1C100s]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=73</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C200s|Allwinner F1C200s]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=74</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C500s|Allwinner F1C500s]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=75</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C600|Allwinner F1C600]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=28</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C700|Allwinner F1C700]] || <small>(sun5i)</small><br />
|-<br />
| [[F1C800|Allwinner F1C800]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=76</ref> || <small>(suniv)</small><br />
|}<br />
<br />
== "MR"-series ==<br />
<br />
{| class="wikitable"<br />
| [[MR100|Allwinner MR100]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=77</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[MR133|Allwinner MR133]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=86</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|}<br />
<br />
= 2013 naming scheme change =<br />
<br />
Initially, Allwinner named their SoCs chronologically:<br />
* sun4i = A10<br />
* sun5i = A13/A10s<br />
* sun6i = A31<br />
* sun7i = A20<br />
<br />
but, somewhere in 2013, Allwinner decided to update their naming scheme to be based on the ARM core used instead: (taken from the A80 SDK kernel code).<br />
<br />
Note: SoCs with "?" have never appeared on Allwinner's website. <ref>https://github.com/tinalinux/brandy/blob/r40-v1.y/SUNXI_README</ref><br />
<br />
{| class="wikitable"<br />
! sunxi (arm cores) !! sunxiwx (soc id) !! p (rev id) !! soc name !! cores !! notes<br />
|-<br />
| sun3i (arm926ejs) || sun3iw1 (0x1663) || sun3iw1p1 || [[F1C100s]], [[F1C100A]], [[F1C200s]], [[F1C500]], [[F1C600]], [[R6]] || 1xARM926EJ-S<br />
|-<br />
| style="text-align: left;" rowspan="4" | sun4i (cortex-a8) <br />
| sun4iw1 (0x1623) || sun4iw1p1 || [[A10]] || 1xCortex-A8<br />
|-<br />
| style="text-align: left;" rowspan="3" | sun4iw2 (0x1625)<br />
| sun4iw2p1 || [[A13]] || 1xCortex-A8<br />
|-<br />
| sun4iw2p2 || [[A12]] || ?<br />
|-<br />
| sun4iw2p3 || [[A10s]] || 1xCortex-A8<br />
|-<br />
| style="text-align: left;" rowspan="20" | sun8i <br />
(cortex-a7 smp)<br />
<br />
| style="text-align: left;" rowspan="2" | sun8iw1 (0x1633)<br />
<br />
| sun8iw1p1 || [[A31]] || 4xCortex-A7<br />
|-<br />
| sun8iw1p2 || [[A31s]] || 4xCortex-A7<br />
|-<br />
| style="text-align: left;" rowspan="2" | sun8iw2 (0x1651)<br />
<br />
| sun8iw2p1 || [[A20]] || 2xCortex-A7<br />
|-<br />
| sun8iw2p2 || ? || ?<br />
|-<br />
| style="text-align: left;" rowspan="2" | sun8iw3 (0x1650)<br />
<br />
| sun8iw3p1 || [[A23]] || 2xCortex-A7<br />
|-<br />
| sun8iw3p2 || ? || ?<br />
|-<br />
| sun8iw5 (0x1667) || sun8iw5p1 || [[A33]] || 4xCortex-A7<br />
|-<br />
| sun8iw6 (0x1673) || sun8iw6p1 || [[A83T]] || 8xCortex-A7<br />
|-<br />
| sun8iw7 (0x1680) || sun8iw7p1 || [[H3]], [[H2+]] || 4xCortex-A7<br />
|-<br />
| style="text-align: left;" rowspan="2" | sun8iw8 (0x1681)<br />
<br />
| sun8iw8p1 || [[V3]], [[V3s]] || 1xCortex-A7 || called V30 in allwinner's kernel source<br />
|-<br />
| sun8iw8p2 || ? || ? || called V33 in allwinner's kernel source<br />
|-<br />
| sun8iw10 (0x1699) || sun8iw10p1 || [[B288]], [[B100]] || 2xCortex-A7<br />
|-<br />
| style="text-align: left;" rowspan="4" | sun8iw11 (0x1701)<br />
<br />
| sun8iw11p1 || [[R40]], [[V40]], [[T3]], [[A20e]]? || 4xCortex-A7<br />
|-<br />
| sun8iw11p2 || ?? || 4xCortex-A7<br />
|-<br />
| sun8iw11p3 || ?? || 4xCortex-A7<br />
|-<br />
| sun8iw11p4 || ?? || 4xCortex-A7<br />
|-<br />
| sun8iw12 (0x1721) || sun8iw12p1 || [[V5]] || 4xCortex-A7<br />
|-<br />
| sun8iw15 (0x1755) || sun8iw15p1 || [[R311]] || 4xCortex-A7<br />
|-<br />
| sun8iw16 (0x1816) || sun8iw16p1 || [[V356]] || 2xCortex-A7<br />
|-<br />
| sun8iw17 (0x1708) || sun8iw17p1 || [[T7]] || 6xCortex-A7<br />
|-<br />
| style="text-align: left;" rowspan="2" | sun9i <br />
(cortex-a15/cortex-a7 big.LITTLE) <br />
<br />
| style="text-align: left;" rowspan="2" | sun9iw1 (0x1639)<br />
| sun9iw1p1 || [[A80]] || 4xCortex-A7 + 4xCortex-A15<br />
|-<br />
| sun9iw1p2 || [[A80T]] || ?<br />
|-<br />
| style="text-align: left;" rowspan="7" | sun50i <br />
(cortex-a53 smp) <br />
| sun50iw1 (0x1689) || sun50iw1p1 || [[A64]] || 4xCortex-A53<br />
|-<br />
| sun50iw2 (0x1718) || sun50iw2p1 || [[H5]] || 4xCortex-A53<br />
|-<br />
| sun50iw3 (0x1719) || sun50iw3p1 || [[A63]] || 4xCortex-A53<br />
|-<br />
| sun50iw6 (0x1728) || sun50iw6p1 || [[H6]] || 4xCortex-A53<br />
|-<br />
| sun50iw9 (0x1823) || sun50iw9p1 || [[H616]], [[H313]] || 4xCortex-A53<br />
|-<br />
| sun50iw10 (0x1855) || sun50iw10p1 || [[A100]] || 4xCortex-A53<br />
|-<br />
| sun50iw11 (0x????) || sun50iw11p1 || [[R329]] || 2xCortex-A53<br />
|}<br />
<br />
This new naming scheme is of absolutely no value with respect to the rest of the SoC. The actual ARM core(s) used are usually the least important piece of information for SoC support. This table completely ignores the fact that A20 is an updated A10 and is pin compatible. It also ignores the fact that A31 introduced a lot of changes which were carried on to the A23/A33 and possibly A80 parts. It therefore is quite likely that this naming scheme was purely a marketing decision, and that Allwinner marketing will change its mind again.<br />
<br />
= Features =<br />
* CPU: ARMv7-A [http://en.wikipedia.org/wiki/ARM_Cortex-A7 Cortex-A7], [http://en.wikipedia.org/wiki/ARM_Cortex-A15 Cortex-A15] or [http://en.wikipedia.org/wiki/ARM_Cortex-A8 Cortex-A8] Central Processor Unit with (co-)processor extensions:<br />
** Advanced SIMD: [http://en.wikipedia.org/wiki/ARM_architecture#Advanced_SIMD_.28NEON.29 NEON] (ARM's extended general-purpose advanced SIMD vector processing extension engine)<br />
** [[Vector Floating Point Unit]] ([http://en.wikipedia.org/wiki/ARM_architecture#Floating-point_.28VFP.29 VFPU]): ARM VFPv3 lite (Cortex-A8) / VFPv4 (Cortex-A7)<br />
** Security Extensions: <br />
*** [http://en.wikipedia.org/wiki/ARM_architecture#Security_extensions_.28TrustZone.29 TrustZone] secure world<br />
*** [[Security_System|Security accelerator]] supporting AES, DES, 3DES, SHA-1, MD5 and pseudo-random number generation<br />
** [http://en.wikipedia.org/wiki/ARM_architecture#Thumb-2 Thumb-2] instruction set extension for optimized code to reduce memory footprint and improve performance<br />
* GPU: [[Mali400]], Mali400-MP2, SGX544 or PowerVR G6230 Graphics Procesor Unit, supporting OpenGL ES2.<br />
* VPU: [[Cedar Engine]] (Video Processor Unit for audio and video hardware decoding or encoding)<br />
* HDMI-transmitter with [http://en.wikipedia.org/wiki/HDMI#CEC HDMI CEC] (Consumer Electronics Control), with exception of A13 which lacks HDMI-transmitter and SATA-controller<ref>[http://olimex.wordpress.com/2012/04/24/cortex-a8-in-tqfp-sure-allwinner-a13/ "Cortex A8 in TQFP? sure Allwinner A13"] ''Retrieved 23 September 2012''</ref><br />
* Hardware virtualization capabilities (Cortex-A7 only).<br />
* Up to 4GB memory (Cortex-A8), Up to 1TB memory with LPAE (Cortex-A7 only).<br />
<br />
== Comparison table ==<br />
{| class="wikitable"<br />
! scope="row" | !! [[A10]] !! [[A10s]] !! [[A13]] !! [[A20]] !! [[A23]] !! [[A31]] !! [[A31s]] !! [[A33]] !! [[A80]]<br />
|-<br />
! scope="row" | Generation <br />
| sun4i || sun5i || sun5i || sun7i || sun8i || sun6i || sun6i || sun8i || sun9i <br />
|-<br />
! scope="row" | CPU<br />
| Cortex-A8 || Cortex-A8 || Cortex-A8 || Cortex-A7 || Cortex-A7 ||Cortex-A7 || Cortex-A7 || Cortex-A7 || Cortex-A7 / A15 <br />
|-<br />
! scope="row" | CPU Maximum frequency<br />
| 1 GHz|| 1 GHz || 1 GHz|| 960 MHz|| 1.5 GHz || ? GHz || ? GHz || 1.5 GHz || 2 (??) GHz<br />
|-<br />
! scope="row" | Cores<br />
| 1 || 1 || 1 || 2 || 2 || 4 || 4 || 4 || 2 x 4<br />
|-<br />
! scope="row" | Extensions<br />
| NEON, VFPv3, Thumb-2 || NEON, VFPv3, Thumb-2 || NEON, VFPv3, Thumb-2 || NEON, VFPv3 / VFPv4, Thumb-2 ||NEON, VFPv3 / VFPv4, Thumb-2 || NEON, VFPv3 / VFPv4, Thumb-2 || NEON, VFPv3 / VFPv4, Thumb-2 || NEON, VFPv3 / VFPv4, Thumb-2 || ? (A80)<br />
|-<br />
! scope="row" | Memory<br />
| DDR2, DDR3</br> (max 2GB @ DDR800) || DDR2, DDR3</br> (max 2GB @ DDR800) || DDR2, DDR3</br> (max 512MB @ DDR800) || LPDDR3, DDR3,</br>LPDDR2 || DDR3</br>(max 1GB) || 2-channel DDR3, LPDDR2, </br>2-channel DDR3L, DDR3U || DDR3, DDR3L, LPDDR2 || single-channel DDR3, DDR3L</br>(max 1GB) || 2-channel DDR3, DDR3L, LPDDR3, LPDDR2</br> up to 8GB<br />
|-<br />
! scope="row" | GPU<br />
| [[Mali400]]</br>320&nbsp;MHz || [[Mali400]]</br>320&nbsp;MHz || [[Mali400]]</br>320&nbsp;MHz || [[Mali400]]-MP2</br>350&nbsp;MHz || [[Mali400]]-MP2 || SGX544</br>200&nbsp;MHz || SGX544</br>200&nbsp;MHz || [[Mali400]]-MP2 || 64-core PowerVR G6230<br />
|-<br />
! scope="row" | GPU API<br />
| OpenGL ES 2.0, OpenVG 1.1 || OpenGL ES 2.0, OpenVG 1.1 || OpenGL ES 2.0, OpenVG 1.1 || OpenGL ES 2.0, OpenVG 1.1 || OpenGL ES 2.0, OpenVG 1.1 || OpenGL ES 2.0, OpenVG 1.1, OpenCL 1.1, and DirectX 9.3 || OpenGL ES 2.0, OpenVG 1.1, OpenCL 1.1, and DirectX 9.3 || OpenGL ES 2.0, OpenVG 1.1 || OpenGL 3.x, OpenGL ES Next,3.0,2.0, Open CL 1.x, DirectX 11 level 9_3/10_0<ref>http://www.imgtec.com/news/detail.asp?ID=845</ref><br />
|-<br />
! scope="row" | [[Cedar Engine|Video decoder]]<br />
| 2160p || 1080p || 1080p || 2160p, 4K×2K, 1080p 3D || 1080p@60fps || 2160p, 4K×2K, 1080p 3D || 2160p, 1080p 3D || 1080p@60fps || ? (A80)<br />
|-<br />
! scope="row" | [[Cedar Engine|Video encoder]]<br />
| H.264 1080p@30fps, JPEG || H.264 1080p@30fps, JPEG || H.264 1080p@30fps, JPEG || H.264 1080p@30fps, JPEG || 1080p@60fps || H.264 1080p@60fps, JPEG || H264 1080p@30fps, 720p@60fps || H.264 1080p@60fps, JPEG || H.264 HP/VP8 4Kx2K@30fp<br />
|-<br />
! scope="row" | Audio decoder<br />
| AC3, DTS || ? || ? || AC3, DTS || - || ? (A31) || ? (A31S) || ? (A33) || ? (A80)<br />
|-<br />
! scope="row" | Video interfaces<br />
| HDMI 1.3, YPbPr, VGA, CPU/RGB/LVDS LCD || HDMI 1.3, RGB/LVDS LCD || RGB LCD, VGA|| HDMI 1.4, CVBS, YPbPr, VGA, CPU/RGB/LVDS LCD || CPU/RGB/LVDS LCD, MIPI DSI || HDMI 1.4, MIPI DSI, 2-channel LVDS, 2-channel RGB LCD || HDMI 1.4, LVDS, RGB LCD || CPU/RGB/LVDS LCD, MIPI DSI || HDMI 4K, RGB LCD 2048x1536@60fps, dual-channel LVDS 1920x1080@60fps, 4-lane MIPI DSI 1920x1200@60fps, 4-lane eDP 2560x1600@60fps<br />
|-<br />
! scope="row" | Audio interfaces<br />
| I2S, SPDIF, AC97 || I2S, AC97 || I2S, AC97 || I2S, PCM, AC97 || I2S, PCM || 2 I2S, 2 PCM || I2S, 2 PCM || ? (A33) || ? (A80)<br />
|-<br />
! scope="row" | USB OTG<br />
| 1 || 1 || 1 || 1 || 1 || 1 || 1 || ? (A33) || 1<br />
|-<br />
! scope="row" | USB Host<br />
| 2 || 1 || 1 || 2 || 1 || 2 || 2 || ? (A33) || 2x USB Host, USB 3.0/2.0 Dual-Role (host/device)<br />
|-<br />
! scope="row" | Ethernet<br />
| EMAC || EMAC || - || EMAC/GMAC || - || GMAC || GMAC || - || GMAC<br />
|-<br />
! scope="row" | Storage<br />
| NAND (max 64GB), SATA II, SD Card 3.0 || NAND (max 64GB), SD Card 3.0 || NAND (max 64GB), SD Card 3.0 || NAND, MMC, [http://olimex.wordpress.com/2013/04/05/allwinners-a10-and-a20-are-they-really-pin-to-pin-compatible-and-drop-in-replacement/#comment-5452 SATA] || raw NAND, eMMC, SD card || 4 x SD Card, eMMC NAND, 2-channel raw NAND || 4 x SD Card, eMMC NAND, raw NAND || 3 x SD Card, eMMC NAND, raw NAND || 4 x SD/MMC<br />
|-<br />
! scope="row" | Package<br />
| BGA441</br>19&nbsp;mm&nbsp;×&nbsp;19&nbsp;mm</br>0.80&nbsp;mm Pitch || BGA336</br>14&nbsp;mm&nbsp;×&nbsp;14&nbsp;mm</br>0.65&nbsp;mm Pitch || eLQFP176</br>20&nbsp;mm&nbsp;×&nbsp;20&nbsp;mm ||BGA441</br>19&nbsp;mm&nbsp;×&nbsp;19&nbsp;mm</br>0.80&nbsp;mm Pitch || FBGA280</br>14&nbsp;mm&nbsp;x&nbsp;14&nbsp;mm&nbsp;x&nbsp;1.4&nbsp;mm</br>0.80&nbsp;mm Pitch || BGA609</br>18&nbsp;mm&nbsp;×&nbsp;8&nbsp;mm</br>0.65&nbsp;mm Pitch || ? (A31S) || ? (Allwinner: pin compatible with A23) || ? (A80)<br />
|-<br />
! scope="row" | Lithography<br />
| 55 nm || 55 nm|| 55 nm || 40 nm || 40 nm || 40 nm || 40 nm || 40 nm || 28 nm<br />
|}<br />
<ref>http://blog.thinkteletronics.com/all-mobile-socsolutions/ All Mobile Soc/Solutions.</ref><br />
<br />
= References =<br />
<references /><br />
<br />
[[Category:System on Chip]]</div>
Frozeus
https://linux-sunxi.org/index.php?title=Linux_mainlining_effort&diff=23634
Linux mainlining effort
2020-11-08T13:13:47Z
<p>Frozeus: H6 I2S support for 5.11</p>
<hr />
<div>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.<br />
<br />
=Overview=<br />
The idea is to submit the code needed to run the Linux kernel on Allwinner SoCs upstream, ie. to the official Linux kernel.<br />
<br />
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.<ref>http://www.elinux.org/images/a/ad/Arm-soc-checklist.pdf</ref><ref>[http://www.cnx-software.com/2013/01/16/your-new-arm-soc-linux-support-check-list-elce-2012/ Your New ARM SoC Linux Support Check-List – ELCE 2012]</ref><br />
<br />
Where relevant, I have attempted to include who is currently working on an item, mostly separate from any particular mainlining goal.<br />
<br />
=Status=<br />
<br />
The [[Mainline_Kernel_Howto|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|Mainline U-Boot howto]].<br />
<br />
The [[:Category:Mainline_Kernel | Mainline Kernel category ]] gives an overview of currently supported devices.<br />
<br />
== Status Matrix ==<br />
<br />
The goal of this matrix is to give an easy view of work on each SoC worked on by linux-sunxi.<br />
<br />
{| class="wikitable" style="text-align: center; width: 100%;"<br />
|-<br />
! style="width: 13%; text-align: left;" colspan="2" | Model<br />
! [[F1C100s|F1C-<br>100s]]<br />
! [[A10]]<br />
! [[A10s]]<br />
! [[A13]]<br>[[R8]]<br />
! [[A20]]<br>[[T2]]<br />
! [[A23]]<br />
! [[A31]]<br />
! [[A33]]<br>[[R16]]<br />
! [[A64]]<br />
! [[A80]]<br />
! [[A83T]]<br />
! [[GR8]]<br />
! [[H3]]<br />
! [[H5]]<br />
! [[H6]]<br />
! [[R40]]<br>[[T3]]<br />
! [[V3]]|[[V3s]]<br>[[S3]]|[[S3L]]<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | AC97<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[Audio Codec]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 5.0<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: red;" | NO<br />
<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" rowspan="3" | ADC<br />
| style="text-align: left;" | GPADC<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| N/A<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: lightgreen;" | 4.12<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | Thermal<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: darkgreen;" | ?<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.7<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | Touch<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.16<br />
| N/A<br />
| style="background: lightgreen;" | 4.0<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: lightgreen;" | 4.9<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| rowspan="4" style="text-align: left;" | [[CSI|Camera]]<br />
<br />
| style="text-align: left;" | BT656<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.0<br />
<br />
|-<br />
| style="text-align: left;" | ISP<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | MIPI CSI-2<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
<br />
|-<br />
| style="text-align: left;" | Parallel<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.0<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Clocks<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.10<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.10<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | CPUFreq (DVFS)<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: lightgreen;" | 5.9<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[Cryptographic_Hardware_Accelerators|Crypto]]<br />
| N/A<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.10<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Display (SimpleFB)<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen" | 4.16<br />
| style="background: lightgreen" | 4.16<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.10<br />
<br />
|-<br />
| rowspan="8" style="text-align: left;" | Display<br />
([https://dri.freedesktop.org/wiki/DRM/ DRM])<br />
<br />
| style="text-align: left;" | CVBS<br />
| style="background: red;" | NO<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9 ?<br />
| style="background: lightgreen;" | 4.7<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | HDMI Audio<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | HDMI CEC<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.14<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.17<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 4.19<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | HDMI Video<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.13<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.17<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.19<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | LVDS<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.7<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.16<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | MIPI DSI<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | RGB<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.7<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.9<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" | VGA<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | DMA<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" rowspan="2" | [[Ethernet]]<br />
| style="text-align: left;" | [[Ethernet#EMAC|EMAC]]<br />
| rowspan="2"| N/A<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.11<br />
| rowspan="2"| N/A<br />
| style="background: lightgreen;" | 3.11 <br />
| rowspan="2"| N/A<br />
| N/A<br />
| rowspan="2"| N/A<br />
| style="background: lightgreen;" rowspan="2" | 4.15<br />
| style="background: lightgreen;" rowspan="2" | 5.1<br />
| style="background: lightgreen;" rowspan="2" | 4.16<br />
| rowspan="2"| N/A<br />
| style="background: lightgreen;" rowspan="2" | 4.15<br />
| style="background: lightgreen;" rowspan="2" | 4.15<br />
| style="background: lightgreen;" rowspan="2" | 5.0<br />
| style="background: lightgreen;" rowspan="2" | 4.18<br />
| style="background: lightgreen;" rowspan="2" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" | [[Ethernet#GMAC|GMAC]]<br />
<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.17<br />
<br />
|-<br />
| style="text-align: left;" rowspan="2" | GPU(3D)<br />
| style="text-align: left;" | [[Mali]]<br />
| N/A<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.10<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | [[PowerVR]]<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | HW Spinlocks<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| N/A<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[I2C]]<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.13<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | I2S<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | IOMMU<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.8<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[IR]]<br />
| style="background: red" | NO<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 3.17<br />
| N/A<br />
| style="background: lightgreen;" | 4.0<br />
| N/A<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.10<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Keypad<br />
| N/A<br />
| style="background: orange;" | WIP<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | WIP<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | LRADC<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | MsgBox<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.8<br />
| N/A<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: lightgreen;" | 5.8<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[NAND]]<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 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 [[MTD_Driver#Challenges|this page]] </ref><br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9 <ref name="mlc"/><br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9 <ref name="mlc" /><br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9 <ref name="mlc" /><br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: red;" | NO<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | PCIe<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<ref name="h6-pcie">Allwinner H6 has a quirky PCIe controller that doesn't map the PCIe address space properly to CPU,<br />
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/</ref><br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Pinctrl<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[PMU]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: grey; color: white;" | ?<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[PWM_Controller|PWM]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.12<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[RSB]]<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.4<br />
| N/A<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.14<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[RTC]]<br />
| N/A<br />
| style="background: lightgreen;" | 3.14<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.10<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SATA]]<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | SD/ [[eMMC|MMC]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | SMP<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.18<br />
| N/A<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SPDIF]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.7<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.7<br />
| N/A<br />
| style="background: lightgreen;" | 4.9<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SPIdev|SPI]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.7<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SRAM Controller|SRAM]]<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 4.19<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 5.0 <br />
| style="background: lightgreen;" | 5.1 <br />
| style="background: lightgreen;" | 5.10<br />
| style="background: lightgreen;" | 5.10<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[USB]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[USB_OTG_Controller_Register_guide#USB_OTG|USB OTG]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | USB3<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.5<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[Video_Engine|VE]] | [[Sunxi-Cedrus]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.2 <br />
| style="background: lightgreen;" | 5.10<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Watchdog<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
! style="text-align: left;" colspan="2" | Model<br />
! [[F1C100s|F1C-<br>100s]]<br />
! [[A10]]<br />
! [[A10s]]<br />
! [[A13]]<br />
[[R8]]<br />
! [[A20]]<br>[[T2]]<br />
! [[A23]]<br />
! [[A31]]<br />
! [[A33]]<br />
[[R16]]<br />
! [[A64]]<br />
! [[A80]]<br />
! [[A83T]]<br />
! [[GR8]]<br />
! [[H3]]<br />
! [[H5]]<br />
! [[H6]]<br />
! [[R40]]<br />
[[T3]]<br />
! [[V3]]|[[V3s]]<br>[[S3]]|[[S3L]]<br />
<br />
|}<br />
<br />
<br />
{| class="wikitable" style="text-align: center;"<br />
|-<br />
! Legend<br />
|-<br />
| style="background: lightgreen;" | In Linux mainline since version x<br />
|-<br />
| style="background: darkgreen;" | Nobody works on it, but it should be compatible with already done drivers<br />
|-<br />
| style="background: orange;" | Somebody works on it<br />
|-<br />
| style="background: red;" | No support, nobody works on it<br />
|-<br />
| style="background: black; color: white;" | support impossible<br />
|-<br />
| style="background: grey; color: white;" | Status is unknown/to be completed<br />
|}<br />
<br />
== Work In Progress ==<br />
<br />
=== Core Stuff ===<br />
*[[AR100]] firmware (WiP: Samuel Holland) [https://github.com/crust-firmware/crust ARISC firmware for sunxi SoCs ]<br />
<br />
* [[A13]] PSCI Suspend / Resume / CPUIdle (WiP: Antoine Tenart) [http://lists.denx.de/pipermail/u-boot/2016-September/265453.html patch-v1]<br />
<br />
=== Major drivers ===<br />
<br />
* [[A83T]]/[[V3s]] MIPI CSI-2 Paul Kocialkowski [https://patchwork.kernel.org/project/linux-arm-kernel/list/?series=369649 Allwinner MIPI CSI-2 support for A31/V3s/A83T ]<br />
<br />
* [[H6]] Hypervisor for PCIe [https://forum.armbian.com/topic/13529-a-try-on-utilizing-h6-pcie-with-virtualization/ A try on utilizing H6 PCIe with "Virtualization"]<br />
<br />
* [[A64]] / [[H3]] / [[H5]] / [[H6]] HDMI Audio - Clément Péron / Marcus Cooper / Jernej Škrabec [https://patchwork.kernel.org/cover/11510511/ Add Allwinner H3/H5/A64 HDMI audio]<br />
<br />
* [[R40]] MIPI-DSI WIP Jagan Teki [https://patchwork.kernel.org/cover/11314031/ drm/sun4i: Allwinner R40 MIPI-DSI support v3] <br />
<br />
* [[AC100]] Audio codec WiP Ondrej Jirman [https://megous.com/git/linux/commit/?h=orange-pi-5.5&id=170d38d650f67657600d4e0e868e0e7110b89ee1 digital part] [https://megous.com/git/linux/commit/?h=orange-pi-5.5&id=ee424255a6fb9280ac27c1953019b768ca973ca7 analog part]<br />
<br />
* [[F1C100s]] USB WIP George Hilliard [https://lore.kernel.org/patchwork/cover/1206936/ Support the Allwinner F1C100s USB stack]<br />
<br />
* [[V3s]] SRAM & Video Decoding Engine (Cedrus) WiP Martin Cerveny [https://patchwork.kernel.org/project/linux-arm-kernel/list/?series=347787 Enable video decoder] ([https://github.com/mcerveny/linux/commits/v3s_videocodec_v4 testing with attached LCD])<br />
<br />
=== Minor drivers ===<br />
<!-- Please move the newest entry to the top --><br />
* [[A64]] hwspinlock WIP Nikolay Borisov [https://patchwork.kernel.org/cover/11373645/ Add support for hwspinlock on A64 SoC] <br />
* [[A83T]] / [[A64]] / [[H3]] hwspinlock WIP Corentin Labbe (montjoie) [https://lore.kernel.org/patchwork/patch/706512/ RFC,1/3][https://lore.kernel.org/patchwork/patch/706511/ RFC,2/3][https://lore.kernel.org/patchwork/patch/706513/ RFC,3/3]<br />
* [[A10]] / [[A20]] / [[A31]] HDMI Audio WIP Stefan Mavrodiev [https://lore.kernel.org/patchwork/cover/1177803/ Add support for sun4i HDMI audio]<br />
* [[A80]] Thermal sensor WIP Philipp Rossak (embed-3d): https://github.com/embed-3d/linux/branches/all<br />
* [[R40]] PWM (WIP Hao Zhang [https://www.spinics.net/lists/kernel/msg2731498.html patch-v2])<br />
* [[A31]]/[[A31s]] PWM support (WiP: Siarhei Volkau [http://lists.infradead.org/pipermail/linux-arm-kernel/2017-February/486405.html patch-v1])<br />
* [[A20]] Keypad (WiP: Yassin Jaffer (ddc) [http://lists.infradead.org/pipermail/linux-arm-kernel/2015-September/370079.html patch])<br />
<br />
=== Drivers that can still be improved/added ===<br />
<br />
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.<br />
<br />
* sunxi-musb driver lacks DMA support (with current driver, USB gadgets are limited to PIO, limiting speed to 10MiB/s and causing large CPU)<br />
* DE2 driver has buggy layer support, see [https://patchwork.kernel.org/patch/11145803/]<br />
* DE1/DE2/DE3 writeback support<br />
* A64 audiocodec driver components (sun8i-codec and sun50i-codec-analog) lack support for jack detection<br />
<br />
== Planned for 5.11 ==<br />
New Devices Supported<br />
*[[H3]]<br />
** [[FriendlyArm ZeroPi]]<br />
*[[H6]]<br />
** [[I2S]]<br />
<br />
== Planned for 5.10 ==<br />
*[[A100]]<br />
** Clocks<br />
** Pinctrl<br />
** [[I2C]]<br />
** Thermal (THS)<br />
<br />
*[[R40]]<br />
** DMA<br />
** GPU [[Mali]]<br />
** [[IR]]<br />
** [[SRAM Controller|SRAM]]<br />
** [[Video_Engine]] | [[Sunxi-Cedrus]]<br />
<br />
*[[V3s]]<br />
** Crypto<br />
** SimpleFB<br />
** [[SRAM Controller|SRAM]]<br />
<br />
New Devices Supported<br />
*[[A100]]<br />
** [[Perf1 board]]<br />
<br />
== Merged into 5.9 ==<br />
* [[H5]]<br />
** DVFS<br />
<br />
== Merged into 5.8 ==<br />
* [[H6]]<br />
** DVFS<br />
** IOMMU<br />
<br />
* [[A64]] / [[A83T]] / [[H3]] / [[H5]] / [[H6]]<br />
** Message Box<br />
<br />
== Merged into 5.7 ==<br />
*[[A20]]<br />
** LVDS<br />
<br />
*[[A83T]] and [[A64]]<br />
** Rotate driver<br />
<br />
*[[H6]]<br />
** SPI<br />
<br />
*[[R40]]<br />
** Thermal<br />
<br />
New Devices Supported<br />
*[[A13]]<br />
** [[PocketBook Touch Lux 3]]<br />
*[[A64]]<br />
** [[PineTab]]<br />
** [[PinePhone]]<br />
*[[A20]]<br />
** Linutronix Testbox v2<br />
<br />
== Merged into 5.6 ==<br />
* [[A10]]<br />
** CSI (BT656 and Parallel)<br />
<br />
*[[A64]]<br />
** MIPI DSI<br />
** DVFS<br />
<br />
*[[A64]] / [[A83T]] / [[H3]] / [[H5]] / [[H6]]<br />
** Thermal<br />
<br />
*[[H6]]<br />
** PWM<br />
<br />
*[[H3]] / [[H5]] / [[H6]] / [[R40]]<br />
**PMU<br />
<br />
*[[R40]]<br />
** CSI (BT656 and Parallel)<br />
** SPI<br />
<br />
New Devices Supported<br />
* [[H5]]<br />
** ALL-H3-IT H5 board<br />
** ALL-H5-CC H5 board<br />
* [[H6]]<br />
** [[PineH64]] Model A<br />
<br />
== Merged into 5.5 ==<br />
*[[H3]]<br />
** Deinterlace driver<br />
<br />
*[[H6]]<br />
**Crypto<br />
**GPU(3D) Mali<br />
**USB3 PHY (for boards not needing vbus switching)<br />
<br />
*[[A64]] / [[A80]] / [[A83T]] / [[H3]] / [[H5]] / [[R40]] <br />
**Crypto<br />
<br />
* multiple SoCs<br />
** [[Cedrus]] HEVC/H.265<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** Emlid Neutis<br />
<br />
New Devices Supported<br />
* [[H3]]<br />
** [[FriendlyARM_NanoPi_Duo2]]<br />
<br />
== Merged into 5.4 (LTS)==<br />
* [[A20]]<br />
** CSI (BT656 and Parallel)<br />
* [[A64]]<br />
** IR<br />
* [[H6]]<br />
** IR<br />
** RTC<br />
** SPDIF<br />
New Devices Supported<br />
* [[A64]]<br />
** [[Olimex A64-OLinuXino]] eMMC<br />
* [[H6]]<br />
** [[Tanix TX6]]<br />
* [[S3]]<br />
** [[Lichee Zero Plus]]<br />
<br />
== Merged into 5.3 ==<br />
* [[A64]]<br />
** LRADC<br />
** RGB LCD<br />
* [[A83T]]<br />
** CSI (BT656 and Parallel)<br />
* [[H6]]<br />
** DMA<br />
** Watchdog<br />
* multiple SoCs<br />
** [[Cedrus]] h264<br />
<br />
== Merged into 5.2 ==<br />
* [[A83T]]<br />
** LRADC<br />
** USB OTG<br />
<br />
* [[H6]]<br />
** [[Cedrus]]<br />
<br />
* multiple SoCs<br />
** [[Mali Open Source Driver|Lima]]<br />
** [[Mali Open Source Driver|Panfrost]]<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** Banana-Pi-M2-Zero<br />
<br />
New Devices Supported<br />
* [[H6]]<br />
** [[Beelink GS1]]<br />
** [[Xunlong Orange Pi 3]]<br />
<br />
== Merged into 5.1 ==<br />
* A10<br />
** Cedrus<br />
** PMU<br />
<br />
* A20<br />
** Audio Codec improvements<br />
<br />
* A23<br />
** Display pipeline<br />
** LCD enabled on Q8 A23 tablets<br />
<br />
* A64<br />
** [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c950ca8c35eeb32224a63adc47e12f9e226da241 ARM Architectural Timer errata workaround]<br />
** PMU<br />
** CSI (BT656 and Parallel)<br />
<br />
* A80<br />
** GMAC support<br />
<br />
* CSI in general<br />
** RGR565 support<br />
** JPEG pass-through support<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** [[Banana Pi M2+]]<br />
** [[Banana Pi M2 Ultra]]<br />
<br />
* [[LCD]] enabled on [[A13]] [[Q8]] tablets<br />
<br />
== Merged into 5.0 ==<br />
* A64<br />
** Cedrus<br />
** DTS changes for audio codec<br />
<br />
* F1C100s<br />
** initial F1C100s support<br />
<br />
* H6<br />
** Ethernet<br />
** DE3/HDMI support<br />
** USB 2.0<br />
<br />
* H3 / H5<br />
** CSI (BT656 and Parallel) Support<br />
<br />
* H5<br />
** Cedrus<br />
<br />
* R40<br />
** RTC<br />
<br />
* T3<br />
** initial T3 support<ref>https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b7badd1d7aa61087010803affa19bb83fb5a0af1</ref><br />
<br />
* V3s<br />
** CSI (BT656 and Parallel) Support<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** [[Sinovoip Banana Pi M2 Magic | Banana Pi M2 Magic]]<br />
** [[Banana Pi M3]]<br />
** [[Banana Pi M64]]<br />
** [[Cubietruck]]<br />
** [[Cubietech_Cubietruck_Plus|Cubietruck Plus]]<br />
<br />
New Devices Supported<br />
* [[Xunlong Orange Pi Lite 2]]<br />
<br />
== Merged into 4.20 ==<br />
<br />
* A13 / A20 / A33 / H3<br />
** Cedrus driver<br />
<br />
* A83T<br />
** IR receiver<br />
<br />
* A64<br />
** Cleanup for device tree files<br />
** HDMI support<br />
** Audio codec support (DTS changes will be merged in 5.0)<br />
<br />
* H3 / H5<br />
** SID<br />
<br />
* R40<br />
** SATA<br />
<br />
New Devices Supported<br />
* [[Pine64]] LTS<br />
* [[Xunlong Orange Pi One Plus]]<br />
* [[Xunlong Orange Pi Zero Plus 2]] (H3 variant)<br />
* [[Sinovoip Banana Pi M2+]] (H5 variant)<br />
<br />
== Merged into 4.19 (LTS)==<br />
<br />
* A10 / A13 / A20 / A23 / A33<br />
** SRAM controller / system control<br />
<br />
* A64<br />
** SRAM controller / system control<br />
** Display clocks and bus<br />
** RTC clock output<br />
** PWM<br />
** R_I2C<br />
<br />
* H3<br />
** SRAM controller / system control<br />
<br />
* H6<br />
** MMC<br />
** PMIC<br />
<br />
* R40<br />
** HDMI support<br />
<br />
Board Changes<br />
* SPI flash node for [[Orange Pi PC 2]] and [[Pine64#Variants | Pine64 SoPINE]]<br />
* Use lid switch as wake-up source for A64 based laptops<br />
* LEDs added for [[PineH64]]<br />
<br />
New Devices<br />
* [[Pine Pinebook]]<br />
* Amarula A64-Relic<br />
<br />
== Changes merged up to 4.18 ==<br />
Changes up to 4.18 can be found on [[Linux mainlining history]] page.<br />
<br />
=References=<br />
<references /><br />
<br />
= See also =<br />
* [[Mainline Kernel Howto]]<br />
* [[Possible setups for hacking on mainline]]<br />
* [[Linux Kernel]]<br />
**[[Toolchain]]<br />
<br />
=External Links=<br />
* [http://www.kernel.org kernel.org] - Official website for the Linux Kernel<br />
** [http://github.com/torvalds/linux http://github.com/torvalds/linux] - Linus Torvalds' GitHub account with the upstream Linux kernel<br />
* [http://www.kernel.org/doc/ Linux Kernel documentation index]<br />
* [http://www.kernel.org/doc/man-pages/ Linux Kernel man pages]<br />
* [http://kernelnewbies.org/ Kernel Newbies Site - Excellent source of information for people new to kernel]<br />
* [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=summary Linus' kernel tree for 2.6]<br />
* [https://bugzilla.kernel.org/ Kernel bugzilla] - [https://bugzilla.kernel.org/show_bug.cgi?id=15790 Regressions for each of recent versions]<br />
* [http://www.fsfla.org/svnwiki/selibre/linux-libre/ Linux-libre project - Maintains and distributes fully free kernel]<br />
* [http://lingrok.org/ LinGrok, Linux kernel source code cross-reference]<br />
* [https://elixir.bootlin.com/linux/latest/source?a=arm Bootlin LXR (Linux Cross Reference)]<br />
* [http://lists.infradead.org/pipermail/linux-arm-kernel/ linux-arm-kernel - Mailing list archive]<br />
===How to upstream===<br />
* [http://www.elinux.org/images/a/ad/Arm-soc-checklist.pdf Your new ARM SoC Linux support check-list! by Thomas Petazzoni of Bootlin]<br />
*[http://www.cnx-software.com/2014/03/04/linux-kernel-upstreaming-how-to-linaro-connect-asia-2014/ Linux Kernel Upstreaming How-To (CNXSoft - Embedded Software Development)]<br />
**[http://www.youtube.com/watch?v=dY7fikYZ42c Matt Porter's YouTube video talk on “Upstreaming 101" (LCA14-111)]<br />
***[http://www.linaro.org/documents/download/65f888c674508efcf9bd5d90398a186a530d01c4c78db Matt Porter's presentation slides for “Upstreaming 101" (LCA14-111)]<br />
**[https://www.youtube.com/watch?v=FiQ5uV_Mm5c Matt Porter's YouTube video talk on “Upstreaming 201" (LCA14-112)]<br />
***[http://www.linaro.org/documents/download/7b9920fcc89589bad9063d87d9137f08530d020b71924 Matt Porter's presentation slides for “Upstreaming 201" (LCA14-112)]<br />
*[http://www.cnx-software.com/2011/08/19/how-to-write-and-submit-a-linux-kernel-patch/ How to Write and Submit a Linux Kernel Patch (CNXSoft - Embedded Software Development)]<br />
** [http://www.youtube.com/watch?v=LLBrBBImJt4 YouTube Video- Write and Submit your first Linux kernel Patch]<br />
** [http://www.cnx-software.com/pdf/kernel-tutorial/kernel_patch_tutorial.pdf Greg Kroah-Hartman Kernel Tutorial Write and Submit your first Linux Kernel Patch]<br />
*[http://www.linaro.org/connect-lca14/resources Linaro resources page from LCA (Linaro Connect Asia) 2014]<br />
<br />
=Notes=<br />
<references group=note /><br />
<br />
[[Category:Development]]</div>
Frozeus
https://linux-sunxi.org/index.php?title=Allwinner_SoC_Family&diff=23632
Allwinner SoC Family
2020-11-07T18:15:06Z
<p>Frozeus: Fix A100</p>
<hr />
<div>= SoC series =<br />
'''A''' series processors are used for mobile applications, mainly referring to tablet application here;<br />
<br />
'''B''' for "Book", used for E-book tablet reader. <br />
<br />
'''H''' for “Homlet”, mainly used in home entertainment applications, including smart OTT boxes, HDMI mini PCs, gaming boxes, etc;<br />
<br />
'''V''' for video-related applications, including video surveillance, automotive DVR, etc;<br />
<br />
'''T''' series processors target the Automotive products like ADAS. <br />
<br />
'''F''' series are processors based on Allwinner’s melis OS, mainly used in smart video radios, video MP5, etc;<br />
<br />
== "A"-Series ==<br />
Based on ARMv7 Cortex-A cores (Cortex-A7, A8 and A15) targeted for high-end devices like digital media players, tablets, and netbooks:<br />
{| class="wikitable"<br />
| [[A10|Allwinner A10]] || <small>(sun4i)</small> || 1 x Cortex-A8 CPU-core<br />
|-<br />
| [[A13|Allwinner A13]] || <small>(sun5i)</small> || 1 x Cortex-A8 CPU-core<br />
|-<br />
| [[A10s|Allwinner A10s]] || <small>(sun5i)</small> || 1 x Cortex-A8 CPU-core<br />
|-<br />
| [[A20|Allwinner A20]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=45</ref> || <small>(sun7i)</small> || 2 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A23|Allwinner A23]] || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A31|Allwinner A31]] || <small>(sun6i)</small> || 4 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A31s|Allwinner A31s]] || <small>(sun6i)</small> || 4 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A33|Allwinner A33]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=23</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A40i|Allwinner A40i]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=69</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A50|Allwinner A50]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=72</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A80|Allwinner A80]] || <small>(sun9i)</small> || 4 x Cortex-A7 CPU-cores + 4 x Cortex-A15 CPU-cores&nbsp;<br /><small>(using ARM big.LITTLE heterogeneous CPU architecture)</small><br />
|-<br />
| [[A83T|Allwinner A83T]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=24</ref> || <small>(sun8i)</small>&nbsp; || 8 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A100|Allwinner A100]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=24</ref> || <small>(sun50i)</small>&nbsp; || 4 x Cortex-A53 CPU-cores<br />
|}<br />
<br />
'''64-bit'''<br />
{| class="wikitable"<br />
| [[A63|Allwinner A63]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=67</ref> || <small>(sun50i)</small>&nbsp; || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[A64|Allwinner A64]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=9</ref> || <small>(sun50i)</small>&nbsp; || 4 x Cortex-A53 CPU-core<br />
|}<br />
<br />
== "B"-series ==<br />
<br />
{| class="wikitable"<br />
| [[B288|Allwinner B288]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=59</ref> || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|-<br />
| [[B300|Allwinner B300]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=86</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|}<br />
<br />
== "H"-Series ==<br />
Based on ARMv7/ARMv8 Cortex-A cores (A7/A53) targeted for video OTT (over-the-top) boxes and high-end gaming consoles:<br />
{| class="wikitable"<br />
| [[H2+|Allwinner H2+]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=62</ref> || <small>(sun8i)</small>&nbsp; || 4 x Cortex-A7 CPU-core&nbsp;<br />
|-<br />
| [[H3|Allwinner H3]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=47</ref> || <small>(sun8i)</small>&nbsp; || 4 x Cortex-A7 CPU-core&nbsp;<br />
|-<br />
| [[H8|Allwinner H8]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=46</ref> || <small>(sun8i)</small> || 8 x Cortex-A7 CPU-core<br />
|-<br />
| [[H80|Allwinner H80]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=46</ref> || <small>(sun8i)</small> || 8 x Cortex-A7 CPU-core<br />
|}<br />
<br />
'''64-bit'''<br />
{| class="wikitable"<br />
| [[H5|Allwinner H5]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=57</ref>&nbsp; || <small>(sun50i)</small>&nbsp; || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[H6|Allwinner H6]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=66</ref>&nbsp; || <small>(sun50i)</small>&nbsp; || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[H64|Allwinner H64]]<ref>http://web.archive.org/web/20160425223052/http://www.allwinnertech.com/en/clq/H_series/6100.html</ref> || <small>(sun50i)</small> || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[H313|Allwinner H313]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=90</ref> || <small>(sun50i)</small> || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[H616|Allwinner H616]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=89</ref> || <small>(sun50i)</small> || 4 x Cortex-A53 CPU-core<br />
|}<br />
<br />
== "R"-Series ==<br />
<br />
{| class="wikitable"<br />
| [[R6|Allwinner R6]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=79</ref> || <small>(sun3i)</small> || 1 x Cortex-A9 CPU-core<br />
|-<br />
| [[R7|Allwinner R7]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=82</ref> || <small>(sun8i)</small> || 1 x Cortex-A7 CPU-core<br />
|-<br />
| [[R8|Allwinner R8]]<ref>http://web.archive.org/web/20160510053338/http://www.allwinnertech.com/en/clq/R_series/2015/0514/R8.html</ref> || <small>(sun5i)</small>&nbsp; || 1 x Cortex-A8 CPU-core<br />
|-<br />
| [[R11|Allwinner R11]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=83</ref> || <small>(sun8i)</small> || 1 x Cortex-A7 CPU-core<br />
|-<br />
| [[R16|Allwinner R16]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=51</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[R40|Allwinner R40]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=56</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[R58|Allwinner R58]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=49</ref>&nbsp; || <small>(sun8i)</small> || 8 x Cortex-A7 CPU-core<br />
|-<br />
| [[R311|Allwinner R311]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=84</ref>&nbsp; || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[R328|Allwinner R328]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=85</ref>&nbsp; || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|}<br />
<br />
The Allwinner R8 is repackaged version of the A13. This SoC gets used in the minicomputer presented in Next Thing Co.'s [[NextThingCo CHIP|''C.H.I.P.'']] kickstarter project ("The $9 computer")<ref>http://nextthing.co/</ref>.<br />
<br />
By comparing the product pages the R16 seems to be a relabeled version of A33. This is somewhat confirmed by the (identical) SoC ID the BROM reports.<ref>https://groups.google.com/d/msg/linux-sunxi/vx6oQMy-nis/vgVc8d1KBAAJ</ref><br />
<br />
'''64-bit'''<br />
{| class="wikitable"<br />
| [[R18|Allwinner R18]]|| <small>sun50i</small> || 4 x Cortex-A53 CPU-core<br />
|}<br />
<br />
== "T"-series ==<br />
<br />
{| class="wikitable"<br />
| [[T2|Allwinner T2]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=39</ref> || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|-<br />
| [[T3|Allwinner T3]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=41</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[T7|Allwinner T7]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=71</ref> || <small>(sun8i)</small> || 6 x Cortex-A7 CPU-core<br />
|-<br />
| [[T8|Allwinner T8]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=33</ref> || <small>(sun8i)</small> || 8 x Cortex-A7 CPU-core<br />
|}<br />
<br />
== "V"-series ==<br />
<br />
{| class="wikitable"<br />
| [[V3|Allwinner V3]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=37</ref> || <small>(sun8i)</small> || 1 x Cortex-A7 CPU-core<br />
|-<br />
| [[V3s|Allwinner V3s]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=38</ref> || <small>(sun8i)</small> || 1 x Cortex-A7 CPU-core<br />
|-<br />
| [[V5|Allwinner V5]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=70</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[V40|Allwinner V40]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=36</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[V66|Allwinner V66]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=35</ref> || <small>(sun8i)</small> || 8 x Cortex-A7 CPU-core<br />
|-<br />
| [[V316|Allwinner V316]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=87</ref> || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|-<br />
| [[V536|Allwinner V536]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=88</ref> || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|}<br />
<br />
== "F"-Series ==<br />
:'''{{note|The F series is not supported by the linux-sunxi community due to lack of developers and hardware. ''sun3i'' have only official linux support, ''sunii'' have no linux support, only Allwinner's "Melis" RTOS.}}'''<br />
<br />
Based on ARMv5 ARM926-EJS core and currently targeted for low market devices such as cheap ebook readers, etc.<br />
<br />
F1C700 seems to be a remarked A13, and it's ARMv7.<br />
<br />
{| class="wikitable"<br />
| [[C100|Boxchip C100]] || <small>(sun3i)</small><br />
|-<br />
| [[E200|Boxchip E200]] || <small>(sun3i)</small><br />
|-<br />
| [[F10|Boxchip F10]] <small>aka SoChip SC9800 aka Teclast T8100</small>&nbsp; || <small>(sunii)</small><br />
|-<br />
| [[F13|Boxchip F13]] || <small>(sunii)</small><br />
|-<br />
| [[F13|Boxchip F15]] <small>aka SoChip SC8600 aka Teclast T7200</small> || <small>(sunii)</small><br />
|-<br />
| [[F18|Boxchip F18]] || <small>(sunii)</small><br />
|-<br />
| [[F20|Boxchip F20]] || <small>(sun3i)</small><br />
|-<br />
| [[F23|Allwinner F23]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=30</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C100A|Allwinner F1C100A]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=29</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C100s|Allwinner F1C100s]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=73</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C200s|Allwinner F1C200s]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=74</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C500s|Allwinner F1C500s]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=75</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C600|Allwinner F1C600]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=28</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C700|Allwinner F1C700]] || <small>(sun5i)</small><br />
|-<br />
| [[F1C800|Allwinner F1C800]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=76</ref> || <small>(suniv)</small><br />
|}<br />
<br />
== "MR"-series ==<br />
<br />
{| class="wikitable"<br />
| [[MR100|Allwinner MR100]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=77</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[MR133|Allwinner MR133]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=86</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|}<br />
<br />
= 2013 naming scheme change =<br />
<br />
Initially, Allwinner named their SoCs chronologically:<br />
* sun4i = A10<br />
* sun5i = A13/A10s<br />
* sun6i = A31<br />
* sun7i = A20<br />
<br />
But, somewhere in 2013, Allwinner decided to update their naming scheme to be based on the ARM core used instead: (taken from the A80 SDK kernel code). Note: SoCs with ? has never appeared on Allwinner's website. <ref>https://github.com/tinalinux/brandy/blob/r40-v1.y/SUNXI_README</ref><br />
<br />
{| class="wikitable"<br />
! sunxi (arm cores) !! sunxiwx (soc id) !! p (rev id) !! soc name !! cores !! notes<br />
|-<br />
| sun3i (arm926ejs) || sun3iw1 (0x1663) || sun3iw1p1 || [[F1C100s]], [[F1C100A]], [[F1C200s]], [[F1C500]], [[F1C600]], [[R6]] || 1xARM926EJ-S<br />
|-<br />
| style="text-align: left;" rowspan="4" | sun4i (cortex-a8) <br />
| sun4iw1 (0x1623) || sun4iw1p1 || [[A10]] || 1xCortex-A8<br />
|-<br />
| style="text-align: left;" rowspan="3" | sun4iw2 (0x1625)<br />
| sun4iw2p1 || [[A13]] || 1xCortex-A8<br />
|-<br />
| sun4iw2p2 || [[A12]] || ?<br />
|-<br />
| sun4iw2p3 || [[A10s]] || 1xCortex-A8<br />
|-<br />
| style="text-align: left;" rowspan="20" | sun8i <br />
(cortex-a7 smp)<br />
<br />
| style="text-align: left;" rowspan="2" | sun8iw1 (0x1633)<br />
<br />
| sun8iw1p1 || [[A31]] || 4xCortex-A7<br />
|-<br />
| sun8iw1p2 || [[A31s]] || 4xCortex-A7<br />
|-<br />
| style="text-align: left;" rowspan="2" | sun8iw2 (0x1651)<br />
<br />
| sun8iw2p1 || [[A20]] || 2xCortex-A7<br />
|-<br />
| sun8iw2p2 || ? || ?<br />
|-<br />
| style="text-align: left;" rowspan="2" | sun8iw3 (0x1650)<br />
<br />
| sun8iw3p1 || [[A23]] || 2xCortex-A7<br />
|-<br />
| sun8iw3p2 || ? || ?<br />
|-<br />
| sun8iw5 (0x1667) || sun8iw5p1 || [[A33]] || 4xCortex-A7<br />
|-<br />
| sun8iw6 (0x1673) || sun8iw6p1 || [[A83T]] || 8xCortex-A7<br />
|-<br />
| sun8iw7 (0x1680) || sun8iw7p1 || [[H3]], [[H2+]] || 4xCortex-A7<br />
|-<br />
| style="text-align: left;" rowspan="2" | sun8iw8 (0x1681)<br />
<br />
| sun8iw8p1 || [[V3]], [[V3s]] || 1xCortex-A7 || called V30 in allwinner's kernel source<br />
|-<br />
| sun8iw8p2 || ? || ? || called V33 in allwinner's kernel source<br />
|-<br />
| sun8iw10 (0x1699) || sun8iw10p1 || [[B288]], [[B100]] || 2xCortex-A7<br />
|-<br />
| style="text-align: left;" rowspan="4" | sun8iw11 (0x1701)<br />
<br />
| sun8iw11p1 || [[R40]], [[V40]], [[T3]], [[A20e]]? || 4xCortex-A7<br />
|-<br />
| sun8iw11p2 || ?? || 4xCortex-A7<br />
|-<br />
| sun8iw11p3 || ?? || 4xCortex-A7<br />
|-<br />
| sun8iw11p4 || ?? || 4xCortex-A7<br />
|-<br />
| sun8iw12 (0x1721) || sun8iw12p1 || [[V5]] || 4xCortex-A7<br />
|-<br />
| sun8iw15 (0x1755) || sun8iw15p1 || [[R311]] || 4xCortex-A7<br />
|-<br />
| sun8iw16 (0x1816) || sun8iw16p1 || [[V356]] || 2xCortex-A7<br />
|-<br />
| sun8iw17 (0x1708) || sun8iw17p1 || [[T7]] || 6xCortex-A7<br />
|-<br />
| style="text-align: left;" rowspan="2" | sun9i <br />
(cortex-a15/cortex-a7 big.LITTLE) <br />
<br />
| style="text-align: left;" rowspan="2" | sun9iw1 (0x1639)<br />
| sun9iw1p1 || [[A80]] || 4xCortex-A7 + 4xCortex-A15<br />
|-<br />
| sun9iw1p2 || [[A80T]] || ?<br />
|-<br />
| style="text-align: left;" rowspan="6" | sun50i <br />
(cortex-a53 smp) <br />
| sun50iw1 (0x1689) || sun50iw1p1 || [[A64]] || 4xCortex-A53<br />
|-<br />
| sun50iw2 (0x1718) || sun50iw2p1 || [[H5]] || 4xCortex-A53<br />
|-<br />
| sun50iw3 (0x1719) || sun50iw3p1 || [[A63]] || 4xCortex-A53<br />
|-<br />
| sun50iw6 (0x1728) || sun50iw6p1 || [[H6]] || 4xCortex-A53<br />
|-<br />
| sun50iw9 (0x1823) || sun50iw9p1 || [[H616]], [[H313]] || 4xCortex-A53<br />
|-<br />
| sun50iw10 (0x1855) || sun50iw10p1 || [[A100]] || 4xCortex-A53<br />
|}<br />
<br />
This new naming scheme is of absolutely no value with respect to the rest of the SoC. The actual ARM core(s) used are usually the least important piece of information for SoC support. This table completely ignores the fact that A20 is an updated A10 and is pin compatible. It also ignores the fact that A31 introduced a lot of changes which were carried on to the A23/A33 and possibly A80 parts. It therefore is quite likely that this naming scheme was purely a marketing decision, and that Allwinner marketing will change its mind again.<br />
<br />
= Features =<br />
* CPU: ARMv7-A [http://en.wikipedia.org/wiki/ARM_Cortex-A7 Cortex-A7], [http://en.wikipedia.org/wiki/ARM_Cortex-A15 Cortex-A15] or [http://en.wikipedia.org/wiki/ARM_Cortex-A8 Cortex-A8] Central Processor Unit with (co-)processor extensions:<br />
** Advanced SIMD: [http://en.wikipedia.org/wiki/ARM_architecture#Advanced_SIMD_.28NEON.29 NEON] (ARM's extended general-purpose advanced SIMD vector processing extension engine)<br />
** [[Vector Floating Point Unit]] ([http://en.wikipedia.org/wiki/ARM_architecture#Floating-point_.28VFP.29 VFPU]): ARM VFPv3 lite (Cortex-A8) / VFPv4 (Cortex-A7)<br />
** Security Extensions: <br />
*** [http://en.wikipedia.org/wiki/ARM_architecture#Security_extensions_.28TrustZone.29 TrustZone] secure world<br />
*** [[Security_System|Security accelerator]] supporting AES, DES, 3DES, SHA-1, MD5 and pseudo-random number generation<br />
** [http://en.wikipedia.org/wiki/ARM_architecture#Thumb-2 Thumb-2] instruction set extension for optimized code to reduce memory footprint and improve performance<br />
* GPU: [[Mali400]], Mali400-MP2, SGX544 or PowerVR G6230 Graphics Procesor Unit, supporting OpenGL ES2.<br />
* VPU: [[Cedar Engine]] (Video Processor Unit for audio and video hardware decoding or encoding)<br />
* HDMI-transmitter with [http://en.wikipedia.org/wiki/HDMI#CEC HDMI CEC] (Consumer Electronics Control), with exception of A13 which lacks HDMI-transmitter and SATA-controller<ref>[http://olimex.wordpress.com/2012/04/24/cortex-a8-in-tqfp-sure-allwinner-a13/ "Cortex A8 in TQFP? sure Allwinner A13"] ''Retrieved 23 September 2012''</ref><br />
* Hardware virtualization capabilities (Cortex-A7 only).<br />
* Up to 4GB memory (Cortex-A8), Up to 1TB memory with LPAE (Cortex-A7 only).<br />
<br />
== Comparison table ==<br />
{| class="wikitable"<br />
! scope="row" | !! [[A10]] !! [[A10s]] !! [[A13]] !! [[A20]] !! [[A23]] !! [[A31]] !! [[A31s]] !! [[A33]] !! [[A80]]<br />
|-<br />
! scope="row" | Generation <br />
| sun4i || sun5i || sun5i || sun7i || sun8i || sun6i || sun6i || sun8i || sun9i <br />
|-<br />
! scope="row" | CPU<br />
| Cortex-A8 || Cortex-A8 || Cortex-A8 || Cortex-A7 || Cortex-A7 ||Cortex-A7 || Cortex-A7 || Cortex-A7 || Cortex-A7 / A15 <br />
|-<br />
! scope="row" | CPU Maximum frequency<br />
| 1 GHz|| 1 GHz || 1 GHz|| 960 MHz|| 1.5 GHz || ? GHz || ? GHz || 1.5 GHz || 2 (??) GHz<br />
|-<br />
! scope="row" | Cores<br />
| 1 || 1 || 1 || 2 || 2 || 4 || 4 || 4 || 2 x 4<br />
|-<br />
! scope="row" | Extensions<br />
| NEON, VFPv3, Thumb-2 || NEON, VFPv3, Thumb-2 || NEON, VFPv3, Thumb-2 || NEON, VFPv3 / VFPv4, Thumb-2 ||NEON, VFPv3 / VFPv4, Thumb-2 || NEON, VFPv3 / VFPv4, Thumb-2 || NEON, VFPv3 / VFPv4, Thumb-2 || NEON, VFPv3 / VFPv4, Thumb-2 || ? (A80)<br />
|-<br />
! scope="row" | Memory<br />
| DDR2, DDR3</br> (max 2GB @ DDR800) || DDR2, DDR3</br> (max 2GB @ DDR800) || DDR2, DDR3</br> (max 512MB @ DDR800) || LPDDR3, DDR3,</br>LPDDR2 || DDR3</br>(max 1GB) || 2-channel DDR3, LPDDR2, </br>2-channel DDR3L, DDR3U || DDR3, DDR3L, LPDDR2 || single-channel DDR3, DDR3L</br>(max 1GB) || 2-channel DDR3, DDR3L, LPDDR3, LPDDR2</br> up to 8GB<br />
|-<br />
! scope="row" | GPU<br />
| [[Mali400]]</br>320&nbsp;MHz || [[Mali400]]</br>320&nbsp;MHz || [[Mali400]]</br>320&nbsp;MHz || [[Mali400]]-MP2</br>350&nbsp;MHz || [[Mali400]]-MP2 || SGX544</br>200&nbsp;MHz || SGX544</br>200&nbsp;MHz || [[Mali400]]-MP2 || 64-core PowerVR G6230<br />
|-<br />
! scope="row" | GPU API<br />
| OpenGL ES 2.0, OpenVG 1.1 || OpenGL ES 2.0, OpenVG 1.1 || OpenGL ES 2.0, OpenVG 1.1 || OpenGL ES 2.0, OpenVG 1.1 || OpenGL ES 2.0, OpenVG 1.1 || OpenGL ES 2.0, OpenVG 1.1, OpenCL 1.1, and DirectX 9.3 || OpenGL ES 2.0, OpenVG 1.1, OpenCL 1.1, and DirectX 9.3 || OpenGL ES 2.0, OpenVG 1.1 || OpenGL 3.x, OpenGL ES Next,3.0,2.0, Open CL 1.x, DirectX 11 level 9_3/10_0<ref>http://www.imgtec.com/news/detail.asp?ID=845</ref><br />
|-<br />
! scope="row" | [[Cedar Engine|Video decoder]]<br />
| 2160p || 1080p || 1080p || 2160p, 4K×2K, 1080p 3D || 1080p@60fps || 2160p, 4K×2K, 1080p 3D || 2160p, 1080p 3D || 1080p@60fps || ? (A80)<br />
|-<br />
! scope="row" | [[Cedar Engine|Video encoder]]<br />
| H.264 1080p@30fps, JPEG || H.264 1080p@30fps, JPEG || H.264 1080p@30fps, JPEG || H.264 1080p@30fps, JPEG || 1080p@60fps || H.264 1080p@60fps, JPEG || H264 1080p@30fps, 720p@60fps || H.264 1080p@60fps, JPEG || H.264 HP/VP8 4Kx2K@30fp<br />
|-<br />
! scope="row" | Audio decoder<br />
| AC3, DTS || ? || ? || AC3, DTS || - || ? (A31) || ? (A31S) || ? (A33) || ? (A80)<br />
|-<br />
! scope="row" | Video interfaces<br />
| HDMI 1.3, YPbPr, VGA, CPU/RGB/LVDS LCD || HDMI 1.3, RGB/LVDS LCD || RGB LCD, VGA|| HDMI 1.4, CVBS, YPbPr, VGA, CPU/RGB/LVDS LCD || CPU/RGB/LVDS LCD, MIPI DSI || HDMI 1.4, MIPI DSI, 2-channel LVDS, 2-channel RGB LCD || HDMI 1.4, LVDS, RGB LCD || CPU/RGB/LVDS LCD, MIPI DSI || HDMI 4K, RGB LCD 2048x1536@60fps, dual-channel LVDS 1920x1080@60fps, 4-lane MIPI DSI 1920x1200@60fps, 4-lane eDP 2560x1600@60fps<br />
|-<br />
! scope="row" | Audio interfaces<br />
| I2S, SPDIF, AC97 || I2S, AC97 || I2S, AC97 || I2S, PCM, AC97 || I2S, PCM || 2 I2S, 2 PCM || I2S, 2 PCM || ? (A33) || ? (A80)<br />
|-<br />
! scope="row" | USB OTG<br />
| 1 || 1 || 1 || 1 || 1 || 1 || 1 || ? (A33) || 1<br />
|-<br />
! scope="row" | USB Host<br />
| 2 || 1 || 1 || 2 || 1 || 2 || 2 || ? (A33) || 2x USB Host, USB 3.0/2.0 Dual-Role (host/device)<br />
|-<br />
! scope="row" | Ethernet<br />
| EMAC || EMAC || - || EMAC/GMAC || - || GMAC || GMAC || - || GMAC<br />
|-<br />
! scope="row" | Storage<br />
| NAND (max 64GB), SATA II, SD Card 3.0 || NAND (max 64GB), SD Card 3.0 || NAND (max 64GB), SD Card 3.0 || NAND, MMC, [http://olimex.wordpress.com/2013/04/05/allwinners-a10-and-a20-are-they-really-pin-to-pin-compatible-and-drop-in-replacement/#comment-5452 SATA] || raw NAND, eMMC, SD card || 4 x SD Card, eMMC NAND, 2-channel raw NAND || 4 x SD Card, eMMC NAND, raw NAND || 3 x SD Card, eMMC NAND, raw NAND || 4 x SD/MMC<br />
|-<br />
! scope="row" | Package<br />
| BGA441</br>19&nbsp;mm&nbsp;×&nbsp;19&nbsp;mm</br>0.80&nbsp;mm Pitch || BGA336</br>14&nbsp;mm&nbsp;×&nbsp;14&nbsp;mm</br>0.65&nbsp;mm Pitch || eLQFP176</br>20&nbsp;mm&nbsp;×&nbsp;20&nbsp;mm ||BGA441</br>19&nbsp;mm&nbsp;×&nbsp;19&nbsp;mm</br>0.80&nbsp;mm Pitch || FBGA280</br>14&nbsp;mm&nbsp;x&nbsp;14&nbsp;mm&nbsp;x&nbsp;1.4&nbsp;mm</br>0.80&nbsp;mm Pitch || BGA609</br>18&nbsp;mm&nbsp;×&nbsp;8&nbsp;mm</br>0.65&nbsp;mm Pitch || ? (A31S) || ? (Allwinner: pin compatible with A23) || ? (A80)<br />
|-<br />
! scope="row" | Lithography<br />
| 55 nm || 55 nm|| 55 nm || 40 nm || 40 nm || 40 nm || 40 nm || 40 nm || 28 nm<br />
|}<br />
<ref>http://blog.thinkteletronics.com/all-mobile-socsolutions/ All Mobile Soc/Solutions.</ref><br />
<br />
= References =<br />
<references /><br />
<br />
[[Category:System on Chip]]</div>
Frozeus
https://linux-sunxi.org/index.php?title=Allwinner_SoC_Family&diff=23631
Allwinner SoC Family
2020-11-07T18:14:13Z
<p>Frozeus: Add Allwinner A100</p>
<hr />
<div>= SoC series =<br />
'''A''' series processors are used for mobile applications, mainly referring to tablet application here;<br />
<br />
'''B''' for "Book", used for E-book tablet reader. <br />
<br />
'''H''' for “Homlet”, mainly used in home entertainment applications, including smart OTT boxes, HDMI mini PCs, gaming boxes, etc;<br />
<br />
'''V''' for video-related applications, including video surveillance, automotive DVR, etc;<br />
<br />
'''T''' series processors target the Automotive products like ADAS. <br />
<br />
'''F''' series are processors based on Allwinner’s melis OS, mainly used in smart video radios, video MP5, etc;<br />
<br />
== "A"-Series ==<br />
Based on ARMv7 Cortex-A cores (Cortex-A7, A8 and A15) targeted for high-end devices like digital media players, tablets, and netbooks:<br />
{| class="wikitable"<br />
| [[A10|Allwinner A10]] || <small>(sun4i)</small> || 1 x Cortex-A8 CPU-core<br />
|-<br />
| [[A13|Allwinner A13]] || <small>(sun5i)</small> || 1 x Cortex-A8 CPU-core<br />
|-<br />
| [[A10s|Allwinner A10s]] || <small>(sun5i)</small> || 1 x Cortex-A8 CPU-core<br />
|-<br />
| [[A20|Allwinner A20]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=45</ref> || <small>(sun7i)</small> || 2 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A23|Allwinner A23]] || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A31|Allwinner A31]] || <small>(sun6i)</small> || 4 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A31s|Allwinner A31s]] || <small>(sun6i)</small> || 4 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A33|Allwinner A33]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=23</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A40i|Allwinner A40i]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=69</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A50|Allwinner A50]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=72</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A80|Allwinner A80]] || <small>(sun9i)</small> || 4 x Cortex-A7 CPU-cores + 4 x Cortex-A15 CPU-cores&nbsp;<br /><small>(using ARM big.LITTLE heterogeneous CPU architecture)</small><br />
|-<br />
| [[A83T|Allwinner A83T]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=24</ref> || <small>(sun8i)</small>&nbsp; || 8 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A100|Allwinner A100]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=24</ref> || <small>(sun50i)</small>&nbsp; || 4 x Cortex-A53 CPU-cores<br />
|}<br />
<br />
'''64-bit'''<br />
{| class="wikitable"<br />
| [[A63|Allwinner A63]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=67</ref> || <small>(sun50i)</small>&nbsp; || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[A64|Allwinner A64]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=9</ref> || <small>(sun50i)</small>&nbsp; || 4 x Cortex-A53 CPU-core<br />
|}<br />
<br />
== "B"-series ==<br />
<br />
{| class="wikitable"<br />
| [[B288|Allwinner B288]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=59</ref> || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|-<br />
| [[B300|Allwinner B300]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=86</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|}<br />
<br />
== "H"-Series ==<br />
Based on ARMv7/ARMv8 Cortex-A cores (A7/A53) targeted for video OTT (over-the-top) boxes and high-end gaming consoles:<br />
{| class="wikitable"<br />
| [[H2+|Allwinner H2+]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=62</ref> || <small>(sun8i)</small>&nbsp; || 4 x Cortex-A7 CPU-core&nbsp;<br />
|-<br />
| [[H3|Allwinner H3]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=47</ref> || <small>(sun8i)</small>&nbsp; || 4 x Cortex-A7 CPU-core&nbsp;<br />
|-<br />
| [[H8|Allwinner H8]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=46</ref> || <small>(sun8i)</small> || 8 x Cortex-A7 CPU-core<br />
|-<br />
| [[H80|Allwinner H80]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=46</ref> || <small>(sun8i)</small> || 8 x Cortex-A7 CPU-core<br />
|}<br />
<br />
'''64-bit'''<br />
{| class="wikitable"<br />
| [[H5|Allwinner H5]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=57</ref>&nbsp; || <small>(sun50i)</small>&nbsp; || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[H6|Allwinner H6]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=66</ref>&nbsp; || <small>(sun50i)</small>&nbsp; || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[H64|Allwinner H64]]<ref>http://web.archive.org/web/20160425223052/http://www.allwinnertech.com/en/clq/H_series/6100.html</ref> || <small>(sun50i)</small> || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[H313|Allwinner H313]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=90</ref> || <small>(sun50i)</small> || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[H616|Allwinner H616]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=89</ref> || <small>(sun50i)</small> || 4 x Cortex-A53 CPU-core<br />
|}<br />
<br />
== "R"-Series ==<br />
<br />
{| class="wikitable"<br />
| [[R6|Allwinner R6]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=79</ref> || <small>(sun3i)</small> || 1 x Cortex-A9 CPU-core<br />
|-<br />
| [[R7|Allwinner R7]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=82</ref> || <small>(sun8i)</small> || 1 x Cortex-A7 CPU-core<br />
|-<br />
| [[R8|Allwinner R8]]<ref>http://web.archive.org/web/20160510053338/http://www.allwinnertech.com/en/clq/R_series/2015/0514/R8.html</ref> || <small>(sun5i)</small>&nbsp; || 1 x Cortex-A8 CPU-core<br />
|-<br />
| [[R11|Allwinner R11]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=83</ref> || <small>(sun8i)</small> || 1 x Cortex-A7 CPU-core<br />
|-<br />
| [[R16|Allwinner R16]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=51</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[R40|Allwinner R40]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=56</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[R58|Allwinner R58]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=49</ref>&nbsp; || <small>(sun8i)</small> || 8 x Cortex-A7 CPU-core<br />
|-<br />
| [[R311|Allwinner R311]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=84</ref>&nbsp; || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[R328|Allwinner R328]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=85</ref>&nbsp; || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|}<br />
<br />
The Allwinner R8 is repackaged version of the A13. This SoC gets used in the minicomputer presented in Next Thing Co.'s [[NextThingCo CHIP|''C.H.I.P.'']] kickstarter project ("The $9 computer")<ref>http://nextthing.co/</ref>.<br />
<br />
By comparing the product pages the R16 seems to be a relabeled version of A33. This is somewhat confirmed by the (identical) SoC ID the BROM reports.<ref>https://groups.google.com/d/msg/linux-sunxi/vx6oQMy-nis/vgVc8d1KBAAJ</ref><br />
<br />
'''64-bit'''<br />
{| class="wikitable"<br />
| [[R18|Allwinner R18]]|| <small>sun50i</small> || 4 x Cortex-A53 CPU-core<br />
|}<br />
<br />
== "T"-series ==<br />
<br />
{| class="wikitable"<br />
| [[T2|Allwinner T2]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=39</ref> || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|-<br />
| [[T3|Allwinner T3]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=41</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[T7|Allwinner T7]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=71</ref> || <small>(sun8i)</small> || 6 x Cortex-A7 CPU-core<br />
|-<br />
| [[T8|Allwinner T8]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=33</ref> || <small>(sun8i)</small> || 8 x Cortex-A7 CPU-core<br />
|}<br />
<br />
== "V"-series ==<br />
<br />
{| class="wikitable"<br />
| [[V3|Allwinner V3]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=37</ref> || <small>(sun8i)</small> || 1 x Cortex-A7 CPU-core<br />
|-<br />
| [[V3s|Allwinner V3s]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=38</ref> || <small>(sun8i)</small> || 1 x Cortex-A7 CPU-core<br />
|-<br />
| [[V5|Allwinner V5]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=70</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[V40|Allwinner V40]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=36</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[V66|Allwinner V66]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=35</ref> || <small>(sun8i)</small> || 8 x Cortex-A7 CPU-core<br />
|-<br />
| [[V316|Allwinner V316]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=87</ref> || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|-<br />
| [[V536|Allwinner V536]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=88</ref> || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|}<br />
<br />
== "F"-Series ==<br />
:'''{{note|The F series is not supported by the linux-sunxi community due to lack of developers and hardware. ''sun3i'' have only official linux support, ''sunii'' have no linux support, only Allwinner's "Melis" RTOS.}}'''<br />
<br />
Based on ARMv5 ARM926-EJS core and currently targeted for low market devices such as cheap ebook readers, etc.<br />
<br />
F1C700 seems to be a remarked A13, and it's ARMv7.<br />
<br />
{| class="wikitable"<br />
| [[C100|Boxchip C100]] || <small>(sun3i)</small><br />
|-<br />
| [[E200|Boxchip E200]] || <small>(sun3i)</small><br />
|-<br />
| [[F10|Boxchip F10]] <small>aka SoChip SC9800 aka Teclast T8100</small>&nbsp; || <small>(sunii)</small><br />
|-<br />
| [[F13|Boxchip F13]] || <small>(sunii)</small><br />
|-<br />
| [[F13|Boxchip F15]] <small>aka SoChip SC8600 aka Teclast T7200</small> || <small>(sunii)</small><br />
|-<br />
| [[F18|Boxchip F18]] || <small>(sunii)</small><br />
|-<br />
| [[F20|Boxchip F20]] || <small>(sun3i)</small><br />
|-<br />
| [[F23|Allwinner F23]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=30</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C100A|Allwinner F1C100A]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=29</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C100s|Allwinner F1C100s]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=73</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C200s|Allwinner F1C200s]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=74</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C500s|Allwinner F1C500s]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=75</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C600|Allwinner F1C600]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=28</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C700|Allwinner F1C700]] || <small>(sun5i)</small><br />
|-<br />
| [[F1C800|Allwinner F1C800]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=76</ref> || <small>(suniv)</small><br />
|}<br />
<br />
== "MR"-series ==<br />
<br />
{| class="wikitable"<br />
| [[MR100|Allwinner MR100]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=77</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[MR133|Allwinner MR133]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=86</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|}<br />
<br />
= 2013 naming scheme change =<br />
<br />
Initially, Allwinner named their SoCs chronologically:<br />
* sun4i = A10<br />
* sun5i = A13/A10s<br />
* sun6i = A31<br />
* sun7i = A20<br />
<br />
But, somewhere in 2013, Allwinner decided to update their naming scheme to be based on the ARM core used instead: (taken from the A80 SDK kernel code). Note: SoCs with ? has never appeared on Allwinner's website. <ref>https://github.com/tinalinux/brandy/blob/r40-v1.y/SUNXI_README</ref><br />
<br />
{| class="wikitable"<br />
! sunxi (arm cores) !! sunxiwx (soc id) !! p (rev id) !! soc name !! cores !! notes<br />
|-<br />
| sun3i (arm926ejs) || sun3iw1 (0x1663) || sun3iw1p1 || [[F1C100s]], [[F1C100A]], [[F1C200s]], [[F1C500]], [[F1C600]], [[R6]] || 1xARM926EJ-S<br />
|-<br />
| style="text-align: left;" rowspan="4" | sun4i (cortex-a8) <br />
| sun4iw1 (0x1623) || sun4iw1p1 || [[A10]] || 1xCortex-A8<br />
|-<br />
| style="text-align: left;" rowspan="3" | sun4iw2 (0x1625)<br />
| sun4iw2p1 || [[A13]] || 1xCortex-A8<br />
|-<br />
| sun4iw2p2 || [[A12]] || ?<br />
|-<br />
| sun4iw2p3 || [[A10s]] || 1xCortex-A8<br />
|-<br />
| style="text-align: left;" rowspan="20" | sun8i <br />
(cortex-a7 smp)<br />
<br />
| style="text-align: left;" rowspan="2" | sun8iw1 (0x1633)<br />
<br />
| sun8iw1p1 || [[A31]] || 4xCortex-A7<br />
|-<br />
| sun8iw1p2 || [[A31s]] || 4xCortex-A7<br />
|-<br />
| style="text-align: left;" rowspan="2" | sun8iw2 (0x1651)<br />
<br />
| sun8iw2p1 || [[A20]] || 2xCortex-A7<br />
|-<br />
| sun8iw2p2 || ? || ?<br />
|-<br />
| style="text-align: left;" rowspan="2" | sun8iw3 (0x1650)<br />
<br />
| sun8iw3p1 || [[A23]] || 2xCortex-A7<br />
|-<br />
| sun8iw3p2 || ? || ?<br />
|-<br />
| sun8iw5 (0x1667) || sun8iw5p1 || [[A33]] || 4xCortex-A7<br />
|-<br />
| sun8iw6 (0x1673) || sun8iw6p1 || [[A83T]] || 8xCortex-A7<br />
|-<br />
| sun8iw7 (0x1680) || sun8iw7p1 || [[H3]], [[H2+]] || 4xCortex-A7<br />
|-<br />
| style="text-align: left;" rowspan="2" | sun8iw8 (0x1681)<br />
<br />
| sun8iw8p1 || [[V3]], [[V3s]] || 1xCortex-A7 || called V30 in allwinner's kernel source<br />
|-<br />
| sun8iw8p2 || ? || ? || called V33 in allwinner's kernel source<br />
|-<br />
| sun8iw10 (0x1699) || sun8iw10p1 || [[B288]], [[B100]] || 2xCortex-A7<br />
|-<br />
| style="text-align: left;" rowspan="4" | sun8iw11 (0x1701)<br />
<br />
| sun8iw11p1 || [[R40]], [[V40]], [[T3]], [[A20e]]? || 4xCortex-A7<br />
|-<br />
| sun8iw11p2 || ?? || 4xCortex-A7<br />
|-<br />
| sun8iw11p3 || ?? || 4xCortex-A7<br />
|-<br />
| sun8iw11p4 || ?? || 4xCortex-A7<br />
|-<br />
| sun8iw12 (0x1721) || sun8iw12p1 || [[V5]] || 4xCortex-A7<br />
|-<br />
| sun8iw15 (0x1755) || sun8iw15p1 || [[R311]] || 4xCortex-A7<br />
|-<br />
| sun8iw16 (0x1816) || sun8iw16p1 || [[V356]] || 2xCortex-A7<br />
|-<br />
| sun8iw17 (0x1708) || sun8iw17p1 || [[T7]] || 6xCortex-A7<br />
|-<br />
| style="text-align: left;" rowspan="2" | sun9i <br />
(cortex-a15/cortex-a7 big.LITTLE) <br />
<br />
| style="text-align: left;" rowspan="2" | sun9iw1 (0x1639)<br />
| sun9iw1p1 || [[A80]] || 4xCortex-A7 + 4xCortex-A15<br />
|-<br />
| sun9iw1p2 || [[A80T]] || ?<br />
|-<br />
| style="text-align: left;" rowspan="5" | sun50i <br />
(cortex-a53 smp) <br />
| sun50iw1 (0x1689) || sun50iw1p1 || [[A64]] || 4xCortex-A53<br />
|-<br />
| sun50iw2 (0x1718) || sun50iw2p1 || [[H5]] || 4xCortex-A53<br />
|-<br />
| sun50iw3 (0x1719) || sun50iw3p1 || [[A63]] || 4xCortex-A53<br />
|-<br />
| sun50iw6 (0x1728) || sun50iw6p1 || [[H6]] || 4xCortex-A53<br />
|-<br />
| sun50iw9 (0x1823) || sun50iw9p1 || [[H616]], [[H313]] || 4xCortex-A53<br />
|-<br />
| sun50iw10 (0x1855) || sun50iw10p1 || [[A100]] || 4xCortex-A53<br />
|}<br />
<br />
This new naming scheme is of absolutely no value with respect to the rest of the SoC. The actual ARM core(s) used are usually the least important piece of information for SoC support. This table completely ignores the fact that A20 is an updated A10 and is pin compatible. It also ignores the fact that A31 introduced a lot of changes which were carried on to the A23/A33 and possibly A80 parts. It therefore is quite likely that this naming scheme was purely a marketing decision, and that Allwinner marketing will change its mind again.<br />
<br />
= Features =<br />
* CPU: ARMv7-A [http://en.wikipedia.org/wiki/ARM_Cortex-A7 Cortex-A7], [http://en.wikipedia.org/wiki/ARM_Cortex-A15 Cortex-A15] or [http://en.wikipedia.org/wiki/ARM_Cortex-A8 Cortex-A8] Central Processor Unit with (co-)processor extensions:<br />
** Advanced SIMD: [http://en.wikipedia.org/wiki/ARM_architecture#Advanced_SIMD_.28NEON.29 NEON] (ARM's extended general-purpose advanced SIMD vector processing extension engine)<br />
** [[Vector Floating Point Unit]] ([http://en.wikipedia.org/wiki/ARM_architecture#Floating-point_.28VFP.29 VFPU]): ARM VFPv3 lite (Cortex-A8) / VFPv4 (Cortex-A7)<br />
** Security Extensions: <br />
*** [http://en.wikipedia.org/wiki/ARM_architecture#Security_extensions_.28TrustZone.29 TrustZone] secure world<br />
*** [[Security_System|Security accelerator]] supporting AES, DES, 3DES, SHA-1, MD5 and pseudo-random number generation<br />
** [http://en.wikipedia.org/wiki/ARM_architecture#Thumb-2 Thumb-2] instruction set extension for optimized code to reduce memory footprint and improve performance<br />
* GPU: [[Mali400]], Mali400-MP2, SGX544 or PowerVR G6230 Graphics Procesor Unit, supporting OpenGL ES2.<br />
* VPU: [[Cedar Engine]] (Video Processor Unit for audio and video hardware decoding or encoding)<br />
* HDMI-transmitter with [http://en.wikipedia.org/wiki/HDMI#CEC HDMI CEC] (Consumer Electronics Control), with exception of A13 which lacks HDMI-transmitter and SATA-controller<ref>[http://olimex.wordpress.com/2012/04/24/cortex-a8-in-tqfp-sure-allwinner-a13/ "Cortex A8 in TQFP? sure Allwinner A13"] ''Retrieved 23 September 2012''</ref><br />
* Hardware virtualization capabilities (Cortex-A7 only).<br />
* Up to 4GB memory (Cortex-A8), Up to 1TB memory with LPAE (Cortex-A7 only).<br />
<br />
== Comparison table ==<br />
{| class="wikitable"<br />
! scope="row" | !! [[A10]] !! [[A10s]] !! [[A13]] !! [[A20]] !! [[A23]] !! [[A31]] !! [[A31s]] !! [[A33]] !! [[A80]]<br />
|-<br />
! scope="row" | Generation <br />
| sun4i || sun5i || sun5i || sun7i || sun8i || sun6i || sun6i || sun8i || sun9i <br />
|-<br />
! scope="row" | CPU<br />
| Cortex-A8 || Cortex-A8 || Cortex-A8 || Cortex-A7 || Cortex-A7 ||Cortex-A7 || Cortex-A7 || Cortex-A7 || Cortex-A7 / A15 <br />
|-<br />
! scope="row" | CPU Maximum frequency<br />
| 1 GHz|| 1 GHz || 1 GHz|| 960 MHz|| 1.5 GHz || ? GHz || ? GHz || 1.5 GHz || 2 (??) GHz<br />
|-<br />
! scope="row" | Cores<br />
| 1 || 1 || 1 || 2 || 2 || 4 || 4 || 4 || 2 x 4<br />
|-<br />
! scope="row" | Extensions<br />
| NEON, VFPv3, Thumb-2 || NEON, VFPv3, Thumb-2 || NEON, VFPv3, Thumb-2 || NEON, VFPv3 / VFPv4, Thumb-2 ||NEON, VFPv3 / VFPv4, Thumb-2 || NEON, VFPv3 / VFPv4, Thumb-2 || NEON, VFPv3 / VFPv4, Thumb-2 || NEON, VFPv3 / VFPv4, Thumb-2 || ? (A80)<br />
|-<br />
! scope="row" | Memory<br />
| DDR2, DDR3</br> (max 2GB @ DDR800) || DDR2, DDR3</br> (max 2GB @ DDR800) || DDR2, DDR3</br> (max 512MB @ DDR800) || LPDDR3, DDR3,</br>LPDDR2 || DDR3</br>(max 1GB) || 2-channel DDR3, LPDDR2, </br>2-channel DDR3L, DDR3U || DDR3, DDR3L, LPDDR2 || single-channel DDR3, DDR3L</br>(max 1GB) || 2-channel DDR3, DDR3L, LPDDR3, LPDDR2</br> up to 8GB<br />
|-<br />
! scope="row" | GPU<br />
| [[Mali400]]</br>320&nbsp;MHz || [[Mali400]]</br>320&nbsp;MHz || [[Mali400]]</br>320&nbsp;MHz || [[Mali400]]-MP2</br>350&nbsp;MHz || [[Mali400]]-MP2 || SGX544</br>200&nbsp;MHz || SGX544</br>200&nbsp;MHz || [[Mali400]]-MP2 || 64-core PowerVR G6230<br />
|-<br />
! scope="row" | GPU API<br />
| OpenGL ES 2.0, OpenVG 1.1 || OpenGL ES 2.0, OpenVG 1.1 || OpenGL ES 2.0, OpenVG 1.1 || OpenGL ES 2.0, OpenVG 1.1 || OpenGL ES 2.0, OpenVG 1.1 || OpenGL ES 2.0, OpenVG 1.1, OpenCL 1.1, and DirectX 9.3 || OpenGL ES 2.0, OpenVG 1.1, OpenCL 1.1, and DirectX 9.3 || OpenGL ES 2.0, OpenVG 1.1 || OpenGL 3.x, OpenGL ES Next,3.0,2.0, Open CL 1.x, DirectX 11 level 9_3/10_0<ref>http://www.imgtec.com/news/detail.asp?ID=845</ref><br />
|-<br />
! scope="row" | [[Cedar Engine|Video decoder]]<br />
| 2160p || 1080p || 1080p || 2160p, 4K×2K, 1080p 3D || 1080p@60fps || 2160p, 4K×2K, 1080p 3D || 2160p, 1080p 3D || 1080p@60fps || ? (A80)<br />
|-<br />
! scope="row" | [[Cedar Engine|Video encoder]]<br />
| H.264 1080p@30fps, JPEG || H.264 1080p@30fps, JPEG || H.264 1080p@30fps, JPEG || H.264 1080p@30fps, JPEG || 1080p@60fps || H.264 1080p@60fps, JPEG || H264 1080p@30fps, 720p@60fps || H.264 1080p@60fps, JPEG || H.264 HP/VP8 4Kx2K@30fp<br />
|-<br />
! scope="row" | Audio decoder<br />
| AC3, DTS || ? || ? || AC3, DTS || - || ? (A31) || ? (A31S) || ? (A33) || ? (A80)<br />
|-<br />
! scope="row" | Video interfaces<br />
| HDMI 1.3, YPbPr, VGA, CPU/RGB/LVDS LCD || HDMI 1.3, RGB/LVDS LCD || RGB LCD, VGA|| HDMI 1.4, CVBS, YPbPr, VGA, CPU/RGB/LVDS LCD || CPU/RGB/LVDS LCD, MIPI DSI || HDMI 1.4, MIPI DSI, 2-channel LVDS, 2-channel RGB LCD || HDMI 1.4, LVDS, RGB LCD || CPU/RGB/LVDS LCD, MIPI DSI || HDMI 4K, RGB LCD 2048x1536@60fps, dual-channel LVDS 1920x1080@60fps, 4-lane MIPI DSI 1920x1200@60fps, 4-lane eDP 2560x1600@60fps<br />
|-<br />
! scope="row" | Audio interfaces<br />
| I2S, SPDIF, AC97 || I2S, AC97 || I2S, AC97 || I2S, PCM, AC97 || I2S, PCM || 2 I2S, 2 PCM || I2S, 2 PCM || ? (A33) || ? (A80)<br />
|-<br />
! scope="row" | USB OTG<br />
| 1 || 1 || 1 || 1 || 1 || 1 || 1 || ? (A33) || 1<br />
|-<br />
! scope="row" | USB Host<br />
| 2 || 1 || 1 || 2 || 1 || 2 || 2 || ? (A33) || 2x USB Host, USB 3.0/2.0 Dual-Role (host/device)<br />
|-<br />
! scope="row" | Ethernet<br />
| EMAC || EMAC || - || EMAC/GMAC || - || GMAC || GMAC || - || GMAC<br />
|-<br />
! scope="row" | Storage<br />
| NAND (max 64GB), SATA II, SD Card 3.0 || NAND (max 64GB), SD Card 3.0 || NAND (max 64GB), SD Card 3.0 || NAND, MMC, [http://olimex.wordpress.com/2013/04/05/allwinners-a10-and-a20-are-they-really-pin-to-pin-compatible-and-drop-in-replacement/#comment-5452 SATA] || raw NAND, eMMC, SD card || 4 x SD Card, eMMC NAND, 2-channel raw NAND || 4 x SD Card, eMMC NAND, raw NAND || 3 x SD Card, eMMC NAND, raw NAND || 4 x SD/MMC<br />
|-<br />
! scope="row" | Package<br />
| BGA441</br>19&nbsp;mm&nbsp;×&nbsp;19&nbsp;mm</br>0.80&nbsp;mm Pitch || BGA336</br>14&nbsp;mm&nbsp;×&nbsp;14&nbsp;mm</br>0.65&nbsp;mm Pitch || eLQFP176</br>20&nbsp;mm&nbsp;×&nbsp;20&nbsp;mm ||BGA441</br>19&nbsp;mm&nbsp;×&nbsp;19&nbsp;mm</br>0.80&nbsp;mm Pitch || FBGA280</br>14&nbsp;mm&nbsp;x&nbsp;14&nbsp;mm&nbsp;x&nbsp;1.4&nbsp;mm</br>0.80&nbsp;mm Pitch || BGA609</br>18&nbsp;mm&nbsp;×&nbsp;8&nbsp;mm</br>0.65&nbsp;mm Pitch || ? (A31S) || ? (Allwinner: pin compatible with A23) || ? (A80)<br />
|-<br />
! scope="row" | Lithography<br />
| 55 nm || 55 nm|| 55 nm || 40 nm || 40 nm || 40 nm || 40 nm || 40 nm || 28 nm<br />
|}<br />
<ref>http://blog.thinkteletronics.com/all-mobile-socsolutions/ All Mobile Soc/Solutions.</ref><br />
<br />
= References =<br />
<references /><br />
<br />
[[Category:System on Chip]]</div>
Frozeus
https://linux-sunxi.org/index.php?title=Linux_mainlining_effort&diff=23524
Linux mainlining effort
2020-09-02T15:59:23Z
<p>Frozeus: Merged for 5.10</p>
<hr />
<div>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.<br />
<br />
=Overview=<br />
The idea is to submit the code needed to run the Linux kernel on Allwinner SoCs upstream, ie. to the official Linux kernel.<br />
<br />
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.<ref>http://www.elinux.org/images/a/ad/Arm-soc-checklist.pdf</ref><ref>[http://www.cnx-software.com/2013/01/16/your-new-arm-soc-linux-support-check-list-elce-2012/ Your New ARM SoC Linux Support Check-List – ELCE 2012]</ref><br />
<br />
Where relevant, I have attempted to include who is currently working on an item, mostly separate from any particular mainlining goal.<br />
<br />
=Status=<br />
<br />
The [[Mainline_Kernel_Howto|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|Mainline U-Boot howto]].<br />
<br />
The [[:Category:Mainline_Kernel | Mainline Kernel category ]] gives an overview of currently supported devices.<br />
<br />
== Status Matrix ==<br />
<br />
The goal of this matrix is to give an easy view of work on each SoC worked on by linux-sunxi.<br />
<br />
{| class="wikitable" style="text-align: center; width: 100%;"<br />
|-<br />
! style="width: 13%; text-align: left;" colspan="2" | Model<br />
! [[F1C100s|F1C-<br>100s]]<br />
! [[A10]]<br />
! [[A10s]]<br />
! [[A13]]<br>[[R8]]<br />
! [[A20]]<br>[[T2]]<br />
! [[A23]]<br />
! [[A31]]<br />
! [[A33]]<br>[[R16]]<br />
! [[A64]]<br />
! [[A80]]<br />
! [[A83T]]<br />
! [[GR8]]<br />
! [[H3]]<br />
! [[H5]]<br />
! [[H6]]<br />
! [[R40]]<br>[[T3]]<br />
! [[V3]]|[[V3s]]<br>[[S3]]|[[S3L]]<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | AC97<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[Audio Codec]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 5.0<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: red;" | NO<br />
<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" rowspan="3" | ADC<br />
| style="text-align: left;" | GPADC<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| N/A<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: lightgreen;" | 4.12<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | Thermal<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: darkgreen;" | ?<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.7<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | Touch<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.16<br />
| N/A<br />
| style="background: lightgreen;" | 4.0<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: lightgreen;" | 4.9<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| rowspan="4" style="text-align: left;" | [[CSI|Camera]]<br />
<br />
| style="text-align: left;" | BT656<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.0<br />
<br />
|-<br />
| style="text-align: left;" | ISP<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | MIPI CSI<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | Parallel<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.0<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Clocks<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.10<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.10<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | CPUFreq (DVFS)<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: lightgreen;" | 5.9<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[Cryptographic_Hardware_Accelerators|Crypto]]<br />
| N/A<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Display (SimpleFB)<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen" | 4.16<br />
| style="background: lightgreen" | 4.16<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| rowspan="8" style="text-align: left;" | Display<br />
([https://dri.freedesktop.org/wiki/DRM/ DRM])<br />
<br />
| style="text-align: left;" | CVBS<br />
| style="background: red;" | NO<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9 ?<br />
| style="background: lightgreen;" | 4.7<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | HDMI Audio<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | HDMI CEC<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.14<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.17<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 4.19<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | HDMI Video<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.13<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.17<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.19<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | LVDS<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.7<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.16<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | MIPI DSI<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | RGB<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.7<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.9<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" | VGA<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | DMA<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: lightgreen;" | 5.10<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" rowspan="2" | [[Ethernet]]<br />
| style="text-align: left;" | [[Ethernet#EMAC|EMAC]]<br />
| rowspan="2"| N/A<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.11<br />
| rowspan="2"| N/A<br />
| style="background: lightgreen;" | 3.11 <br />
| rowspan="2"| N/A<br />
| N/A<br />
| rowspan="2"| N/A<br />
| style="background: lightgreen;" rowspan="2" | 4.15<br />
| style="background: lightgreen;" rowspan="2" | 5.1<br />
| style="background: lightgreen;" rowspan="2" | 4.16<br />
| rowspan="2"| N/A<br />
| style="background: lightgreen;" rowspan="2" | 4.15<br />
| style="background: lightgreen;" rowspan="2" | 4.15<br />
| style="background: lightgreen;" rowspan="2" | 5.0<br />
| style="background: lightgreen;" rowspan="2" | 4.18<br />
| style="background: lightgreen;" rowspan="2" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" | [[Ethernet#GMAC|GMAC]]<br />
<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.17<br />
<br />
|-<br />
| style="text-align: left;" rowspan="2" | GPU(3D)<br />
| style="text-align: left;" | [[Mali]]<br />
| N/A<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.10<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | [[PowerVR]]<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | HW Spinlocks<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| N/A<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[I2C]]<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.13<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | I2S<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | IOMMU<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.8<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[IR]]<br />
| style="background: red" | NO<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 3.17<br />
| N/A<br />
| style="background: lightgreen;" | 4.0<br />
| N/A<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.10<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Keypad<br />
| N/A<br />
| style="background: orange;" | WIP<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | WIP<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | LRADC<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | MsgBox<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.8<br />
| N/A<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: lightgreen;" | 5.8<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[NAND]]<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 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 [[MTD_Driver#Challenges|this page]] </ref><br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9 <ref name="mlc"/><br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9 <ref name="mlc" /><br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9 <ref name="mlc" /><br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: red;" | NO<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | PCIe<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<ref name="h6-pcie">Allwinner H6 has a quirky PCIe controller that doesn't map the PCIe address space properly to CPU,<br />
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/</ref><br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Pinctrl<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[PMU]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: grey; color: white;" | ?<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[PWM_Controller|PWM]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.12<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[RSB]]<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.4<br />
| N/A<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.14<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[RTC]]<br />
| N/A<br />
| style="background: lightgreen;" | 3.14<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.10<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SATA]]<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | SD/ [[eMMC|MMC]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | SMP<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.18<br />
| N/A<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SPDIF]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.7<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.7<br />
| N/A<br />
| style="background: lightgreen;" | 4.9<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SPIdev|SPI]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.7<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SRAM Controller|SRAM]]<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 4.19<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 5.0 <br />
| style="background: lightgreen;" | 5.1 <br />
| style="background: lightgreen;" | 5.10<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[USB]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[USB_OTG_Controller_Register_guide#USB_OTG|USB OTG]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | USB3<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.5<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[Video_Engine|VE]] | [[Sunxi-Cedrus]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.2 <br />
| style="background: lightgreen;" | 5.10<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Watchdog<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
! style="text-align: left;" colspan="2" | Model<br />
! [[F1C100s|F1C-<br>100s]]<br />
! [[A10]]<br />
! [[A10s]]<br />
! [[A13]]<br />
[[R8]]<br />
! [[A20]]<br>[[T2]]<br />
! [[A23]]<br />
! [[A31]]<br />
! [[A33]]<br />
[[R16]]<br />
! [[A64]]<br />
! [[A80]]<br />
! [[A83T]]<br />
! [[GR8]]<br />
! [[H3]]<br />
! [[H5]]<br />
! [[H6]]<br />
! [[R40]]<br />
[[T3]]<br />
! [[V3]]|[[V3s]]<br>[[S3]]|[[S3L]]<br />
<br />
|}<br />
<br />
<br />
{| class="wikitable" style="text-align: center;"<br />
|-<br />
! Legend<br />
|-<br />
| style="background: lightgreen;" | In Linux mainline since version x<br />
|-<br />
| style="background: darkgreen;" | Nobody works on it, but it should be compatible with already done drivers<br />
|-<br />
| style="background: orange;" | Somebody works on it<br />
|-<br />
| style="background: red;" | No support, nobody works on it<br />
|-<br />
| style="background: black; color: white;" | support impossible<br />
|-<br />
| style="background: grey; color: white;" | Status is unknown/to be completed<br />
|}<br />
<br />
== Work In Progress ==<br />
<br />
=== Core Stuff ===<br />
*[[AR100]] firmware (WiP: Samuel Holland) [https://github.com/crust-firmware/crust ARISC firmware for sunxi SoCs ]<br />
<br />
* [[A13]] PSCI Suspend / Resume / CPUIdle (WiP: Antoine Tenart) [http://lists.denx.de/pipermail/u-boot/2016-September/265453.html patch-v1]<br />
<br />
=== Major drivers ===<br />
<br />
* [[A83T]] MIPI-CSI Kévin L'hôpital [https://patchwork.kernel.org/project/linux-arm-kernel/list/?series=336625&archive=both&state=* Support of MIPI CSI-2 for A83T and OV8865 camera]<br />
<br />
* [[H6]] I2S Clément Péron [https://patchwork.kernel.org/cover/11497007/ Add H6 I2S support]<br />
<br />
* [[H6]] Hypervisor for PCIe [https://forum.armbian.com/topic/13529-a-try-on-utilizing-h6-pcie-with-virtualization/ A try on utilizing H6 PCIe with "Virtualization"]<br />
<br />
* [[A64]] / [[H3]] / [[H5]] / [[H6]] HDMI Audio - Clément Péron / Marcus Cooper / Jernej Škrabec [https://patchwork.kernel.org/cover/11510511/ Add Allwinner H3/H5/A64 HDMI audio]<br />
<br />
* [[R40]] MIPI-DSI WIP Jagan Teki [https://patchwork.kernel.org/cover/11314031/ drm/sun4i: Allwinner R40 MIPI-DSI support v3] <br />
<br />
* [[AC100]] Audio codec WiP Ondrej Jirman [https://megous.com/git/linux/commit/?h=orange-pi-5.5&id=170d38d650f67657600d4e0e868e0e7110b89ee1 digital part] [https://megous.com/git/linux/commit/?h=orange-pi-5.5&id=ee424255a6fb9280ac27c1953019b768ca973ca7 analog part]<br />
<br />
* [[F1C100s]] USB WIP George Hilliard [https://lore.kernel.org/patchwork/cover/1206936/ Support the Allwinner F1C100s USB stack]<br />
<br />
* [[V3s]] SRAM & Video Decoding Engine (Cedrus) WiP Martin Cerveny [https://github.com/mcerveny/linux/commits/v3s_videocodec_v2 Enable video decoder]<br />
<br />
=== Minor drivers ===<br />
<!-- Please move the newest entry to the top --><br />
* [[V3s]] Crypto engine Martin Cerveny [https://patchwork.kernel.org/patch/11741237/ ARM: dts: sun8i: v3s: Enable crypto engine]<br />
* [[A64]] hwspinlock WIP Nikolay Borisov [https://patchwork.kernel.org/cover/11373645/ Add support for hwspinlock on A64 SoC] <br />
* [[A83T]] / [[A64]] / [[H3]] hwspinlock WIP Corentin Labbe (montjoie) [https://lore.kernel.org/patchwork/patch/706512/ RFC,1/3][https://lore.kernel.org/patchwork/patch/706511/ RFC,2/3][https://lore.kernel.org/patchwork/patch/706513/ RFC,3/3]<br />
* [[A10]] / [[A20]] / [[A31]] HDMI Audio WIP Stefan Mavrodiev [https://lore.kernel.org/patchwork/cover/1177803/ Add support for sun4i HDMI audio]<br />
* [[A80]] Thermal sensor WIP Philipp Rossak (embed-3d): https://github.com/embed-3d/linux/branches/all<br />
* [[R40]] PWM (WIP Hao Zhang [https://www.spinics.net/lists/kernel/msg2731498.html patch-v2])<br />
* [[A31]]/[[A31s]] PWM support (WiP: Siarhei Volkau [http://lists.infradead.org/pipermail/linux-arm-kernel/2017-February/486405.html patch-v1])<br />
* [[A20]] Keypad (WiP: Yassin Jaffer (ddc) [http://lists.infradead.org/pipermail/linux-arm-kernel/2015-September/370079.html patch])<br />
<br />
=== Drivers that can still be improved/added ===<br />
<br />
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.<br />
<br />
* sunxi-musb driver lacks DMA support (with current driver, USB gadgets are limited to PIO, limiting speed to 10MiB/s and causing large CPU)<br />
* DE2 driver has buggy layer support, see [https://patchwork.kernel.org/patch/11145803/]<br />
* DE1/DE2/DE3 writeback support<br />
* A64 audiocodec driver components (sun8i-codec and sun50i-codec-analog) lack support for jack detection<br />
<br />
== Planned for 5.10 ==<br />
*[[A100]]<br />
** Clocks<br />
** Pinctrl<br />
** [[I2C]]<br />
** Thermal (THS)<br />
<br />
New Devices Supported<br />
*[[A100]]<br />
** [[Perf1 board]]<br />
<br />
*[[R40]]<br />
** DMA<br />
** GPU [[Mali]]<br />
** [[IR]]<br />
** [[SRAM Controller|SRAM]]<br />
** [[Video_Engine]] | [[Sunxi-Cedrus]]<br />
<br />
== Merged into 5.9 ==<br />
* [[H5]]<br />
** DVFS<br />
<br />
== Merged into 5.8 ==<br />
* [[H6]]<br />
** DVFS<br />
** IOMMU<br />
<br />
* [[A64]] / [[A83T]] / [[H3]] / [[H5]] / [[H6]]<br />
** Message Box<br />
<br />
== Merged into 5.7 ==<br />
*[[A20]]<br />
** LVDS<br />
<br />
*[[A83T]] and [[A64]]<br />
** Rotate driver<br />
<br />
*[[H6]]<br />
** SPI<br />
<br />
*[[R40]]<br />
** Thermal<br />
<br />
New Devices Supported<br />
*[[A13]]<br />
** [[PocketBook Touch Lux 3]]<br />
*[[A64]]<br />
** [[PineTab]]<br />
** [[PinePhone]]<br />
*[[A20]]<br />
** Linutronix Testbox v2<br />
<br />
== Merged into 5.6 ==<br />
* [[A10]]<br />
** CSI (BT656 and Parallel)<br />
<br />
*[[A64]]<br />
** MIPI DSI<br />
** DVFS<br />
<br />
*[[A64]] / [[A83T]] / [[H3]] / [[H5]] / [[H6]]<br />
** Thermal<br />
<br />
*[[H6]]<br />
** PWM<br />
<br />
*[[H3]] / [[H5]] / [[H6]] / [[R40]]<br />
**PMU<br />
<br />
*[[R40]]<br />
** CSI (BT656 and Parallel)<br />
** SPI<br />
<br />
New Devices Supported<br />
* [[H5]]<br />
** ALL-H3-IT H5 board<br />
** ALL-H5-CC H5 board<br />
* [[H6]]<br />
** [[PineH64]] Model A<br />
<br />
== Merged into 5.5 ==<br />
*[[H3]]<br />
** Deinterlace driver<br />
<br />
*[[H6]]<br />
**Crypto<br />
**GPU(3D) Mali<br />
**USB3 PHY (for boards not needing vbus switching)<br />
<br />
*[[A64]] / [[A80]] / [[A83T]] / [[H3]] / [[H5]] / [[R40]] <br />
**Crypto<br />
<br />
* multiple SoCs<br />
** [[Cedrus]] HEVC/H.265<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** Emlid Neutis<br />
<br />
New Devices Supported<br />
* [[H3]]<br />
** [[FriendlyARM_NanoPi_Duo2]]<br />
<br />
== Merged into 5.4 ==<br />
* [[A20]]<br />
** CSI (BT656 and Parallel)<br />
* [[A64]]<br />
** IR<br />
* [[H6]]<br />
** IR<br />
** RTC<br />
** SPDIF<br />
New Devices Supported<br />
* [[A64]]<br />
** [[Olimex A64-OLinuXino]] eMMC<br />
* [[H6]]<br />
** [[Tanix TX6]]<br />
* [[S3]]<br />
** [[Lichee Zero Plus]]<br />
<br />
== Merged into 5.3 ==<br />
* [[A64]]<br />
** LRADC<br />
** RGB LCD<br />
* [[A83T]]<br />
** CSI (BT656 and Parallel)<br />
* [[H6]]<br />
** DMA<br />
** Watchdog<br />
* multiple SoCs<br />
** [[Cedrus]] h264<br />
<br />
== Merged into 5.2 ==<br />
* [[A83T]]<br />
** LRADC<br />
** USB OTG<br />
<br />
* [[H6]]<br />
** [[Cedrus]]<br />
<br />
* multiple SoCs<br />
** [[Mali Open Source Driver|Lima]]<br />
** [[Mali Open Source Driver|Panfrost]]<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** Banana-Pi-M2-Zero<br />
<br />
New Devices Supported<br />
* [[H6]]<br />
** [[Beelink GS1]]<br />
** [[Xunlong Orange Pi 3]]<br />
<br />
== Merged into 5.1 ==<br />
* A10<br />
** Cedrus<br />
** PMU<br />
<br />
* A20<br />
** Audio Codec improvements<br />
<br />
* A23<br />
** Display pipeline<br />
** LCD enabled on Q8 A23 tablets<br />
<br />
* A64<br />
** [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c950ca8c35eeb32224a63adc47e12f9e226da241 ARM Architectural Timer errata workaround]<br />
** PMU<br />
** CSI (BT656 and Parallel)<br />
<br />
* A80<br />
** GMAC support<br />
<br />
* CSI in general<br />
** RGR565 support<br />
** JPEG pass-through support<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** [[Banana Pi M2+]]<br />
** [[Banana Pi M2 Ultra]]<br />
<br />
* [[LCD]] enabled on [[A13]] [[Q8]] tablets<br />
<br />
== Merged into 5.0 ==<br />
* A64<br />
** Cedrus<br />
** DTS changes for audio codec<br />
<br />
* F1C100s<br />
** initial F1C100s support<br />
<br />
* H6<br />
** Ethernet<br />
** DE3/HDMI support<br />
** USB 2.0<br />
<br />
* H3 / H5<br />
** CSI (BT656 and Parallel) Support<br />
<br />
* H5<br />
** Cedrus<br />
<br />
* R40<br />
** RTC<br />
<br />
* T3<br />
** initial T3 support<ref>https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b7badd1d7aa61087010803affa19bb83fb5a0af1</ref><br />
<br />
* V3s<br />
** CSI (BT656 and Parallel) Support<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** [[Sinovoip Banana Pi M2 Magic | Banana Pi M2 Magic]]<br />
** [[Banana Pi M3]]<br />
** [[Banana Pi M64]]<br />
** [[Cubietruck]]<br />
** [[Cubietech_Cubietruck_Plus|Cubietruck Plus]]<br />
<br />
New Devices Supported<br />
* [[Xunlong Orange Pi Lite 2]]<br />
<br />
== Merged into 4.20 ==<br />
<br />
* A13 / A20 / A33 / H3<br />
** Cedrus driver<br />
<br />
* A83T<br />
** IR receiver<br />
<br />
* A64<br />
** Cleanup for device tree files<br />
** HDMI support<br />
** Audio codec support (DTS changes will be merged in 5.0)<br />
<br />
* H3 / H5<br />
** SID<br />
<br />
* R40<br />
** SATA<br />
<br />
New Devices Supported<br />
* [[Pine64]] LTS<br />
* [[Xunlong Orange Pi One Plus]]<br />
* [[Xunlong Orange Pi Zero Plus 2]] (H3 variant)<br />
* [[Sinovoip Banana Pi M2+]] (H5 variant)<br />
<br />
== Merged into 4.19 ==<br />
<br />
* A10 / A13 / A20 / A23 / A33<br />
** SRAM controller / system control<br />
<br />
* A64<br />
** SRAM controller / system control<br />
** Display clocks and bus<br />
** RTC clock output<br />
** PWM<br />
** R_I2C<br />
<br />
* H3<br />
** SRAM controller / system control<br />
<br />
* H6<br />
** MMC<br />
** PMIC<br />
<br />
* R40<br />
** HDMI support<br />
<br />
Board Changes<br />
* SPI flash node for [[Orange Pi PC 2]] and [[Pine64#Variants | Pine64 SoPINE]]<br />
* Use lid switch as wake-up source for A64 based laptops<br />
* LEDs added for [[PineH64]]<br />
<br />
New Devices<br />
* [[Pine Pinebook]]<br />
* Amarula A64-Relic<br />
<br />
== Changes merged up to 4.18 ==<br />
Changes up to 4.18 can be found on [[Linux mainlining history]] page.<br />
<br />
=References=<br />
<references /><br />
<br />
= See also =<br />
* [[Mainline Kernel Howto]]<br />
* [[Possible setups for hacking on mainline]]<br />
* [[Linux Kernel]]<br />
**[[Toolchain]]<br />
<br />
=External Links=<br />
* [http://www.kernel.org kernel.org] - Official website for the Linux Kernel<br />
** [http://github.com/torvalds/linux http://github.com/torvalds/linux] - Linus Torvalds' GitHub account with the upstream Linux kernel<br />
* [http://www.kernel.org/doc/ Linux Kernel documentation index]<br />
* [http://www.kernel.org/doc/man-pages/ Linux Kernel man pages]<br />
* [http://kernelnewbies.org/ Kernel Newbies Site - Excellent source of information for people new to kernel]<br />
* [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=summary Linus' kernel tree for 2.6]<br />
* [https://bugzilla.kernel.org/ Kernel bugzilla] - [https://bugzilla.kernel.org/show_bug.cgi?id=15790 Regressions for each of recent versions]<br />
* [http://www.fsfla.org/svnwiki/selibre/linux-libre/ Linux-libre project - Maintains and distributes fully free kernel]<br />
* [http://lingrok.org/ LinGrok, Linux kernel source code cross-reference]<br />
* [https://elixir.bootlin.com/linux/latest/source?a=arm Bootlin LXR (Linux Cross Reference)]<br />
* [http://lists.infradead.org/pipermail/linux-arm-kernel/ linux-arm-kernel - Mailing list archive]<br />
===How to upstream===<br />
* [http://www.elinux.org/images/a/ad/Arm-soc-checklist.pdf Your new ARM SoC Linux support check-list! by Thomas Petazzoni of Bootlin]<br />
*[http://www.cnx-software.com/2014/03/04/linux-kernel-upstreaming-how-to-linaro-connect-asia-2014/ Linux Kernel Upstreaming How-To (CNXSoft - Embedded Software Development)]<br />
**[http://www.youtube.com/watch?v=dY7fikYZ42c Matt Porter's YouTube video talk on “Upstreaming 101" (LCA14-111)]<br />
***[http://www.linaro.org/documents/download/65f888c674508efcf9bd5d90398a186a530d01c4c78db Matt Porter's presentation slides for “Upstreaming 101" (LCA14-111)]<br />
**[https://www.youtube.com/watch?v=FiQ5uV_Mm5c Matt Porter's YouTube video talk on “Upstreaming 201" (LCA14-112)]<br />
***[http://www.linaro.org/documents/download/7b9920fcc89589bad9063d87d9137f08530d020b71924 Matt Porter's presentation slides for “Upstreaming 201" (LCA14-112)]<br />
*[http://www.cnx-software.com/2011/08/19/how-to-write-and-submit-a-linux-kernel-patch/ How to Write and Submit a Linux Kernel Patch (CNXSoft - Embedded Software Development)]<br />
** [http://www.youtube.com/watch?v=LLBrBBImJt4 YouTube Video- Write and Submit your first Linux kernel Patch]<br />
** [http://www.cnx-software.com/pdf/kernel-tutorial/kernel_patch_tutorial.pdf Greg Kroah-Hartman Kernel Tutorial Write and Submit your first Linux Kernel Patch]<br />
*[http://www.linaro.org/connect-lca14/resources Linaro resources page from LCA (Linaro Connect Asia) 2014]<br />
<br />
=Notes=<br />
<references group=note /><br />
<br />
[[Category:Development]]</div>
Frozeus
https://linux-sunxi.org/index.php?title=Linux_mainlining_effort&diff=23518
Linux mainlining effort
2020-08-31T12:59:39Z
<p>Frozeus: H5 DVFS has been merged</p>
<hr />
<div>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.<br />
<br />
=Overview=<br />
The idea is to submit the code needed to run the Linux kernel on Allwinner SoCs upstream, ie. to the official Linux kernel.<br />
<br />
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.<ref>http://www.elinux.org/images/a/ad/Arm-soc-checklist.pdf</ref><ref>[http://www.cnx-software.com/2013/01/16/your-new-arm-soc-linux-support-check-list-elce-2012/ Your New ARM SoC Linux Support Check-List – ELCE 2012]</ref><br />
<br />
Where relevant, I have attempted to include who is currently working on an item, mostly separate from any particular mainlining goal.<br />
<br />
=Status=<br />
<br />
The [[Mainline_Kernel_Howto|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|Mainline U-Boot howto]].<br />
<br />
The [[:Category:Mainline_Kernel | Mainline Kernel category ]] gives an overview of currently supported devices.<br />
<br />
== Status Matrix ==<br />
<br />
The goal of this matrix is to give an easy view of work on each SoC worked on by linux-sunxi.<br />
<br />
{| class="wikitable" style="text-align: center; width: 100%;"<br />
|-<br />
! style="width: 13%; text-align: left;" colspan="2" | Model<br />
! [[F1C100s|F1C-<br>100s]]<br />
! [[A10]]<br />
! [[A10s]]<br />
! [[A13]]<br>[[R8]]<br />
! [[A20]]<br>[[T2]]<br />
! [[A23]]<br />
! [[A31]]<br />
! [[A33]]<br>[[R16]]<br />
! [[A64]]<br />
! [[A80]]<br />
! [[A83T]]<br />
! [[GR8]]<br />
! [[H3]]<br />
! [[H5]]<br />
! [[H6]]<br />
! [[R40]]<br>[[T3]]<br />
! [[V3]]|[[V3s]]<br>[[S3]]|[[S3L]]<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | AC97<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[Audio Codec]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 5.0<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: red;" | NO<br />
<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" rowspan="3" | ADC<br />
| style="text-align: left;" | GPADC<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| N/A<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: lightgreen;" | 4.12<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | Thermal<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: darkgreen;" | ?<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.7<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | Touch<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.16<br />
| N/A<br />
| style="background: lightgreen;" | 4.0<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: lightgreen;" | 4.9<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| rowspan="4" style="text-align: left;" | [[CSI|Camera]]<br />
<br />
| style="text-align: left;" | BT656<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.0<br />
<br />
|-<br />
| style="text-align: left;" | ISP<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | MIPI CSI<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | Parallel<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.0<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Clocks<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.10<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.10<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | CPUFreq (DVFS)<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: lightgreen;" | 5.9<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[Cryptographic_Hardware_Accelerators|Crypto]]<br />
| N/A<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Display (SimpleFB)<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen" | 4.16<br />
| style="background: lightgreen" | 4.16<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| rowspan="8" style="text-align: left;" | Display<br />
([https://dri.freedesktop.org/wiki/DRM/ DRM])<br />
<br />
| style="text-align: left;" | CVBS<br />
| style="background: red;" | NO<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9 ?<br />
| style="background: lightgreen;" | 4.7<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | HDMI Audio<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | HDMI CEC<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.14<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.17<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: orange;" | WIP<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | HDMI Video<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.13<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.17<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.19<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | LVDS<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.7<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.16<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | MIPI DSI<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | RGB<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.7<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.9<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" | VGA<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | DMA<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" rowspan="2" | [[Ethernet]]<br />
| style="text-align: left;" | [[Ethernet#EMAC|EMAC]]<br />
| rowspan="2"| N/A<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.11<br />
| rowspan="2"| N/A<br />
| style="background: lightgreen;" | 3.11 <br />
| rowspan="2"| N/A<br />
| N/A<br />
| rowspan="2"| N/A<br />
| style="background: lightgreen;" rowspan="2" | 4.15<br />
| style="background: lightgreen;" rowspan="2" | 5.1<br />
| style="background: lightgreen;" rowspan="2" | 4.16<br />
| rowspan="2"| N/A<br />
| style="background: lightgreen;" rowspan="2" | 4.15<br />
| style="background: lightgreen;" rowspan="2" | 4.15<br />
| style="background: lightgreen;" rowspan="2" | 5.0<br />
| style="background: lightgreen;" rowspan="2" | 4.18<br />
| style="background: lightgreen;" rowspan="2" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" | [[Ethernet#GMAC|GMAC]]<br />
<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.17<br />
<br />
|-<br />
| style="text-align: left;" rowspan="2" | GPU(3D)<br />
| style="text-align: left;" | [[Mali]]<br />
| N/A<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | [[PowerVR]]<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | HW Spinlocks<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| N/A<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[I2C]]<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.13<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | I2S<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | IOMMU<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.8<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[IR]]<br />
| style="background: red" | NO<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 3.17<br />
| N/A<br />
| style="background: lightgreen;" | 4.0<br />
| N/A<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Keypad<br />
| N/A<br />
| style="background: orange;" | WIP<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | WIP<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | LRADC<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | MsgBox<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.8<br />
| N/A<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: lightgreen;" | 5.8<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[NAND]]<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 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 [[MTD_Driver#Challenges|this page]] </ref><br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9 <ref name="mlc"/><br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9 <ref name="mlc" /><br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9 <ref name="mlc" /><br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: red;" | NO<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | PCIe<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<ref name="h6-pcie">Allwinner H6 has a quirky PCIe controller that doesn't map the PCIe address space properly to CPU,<br />
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/</ref><br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Pinctrl<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[PMU]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: grey; color: white;" | ?<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[PWM_Controller|PWM]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.12<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[RSB]]<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.4<br />
| N/A<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.14<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[RTC]]<br />
| N/A<br />
| style="background: lightgreen;" | 3.14<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.10<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SATA]]<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | SD/ [[eMMC|MMC]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | SMP<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.18<br />
| N/A<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SPDIF]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.7<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.7<br />
| N/A<br />
| style="background: lightgreen;" | 4.9<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SPIdev|SPI]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.7<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SRAM Controller|SRAM]]<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 4.19<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 5.0 <br />
| style="background: lightgreen;" | 5.1 <br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[USB]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[USB_OTG_Controller_Register_guide#USB_OTG|USB OTG]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | USB3<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.5<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[Video_Engine|VE]] | [[Sunxi-Cedrus]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.2 <br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Watchdog<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
! style="text-align: left;" colspan="2" | Model<br />
! [[F1C100s|F1C-<br>100s]]<br />
! [[A10]]<br />
! [[A10s]]<br />
! [[A13]]<br />
[[R8]]<br />
! [[A20]]<br>[[T2]]<br />
! [[A23]]<br />
! [[A31]]<br />
! [[A33]]<br />
[[R16]]<br />
! [[A64]]<br />
! [[A80]]<br />
! [[A83T]]<br />
! [[GR8]]<br />
! [[H3]]<br />
! [[H5]]<br />
! [[H6]]<br />
! [[R40]]<br />
[[T3]]<br />
! [[V3]]|[[V3s]]<br>[[S3]]|[[S3L]]<br />
<br />
|}<br />
<br />
<br />
{| class="wikitable" style="text-align: center;"<br />
|-<br />
! Legend<br />
|-<br />
| style="background: lightgreen;" | In Linux mainline since version x<br />
|-<br />
| style="background: darkgreen;" | Nobody works on it, but it should be compatible with already done drivers<br />
|-<br />
| style="background: orange;" | Somebody works on it<br />
|-<br />
| style="background: red;" | No support, nobody works on it<br />
|-<br />
| style="background: black; color: white;" | support impossible<br />
|-<br />
| style="background: grey; color: white;" | Status is unknown/to be completed<br />
|}<br />
<br />
== Work In Progress ==<br />
<br />
=== Core Stuff ===<br />
*[[AR100]] firmware (WiP: Samuel Holland) [https://github.com/crust-firmware/crust ARISC firmware for sunxi SoCs ]<br />
<br />
* [[A13]] PSCI Suspend / Resume / CPUIdle (WiP: Antoine Tenart) [http://lists.denx.de/pipermail/u-boot/2016-September/265453.html patch-v1]<br />
<br />
=== Major drivers ===<br />
* [[R40]] Jernej Skrabec<br />
** Mali GPU [https://patchwork.kernel.org/project/linux-arm-kernel/list/?series=337613&archive=both&state=* ARM: dts: sun8i: r40: Enable mali400 GPU]<br />
** DMA [https://patchwork.kernel.org/project/linux-arm-kernel/list/?series=338095&archive=both&state=* ARM: dts: sun8i: r40: Enable DMA]<br />
** IR [https://patchwork.kernel.org/project/linux-arm-kernel/list/?series=338363&archive=both&state=* ARM: dts: sun8i: r40: Enable IR on BananaPi M2U]<br />
** SRAM & Video Decoding Engine (Cedrus) [https://patchwork.kernel.org/project/linux-arm-kernel/list/?series=338381 ARM: dts: sun8i: r40: Enable video decoder]<br />
<br />
* [[A83T]] MIPI-CSI Kévin L'hôpital [https://patchwork.kernel.org/project/linux-arm-kernel/list/?series=336625&archive=both&state=* Support of MIPI CSI-2 for A83T and OV8865 camera]<br />
<br />
* [[H6]] I2S Clément Péron [https://patchwork.kernel.org/cover/11497007/ Add H6 I2S support]<br />
<br />
* [[H6]] Hypervisor for PCIe [https://forum.armbian.com/topic/13529-a-try-on-utilizing-h6-pcie-with-virtualization/ A try on utilizing H6 PCIe with "Virtualization"]<br />
<br />
* [[A64]] / [[H3]] / [[H5]] / [[H6]] HDMI Audio - Clément Péron / Marcus Cooper / Jernej Škrabec [https://patchwork.kernel.org/cover/11510511/ Add Allwinner H3/H5/A64 HDMI audio]<br />
<br />
* [[R40]] MIPI-DSI WIP Jagan Teki [https://patchwork.kernel.org/cover/11314031/ drm/sun4i: Allwinner R40 MIPI-DSI support v3] <br />
<br />
* [[AC100]] Audio codec WiP Ondrej Jirman [https://megous.com/git/linux/commit/?h=orange-pi-5.5&id=170d38d650f67657600d4e0e868e0e7110b89ee1 digital part] [https://megous.com/git/linux/commit/?h=orange-pi-5.5&id=ee424255a6fb9280ac27c1953019b768ca973ca7 analog part]<br />
<br />
* [[F1C100s]] USB WIP George Hilliard [https://lore.kernel.org/patchwork/cover/1206936/ Support the Allwinner F1C100s USB stack]<br />
<br />
* [[V3s]] SRAM & Video Decoding Engine (Cedrus) WiP Martin Cerveny [https://github.com/mcerveny/linux/commits/v3s_videocodec_v2 Enable video decoder]<br />
<br />
=== Minor drivers ===<br />
<!-- Please move the newest entry to the top --><br />
* [[V3s]] Crypto engine Martin Cerveny [https://patchwork.kernel.org/patch/11741237/ ARM: dts: sun8i: v3s: Enable crypto engine]<br />
* [[A64]] hwspinlock WIP Nikolay Borisov [https://patchwork.kernel.org/cover/11373645/ Add support for hwspinlock on A64 SoC] <br />
* [[A83T]] / [[A64]] / [[H3]] hwspinlock WIP Corentin Labbe (montjoie) [https://lore.kernel.org/patchwork/patch/706512/ RFC,1/3][https://lore.kernel.org/patchwork/patch/706511/ RFC,2/3][https://lore.kernel.org/patchwork/patch/706513/ RFC,3/3]<br />
* [[A10]] / [[A20]] / [[A31]] HDMI Audio WIP Stefan Mavrodiev [https://lore.kernel.org/patchwork/cover/1177803/ Add support for sun4i HDMI audio]<br />
* [[A80]] Thermal sensor WIP Philipp Rossak (embed-3d): https://github.com/embed-3d/linux/branches/all<br />
* [[R40]] PWM (WIP Hao Zhang [https://www.spinics.net/lists/kernel/msg2731498.html patch-v2])<br />
* [[A31]]/[[A31s]] PWM support (WiP: Siarhei Volkau [http://lists.infradead.org/pipermail/linux-arm-kernel/2017-February/486405.html patch-v1])<br />
* [[A20]] Keypad (WiP: Yassin Jaffer (ddc) [http://lists.infradead.org/pipermail/linux-arm-kernel/2015-September/370079.html patch])<br />
<br />
=== Drivers that can still be improved/added ===<br />
<br />
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.<br />
<br />
* sunxi-musb driver lacks DMA support (with current driver, USB gadgets are limited to PIO, limiting speed to 10MiB/s and causing large CPU)<br />
* DE2 driver has buggy layer support, see [https://patchwork.kernel.org/patch/11145803/]<br />
* DE1/DE2/DE3 writeback support<br />
* A64 audiocodec driver components (sun8i-codec and sun50i-codec-analog) lack support for jack detection<br />
<br />
== Merged into 5.9 ==<br />
* [[H5]]<br />
** DVFS<br />
<br />
== Merged into 5.8 ==<br />
* [[H6]]<br />
** DVFS<br />
** IOMMU<br />
<br />
* [[A64]] / [[A83T]] / [[H3]] / [[H5]] / [[H6]]<br />
** Message Box<br />
<br />
== Merged into 5.7 ==<br />
*[[A20]]<br />
** LVDS<br />
<br />
*[[A83T]] and [[A64]]<br />
** Rotate driver<br />
<br />
*[[H6]]<br />
** SPI<br />
<br />
*[[R40]]<br />
** Thermal<br />
<br />
New Devices Supported<br />
*[[A13]]<br />
** [[PocketBook Touch Lux 3]]<br />
*[[A64]]<br />
** [[PineTab]]<br />
** [[PinePhone]]<br />
*[[A20]]<br />
** Linutronix Testbox v2<br />
<br />
== Merged into 5.6 ==<br />
* [[A10]]<br />
** CSI (BT656 and Parallel)<br />
<br />
*[[A64]]<br />
** MIPI DSI<br />
** DVFS<br />
<br />
*[[A64]] / [[A83T]] / [[H3]] / [[H5]] / [[H6]]<br />
** Thermal<br />
<br />
*[[H6]]<br />
** PWM<br />
<br />
*[[H3]] / [[H5]] / [[H6]] / [[R40]]<br />
**PMU<br />
<br />
*[[R40]]<br />
** CSI (BT656 and Parallel)<br />
** SPI<br />
<br />
New Devices Supported<br />
* [[H5]]<br />
** ALL-H3-IT H5 board<br />
** ALL-H5-CC H5 board<br />
* [[H6]]<br />
** [[PineH64]] Model A<br />
<br />
== Merged into 5.5 ==<br />
*[[H3]]<br />
** Deinterlace driver<br />
<br />
*[[H6]]<br />
**Crypto<br />
**GPU(3D) Mali<br />
**USB3 PHY (for boards not needing vbus switching)<br />
<br />
*[[A64]] / [[A80]] / [[A83T]] / [[H3]] / [[H5]] / [[R40]] <br />
**Crypto<br />
<br />
* multiple SoCs<br />
** [[Cedrus]] HEVC/H.265<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** Emlid Neutis<br />
<br />
New Devices Supported<br />
* [[H3]]<br />
** [[FriendlyARM_NanoPi_Duo2]]<br />
<br />
== Merged into 5.4 ==<br />
* [[A20]]<br />
** CSI (BT656 and Parallel)<br />
* [[A64]]<br />
** IR<br />
* [[H6]]<br />
** IR<br />
** RTC<br />
** SPDIF<br />
New Devices Supported<br />
* [[A64]]<br />
** [[Olimex A64-OLinuXino]] eMMC<br />
* [[H6]]<br />
** [[Tanix TX6]]<br />
* [[S3]]<br />
** [[Lichee Zero Plus]]<br />
<br />
== Merged into 5.3 ==<br />
* [[A64]]<br />
** LRADC<br />
** RGB LCD<br />
* [[A83T]]<br />
** CSI (BT656 and Parallel)<br />
* [[H6]]<br />
** DMA<br />
** Watchdog<br />
* multiple SoCs<br />
** [[Cedrus]] h264<br />
<br />
== Merged into 5.2 ==<br />
* [[A83T]]<br />
** LRADC<br />
** USB OTG<br />
<br />
* [[H6]]<br />
** [[Cedrus]]<br />
<br />
* multiple SoCs<br />
** [[Mali Open Source Driver|Lima]]<br />
** [[Mali Open Source Driver|Panfrost]]<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** Banana-Pi-M2-Zero<br />
<br />
New Devices Supported<br />
* [[H6]]<br />
** [[Beelink GS1]]<br />
** [[Xunlong Orange Pi 3]]<br />
<br />
== Merged into 5.1 ==<br />
* A10<br />
** Cedrus<br />
** PMU<br />
<br />
* A20<br />
** Audio Codec improvements<br />
<br />
* A23<br />
** Display pipeline<br />
** LCD enabled on Q8 A23 tablets<br />
<br />
* A64<br />
** [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c950ca8c35eeb32224a63adc47e12f9e226da241 ARM Architectural Timer errata workaround]<br />
** PMU<br />
** CSI (BT656 and Parallel)<br />
<br />
* A80<br />
** GMAC support<br />
<br />
* CSI in general<br />
** RGR565 support<br />
** JPEG pass-through support<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** [[Banana Pi M2+]]<br />
** [[Banana Pi M2 Ultra]]<br />
<br />
* [[LCD]] enabled on [[A13]] [[Q8]] tablets<br />
<br />
== Merged into 5.0 ==<br />
* A64<br />
** Cedrus<br />
** DTS changes for audio codec<br />
<br />
* F1C100s<br />
** initial F1C100s support<br />
<br />
* H6<br />
** Ethernet<br />
** DE3/HDMI support<br />
** USB 2.0<br />
<br />
* H3 / H5<br />
** CSI (BT656 and Parallel) Support<br />
<br />
* H5<br />
** Cedrus<br />
<br />
* R40<br />
** RTC<br />
<br />
* T3<br />
** initial T3 support<ref>https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b7badd1d7aa61087010803affa19bb83fb5a0af1</ref><br />
<br />
* V3s<br />
** CSI (BT656 and Parallel) Support<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** [[Sinovoip Banana Pi M2 Magic | Banana Pi M2 Magic]]<br />
** [[Banana Pi M3]]<br />
** [[Banana Pi M64]]<br />
** [[Cubietruck]]<br />
** [[Cubietech_Cubietruck_Plus|Cubietruck Plus]]<br />
<br />
New Devices Supported<br />
* [[Xunlong Orange Pi Lite 2]]<br />
<br />
== Merged into 4.20 ==<br />
<br />
* A13 / A20 / A33 / H3<br />
** Cedrus driver<br />
<br />
* A83T<br />
** IR receiver<br />
<br />
* A64<br />
** Cleanup for device tree files<br />
** HDMI support<br />
** Audio codec support (DTS changes will be merged in 5.0)<br />
<br />
* H3 / H5<br />
** SID<br />
<br />
* R40<br />
** SATA<br />
<br />
New Devices Supported<br />
* [[Pine64]] LTS<br />
* [[Xunlong Orange Pi One Plus]]<br />
* [[Xunlong Orange Pi Zero Plus 2]] (H3 variant)<br />
* [[Sinovoip Banana Pi M2+]] (H5 variant)<br />
<br />
== Merged into 4.19 ==<br />
<br />
* A10 / A13 / A20 / A23 / A33<br />
** SRAM controller / system control<br />
<br />
* A64<br />
** SRAM controller / system control<br />
** Display clocks and bus<br />
** RTC clock output<br />
** PWM<br />
** R_I2C<br />
<br />
* H3<br />
** SRAM controller / system control<br />
<br />
* H6<br />
** MMC<br />
** PMIC<br />
<br />
* R40<br />
** HDMI support<br />
<br />
Board Changes<br />
* SPI flash node for [[Orange Pi PC 2]] and [[Pine64#Variants | Pine64 SoPINE]]<br />
* Use lid switch as wake-up source for A64 based laptops<br />
* LEDs added for [[PineH64]]<br />
<br />
New Devices<br />
* [[Pine Pinebook]]<br />
* Amarula A64-Relic<br />
<br />
== Changes merged up to 4.18 ==<br />
Changes up to 4.18 can be found on [[Linux mainlining history]] page.<br />
<br />
=References=<br />
<references /><br />
<br />
= See also =<br />
* [[Mainline Kernel Howto]]<br />
* [[Possible setups for hacking on mainline]]<br />
* [[Linux Kernel]]<br />
**[[Toolchain]]<br />
<br />
=External Links=<br />
* [http://www.kernel.org kernel.org] - Official website for the Linux Kernel<br />
** [http://github.com/torvalds/linux http://github.com/torvalds/linux] - Linus Torvalds' GitHub account with the upstream Linux kernel<br />
* [http://www.kernel.org/doc/ Linux Kernel documentation index]<br />
* [http://www.kernel.org/doc/man-pages/ Linux Kernel man pages]<br />
* [http://kernelnewbies.org/ Kernel Newbies Site - Excellent source of information for people new to kernel]<br />
* [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=summary Linus' kernel tree for 2.6]<br />
* [https://bugzilla.kernel.org/ Kernel bugzilla] - [https://bugzilla.kernel.org/show_bug.cgi?id=15790 Regressions for each of recent versions]<br />
* [http://www.fsfla.org/svnwiki/selibre/linux-libre/ Linux-libre project - Maintains and distributes fully free kernel]<br />
* [http://lingrok.org/ LinGrok, Linux kernel source code cross-reference]<br />
* [https://elixir.bootlin.com/linux/latest/source?a=arm Bootlin LXR (Linux Cross Reference)]<br />
* [http://lists.infradead.org/pipermail/linux-arm-kernel/ linux-arm-kernel - Mailing list archive]<br />
===How to upstream===<br />
* [http://www.elinux.org/images/a/ad/Arm-soc-checklist.pdf Your new ARM SoC Linux support check-list! by Thomas Petazzoni of Bootlin]<br />
*[http://www.cnx-software.com/2014/03/04/linux-kernel-upstreaming-how-to-linaro-connect-asia-2014/ Linux Kernel Upstreaming How-To (CNXSoft - Embedded Software Development)]<br />
**[http://www.youtube.com/watch?v=dY7fikYZ42c Matt Porter's YouTube video talk on “Upstreaming 101" (LCA14-111)]<br />
***[http://www.linaro.org/documents/download/65f888c674508efcf9bd5d90398a186a530d01c4c78db Matt Porter's presentation slides for “Upstreaming 101" (LCA14-111)]<br />
**[https://www.youtube.com/watch?v=FiQ5uV_Mm5c Matt Porter's YouTube video talk on “Upstreaming 201" (LCA14-112)]<br />
***[http://www.linaro.org/documents/download/7b9920fcc89589bad9063d87d9137f08530d020b71924 Matt Porter's presentation slides for “Upstreaming 201" (LCA14-112)]<br />
*[http://www.cnx-software.com/2011/08/19/how-to-write-and-submit-a-linux-kernel-patch/ How to Write and Submit a Linux Kernel Patch (CNXSoft - Embedded Software Development)]<br />
** [http://www.youtube.com/watch?v=LLBrBBImJt4 YouTube Video- Write and Submit your first Linux kernel Patch]<br />
** [http://www.cnx-software.com/pdf/kernel-tutorial/kernel_patch_tutorial.pdf Greg Kroah-Hartman Kernel Tutorial Write and Submit your first Linux Kernel Patch]<br />
*[http://www.linaro.org/connect-lca14/resources Linaro resources page from LCA (Linaro Connect Asia) 2014]<br />
<br />
=Notes=<br />
<references group=note /><br />
<br />
[[Category:Development]]</div>
Frozeus
https://linux-sunxi.org/index.php?title=Linux_mainlining_effort&diff=23439
Linux mainlining effort
2020-07-24T07:28:29Z
<p>Frozeus: /* Planned for 5.9 */</p>
<hr />
<div>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.<br />
<br />
=Overview=<br />
The idea is to submit the code needed to run the Linux kernel on Allwinner SoCs upstream, ie. to the official Linux kernel.<br />
<br />
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.<ref>http://www.elinux.org/images/a/ad/Arm-soc-checklist.pdf</ref><ref>[http://www.cnx-software.com/2013/01/16/your-new-arm-soc-linux-support-check-list-elce-2012/ Your New ARM SoC Linux Support Check-List – ELCE 2012]</ref><br />
<br />
Where relevant, I have attempted to include who is currently working on an item, mostly separate from any particular mainlining goal.<br />
<br />
=Status=<br />
<br />
The [[Mainline_Kernel_Howto|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|Mainline U-Boot howto]].<br />
<br />
The [[:Category:Mainline_Kernel | Mainline Kernel category ]] gives an overview of currently supported devices.<br />
<br />
== Status Matrix ==<br />
<br />
The goal of this matrix is to give an easy view of work on each SoC worked on by linux-sunxi.<br />
<br />
{| class="wikitable" style="text-align: center; width: 100%;"<br />
|-<br />
! style="width: 13%; text-align: left;" colspan="2" | Model<br />
! [[F1C100s|F1C-<br>100s]]<br />
! [[A10]]<br />
! [[A10s]]<br />
! [[A13]]<br>[[R8]]<br />
! [[A20]]<br>[[T2]]<br />
! [[A23]]<br />
! [[A31]]<br />
! [[A33]]<br>[[R16]]<br />
! [[A64]]<br />
! [[A80]]<br />
! [[A83T]]<br />
! [[GR8]]<br />
! [[H3]]<br />
! [[H5]]<br />
! [[H6]]<br />
! [[R40]]<br>[[T3]]<br />
! [[V3]]|[[V3s]]<br>[[S3]]|[[S3L]]<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | AC97<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[Audio Codec]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 5.0<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: red;" | NO<br />
<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" rowspan="3" | ADC<br />
| style="text-align: left;" | GPADC<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| N/A<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: lightgreen;" | 4.12<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | Thermal<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: darkgreen;" | ?<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.7<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | Touch<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.16<br />
| N/A<br />
| style="background: lightgreen;" | 4.0<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: lightgreen;" | 4.9<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| rowspan="4" style="text-align: left;" | [[CSI|Camera]]<br />
<br />
| style="text-align: left;" | BT656<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.0<br />
<br />
|-<br />
| style="text-align: left;" | ISP<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | MIPI CSI<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | Parallel<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.0<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Clocks<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.10<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.10<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | CPUFreq (DVFS)<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[Cryptographic_Hardware_Accelerators|Crypto]]<br />
| N/A<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: darkgreen;" | ?<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Display (SimpleFB)<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen" | 4.16<br />
| style="background: lightgreen" | 4.16<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| rowspan="8" style="text-align: left;" | Display<br />
([https://dri.freedesktop.org/wiki/DRM/ DRM])<br />
<br />
| style="text-align: left;" | CVBS<br />
| style="background: red;" | NO<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9 ?<br />
| style="background: lightgreen;" | 4.7<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | HDMI Audio<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | HDMI CEC<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.14<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.17<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: orange;" | WIP<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | HDMI Video<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.13<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.17<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.19<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | LVDS<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.7<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.16<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | MIPI DSI<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | RGB<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.7<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.9<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" | VGA<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | DMA<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" rowspan="2" | [[Ethernet]]<br />
| style="text-align: left;" | [[Ethernet#EMAC|EMAC]]<br />
| rowspan="2"| N/A<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.11<br />
| rowspan="2"| N/A<br />
| style="background: lightgreen;" | 3.11 <br />
| rowspan="2"| N/A<br />
| N/A<br />
| rowspan="2"| N/A<br />
| style="background: lightgreen;" rowspan="2" | 4.15<br />
| style="background: lightgreen;" rowspan="2" | 5.1<br />
| style="background: lightgreen;" rowspan="2" | 4.16<br />
| rowspan="2"| N/A<br />
| style="background: lightgreen;" rowspan="2" | 4.15<br />
| style="background: lightgreen;" rowspan="2" | 4.15<br />
| style="background: lightgreen;" rowspan="2" | 5.0<br />
| style="background: lightgreen;" rowspan="2" | 4.18<br />
| style="background: lightgreen;" rowspan="2" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" | [[Ethernet#GMAC|GMAC]]<br />
<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.17<br />
<br />
|-<br />
| style="text-align: left;" rowspan="2" | GPU(3D)<br />
| style="text-align: left;" | [[Mali]]<br />
| N/A<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | [[PowerVR]]<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | HW Spinlocks<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| N/A<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[I2C]]<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.13<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | I2S<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | IOMMU<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.8<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[IR]]<br />
| style="background: red" | NO<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 3.17<br />
| N/A<br />
| style="background: lightgreen;" | 4.0<br />
| N/A<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Keypad<br />
| N/A<br />
| style="background: orange;" | WIP<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | WIP<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | LRADC<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | MsgBox<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.8<br />
| N/A<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: lightgreen;" | 5.8<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[NAND]]<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 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 [[MTD_Driver#Challenges|this page]] </ref><br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9 <ref name="mlc"/><br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9 <ref name="mlc" /><br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9 <ref name="mlc" /><br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: red;" | NO<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | PCIe<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<ref name="h6-pcie">Allwinner H6 has a quirky PCIe controller that doesn't map the PCIe address space properly to CPU,<br />
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/</ref><br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Pinctrl<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[PMU]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: grey; color: white;" | ?<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[PWM_Controller|PWM]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.12<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[RSB]]<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.4<br />
| N/A<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.14<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[RTC]]<br />
| N/A<br />
| style="background: lightgreen;" | 3.14<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.10<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SATA]]<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | SD/ [[eMMC|MMC]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | SMP<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.18<br />
| N/A<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SPDIF]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.7<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.7<br />
| N/A<br />
| style="background: lightgreen;" | 4.9<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SPIdev|SPI]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.7<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SRAM Controller|SRAM]]<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 4.19<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 5.0 <br />
| style="background: lightgreen;" | 5.1 <br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[USB]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[USB_OTG_Controller_Register_guide#USB_OTG|USB OTG]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | USB3<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.5<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[Video_Engine|VE]] | [[Sunxi-Cedrus]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.2 <br />
| style="background: red;" | NO<br />
| style="background: darkgreen;" | ?<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Watchdog<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
! style="text-align: left;" colspan="2" | Model<br />
! [[F1C100s|F1C-<br>100s]]<br />
! [[A10]]<br />
! [[A10s]]<br />
! [[A13]]<br />
[[R8]]<br />
! [[A20]]<br>[[T2]]<br />
! [[A23]]<br />
! [[A31]]<br />
! [[A33]]<br />
[[R16]]<br />
! [[A64]]<br />
! [[A80]]<br />
! [[A83T]]<br />
! [[GR8]]<br />
! [[H3]]<br />
! [[H5]]<br />
! [[H6]]<br />
! [[R40]]<br />
[[T3]]<br />
! [[V3]]|[[V3s]]<br>[[S3]]|[[S3L]]<br />
<br />
|}<br />
<br />
<br />
{| class="wikitable" style="text-align: center;"<br />
|-<br />
! Legend<br />
|-<br />
| style="background: lightgreen;" | In Linux mainline since version x<br />
|-<br />
| style="background: darkgreen;" | Nobody works on it, but it should be compatible with already done drivers<br />
|-<br />
| style="background: orange;" | Somebody works on it<br />
|-<br />
| style="background: red;" | No support, nobody works on it<br />
|-<br />
| style="background: black; color: white;" | support impossible<br />
|-<br />
| style="background: grey; color: white;" | Status is unknown/to be completed<br />
|}<br />
<br />
== Work In Progress ==<br />
<br />
=== Core Stuff ===<br />
*[[AR100]] firmware (WiP: Samuel Holland) [https://github.com/crust-firmware/crust ARISC firmware for sunxi SoCs ]<br />
<br />
* [[A13]] PSCI Suspend / Resume / CPUIdle (WiP: Antoine Tenart) [http://lists.denx.de/pipermail/u-boot/2016-September/265453.html patch-v1]<br />
<br />
=== Major drivers ===<br />
* [[H6]] I2S Clément Péron [https://patchwork.kernel.org/cover/11497007/ Add H6 I2S support]<br />
<br />
* [[H6]] Hypervisor for PCIe [https://forum.armbian.com/topic/13529-a-try-on-utilizing-h6-pcie-with-virtualization/ A try on utilizing H6 PCIe with "Virtualization"]<br />
<br />
* [[A64]] / [[H3]] / [[H5]] / [[H6]] HDMI Audio - Clément Péron / Marcus Cooper / Jernej Škrabec [https://patchwork.kernel.org/cover/11510511/ Add Allwinner H3/H5/A64 HDMI audio]<br />
<br />
* [[R40]] MIPI-DSI WIP Jagan Teki [https://patchwork.kernel.org/cover/11314031/ drm/sun4i: Allwinner R40 MIPI-DSI support v3] <br />
<br />
* [[AC100]] Audio codec WiP Ondrej Jirman [https://megous.com/git/linux/commit/?h=orange-pi-5.5&id=170d38d650f67657600d4e0e868e0e7110b89ee1 digital part] [https://megous.com/git/linux/commit/?h=orange-pi-5.5&id=ee424255a6fb9280ac27c1953019b768ca973ca7 analog part]<br />
<br />
* [[F1C100s]] USB WIP George Hilliard [https://lore.kernel.org/patchwork/cover/1206936/ Support the Allwinner F1C100s USB stack]<br />
<br />
=== Minor drivers ===<br />
<!-- Please move the newest entry to the top --><br />
* [[A64]] hwspinlock WIP Nikolay Borisov [https://patchwork.kernel.org/cover/11373645/ Add support for hwspinlock on A64 SoC] <br />
* [[A83T]] / [[A64]] / [[H3]] hwspinlock WIP Corentin Labbe (montjoie) [https://lore.kernel.org/patchwork/patch/706512/ RFC,1/3][https://lore.kernel.org/patchwork/patch/706511/ RFC,2/3][https://lore.kernel.org/patchwork/patch/706513/ RFC,3/3]<br />
* [[A10]] / [[A20]] / [[A31]] HDMI Audio WIP Stefan Mavrodiev [https://lore.kernel.org/patchwork/cover/1177803/ Add support for sun4i HDMI audio]<br />
* [[A80]] Thermal sensor WIP Philipp Rossak (embed-3d): https://github.com/embed-3d/linux/branches/all<br />
* [[H5]] Cpufreq (DVFS) WIP Chen-Yu Tsai [https://patchwork.kernel.org/cover/10787869/ arm64: dts: allwinner: h5: Enable CPU DVFS (cpufreq)]<br />
* [[R40]] PWM (WIP Hao Zhang [https://www.spinics.net/lists/kernel/msg2731498.html patch-v2])<br />
* [[A31]]/[[A31s]] PWM support (WiP: Siarhei Volkau [http://lists.infradead.org/pipermail/linux-arm-kernel/2017-February/486405.html patch-v1])<br />
* [[A20]] Keypad (WiP: Yassin Jaffer (ddc) [http://lists.infradead.org/pipermail/linux-arm-kernel/2015-September/370079.html patch])<br />
<br />
=== Drivers that can still be improved/added ===<br />
<br />
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.<br />
<br />
* sunxi-musb driver lacks DMA support (with current driver, USB gadgets are limited to PIO, limiting speed to 10MiB/s and causing large CPU)<br />
* DE2 driver has buggy layer support, see [https://patchwork.kernel.org/patch/11145803/]<br />
* DE1/DE2/DE3 writeback support<br />
* A64 audiocodec driver components (sun8i-codec and sun50i-codec-analog) lack support for jack detection<br />
<br />
== Planned for 5.9 ==<br />
* [[H5]]<br />
** DVFS<br />
<br />
== Merged into 5.8 ==<br />
* [[H6]]<br />
** DVFS<br />
** IOMMU<br />
<br />
* [[A64]] / [[A83T]] / [[H3]] / [[H5]] / [[H6]]<br />
** Message Box<br />
<br />
== Merged into 5.7 ==<br />
*[[A20]]<br />
** LVDS<br />
<br />
*[[A83T]] and [[A64]]<br />
** Rotate driver<br />
<br />
*[[H6]]<br />
** SPI<br />
<br />
*[[R40]]<br />
** Thermal<br />
<br />
New Devices Supported<br />
*[[A13]]<br />
** [[PocketBook Touch Lux 3]]<br />
*[[A64]]<br />
** [[PineTab]]<br />
** [[PinePhone]]<br />
*[[A20]]<br />
** Linutronix Testbox v2<br />
<br />
== Merged into 5.6 ==<br />
* [[A10]]<br />
** CSI (BT656 and Parallel)<br />
<br />
*[[A64]]<br />
** MIPI DSI<br />
** DVFS<br />
<br />
*[[A64]] / [[A83T]] / [[H3]] / [[H5]] / [[H6]]<br />
** Thermal<br />
<br />
*[[H6]]<br />
** PWM<br />
<br />
*[[H3]] / [[H5]] / [[H6]] / [[R40]]<br />
**PMU<br />
<br />
*[[R40]]<br />
** CSI (BT656 and Parallel)<br />
** SPI<br />
<br />
New Devices Supported<br />
* [[H5]]<br />
** ALL-H3-IT H5 board<br />
** ALL-H5-CC H5 board<br />
* [[H6]]<br />
** [[PineH64]] Model A<br />
<br />
== Merged into 5.5 ==<br />
*[[H3]]<br />
** Deinterlace driver<br />
<br />
*[[H6]]<br />
**Crypto<br />
**GPU(3D) Mali<br />
**USB3 PHY (for boards not needing vbus switching)<br />
<br />
*[[A64]] / [[A80]] / [[A83T]] / [[H3]] / [[H5]] / [[R40]] <br />
**Crypto<br />
<br />
* multiple SoCs<br />
** [[Cedrus]] HEVC/H.265<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** Emlid Neutis<br />
<br />
New Devices Supported<br />
* [[H3]]<br />
** [[FriendlyARM_NanoPi_Duo2]]<br />
<br />
== Merged into 5.4 ==<br />
* [[A20]]<br />
** CSI (BT656 and Parallel)<br />
* [[A64]]<br />
** IR<br />
* [[H6]]<br />
** IR<br />
** RTC<br />
** SPDIF<br />
New Devices Supported<br />
* [[A64]]<br />
** [[Olimex A64-OLinuXino]] eMMC<br />
* [[H6]]<br />
** [[Tanix TX6]]<br />
* [[S3]]<br />
** [[Lichee Zero Plus]]<br />
<br />
== Merged into 5.3 ==<br />
* [[A64]]<br />
** LRADC<br />
** RGB LCD<br />
* [[A83T]]<br />
** CSI (BT656 and Parallel)<br />
* [[H6]]<br />
** DMA<br />
** Watchdog<br />
* multiple SoCs<br />
** [[Cedrus]] h264<br />
<br />
== Merged into 5.2 ==<br />
* [[A83T]]<br />
** LRADC<br />
** USB OTG<br />
<br />
* [[H6]]<br />
** [[Cedrus]]<br />
<br />
* multiple SoCs<br />
** [[Mali Open Source Driver|Lima]]<br />
** [[Mali Open Source Driver|Panfrost]]<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** Banana-Pi-M2-Zero<br />
<br />
New Devices Supported<br />
* [[H6]]<br />
** [[Beelink GS1]]<br />
** [[Xunlong Orange Pi 3]]<br />
<br />
== Merged into 5.1 ==<br />
* A10<br />
** Cedrus<br />
** PMU<br />
<br />
* A20<br />
** Audio Codec improvements<br />
<br />
* A23<br />
** Display pipeline<br />
** LCD enabled on Q8 A23 tablets<br />
<br />
* A64<br />
** ARM Architectural Timer errata workaround<br />
** PMU<br />
** CSI (BT656 and Parallel)<br />
<br />
* A80<br />
** GMAC support<br />
<br />
* CSI in general<br />
** RGR565 support<br />
** JPEG pass-through support<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** [[Banana Pi M2+]]<br />
** [[Banana Pi M2 Ultra]]<br />
<br />
* [[LCD]] enabled on [[A13]] [[Q8]] tablets<br />
<br />
== Merged into 5.0 ==<br />
* A64<br />
** Cedrus<br />
** DTS changes for audio codec<br />
<br />
* F1C100s<br />
** initial F1C100s support<br />
<br />
* H6<br />
** Ethernet<br />
** DE3/HDMI support<br />
** USB 2.0<br />
<br />
* H3 / H5<br />
** CSI (BT656 and Parallel) Support<br />
<br />
* H5<br />
** Cedrus<br />
<br />
* R40<br />
** RTC<br />
<br />
* T3<br />
** initial T3 support<ref>https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b7badd1d7aa61087010803affa19bb83fb5a0af1</ref><br />
<br />
* V3s<br />
** CSI (BT656 and Parallel) Support<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** [[Sinovoip Banana Pi M2 Magic | Banana Pi M2 Magic]]<br />
** [[Banana Pi M3]]<br />
** [[Banana Pi M64]]<br />
** [[Cubietruck]]<br />
** [[Cubietech_Cubietruck_Plus|Cubietruck Plus]]<br />
<br />
New Devices Supported<br />
* [[Xunlong Orange Pi Lite 2]]<br />
<br />
== Merged into 4.20 ==<br />
<br />
* A13 / A20 / A33 / H3<br />
** Cedrus driver<br />
<br />
* A83T<br />
** IR receiver<br />
<br />
* A64<br />
** Cleanup for device tree files<br />
** HDMI support<br />
** Audio codec support (DTS changes will be merged in 5.0)<br />
<br />
* H3 / H5<br />
** SID<br />
<br />
* R40<br />
** SATA<br />
<br />
New Devices Supported<br />
* [[Pine64]] LTS<br />
* [[Xunlong Orange Pi One Plus]]<br />
* [[Xunlong Orange Pi Zero Plus 2]] (H3 variant)<br />
* [[Sinovoip Banana Pi M2+]] (H5 variant)<br />
<br />
== Merged into 4.19 ==<br />
<br />
* A10 / A13 / A20 / A23 / A33<br />
** SRAM controller / system control<br />
<br />
* A64<br />
** SRAM controller / system control<br />
** Display clocks and bus<br />
** RTC clock output<br />
** PWM<br />
** R_I2C<br />
<br />
* H3<br />
** SRAM controller / system control<br />
<br />
* H6<br />
** MMC<br />
** PMIC<br />
<br />
* R40<br />
** HDMI support<br />
<br />
Board Changes<br />
* SPI flash node for [[Orange Pi PC 2]] and [[Pine64#Variants | Pine64 SoPINE]]<br />
* Use lid switch as wake-up source for A64 based laptops<br />
* LEDs added for [[PineH64]]<br />
<br />
New Devices<br />
* [[Pine Pinebook]]<br />
* Amarula A64-Relic<br />
<br />
== Changes merged up to 4.18 ==<br />
Changes up to 4.18 can be found on [[Linux mainlining history]] page.<br />
<br />
=References=<br />
<references /><br />
<br />
= See also =<br />
* [[Mainline Kernel Howto]]<br />
* [[Possible setups for hacking on mainline]]<br />
* [[Linux Kernel]]<br />
**[[Toolchain]]<br />
<br />
=External Links=<br />
* [http://www.kernel.org kernel.org] - Official website for the Linux Kernel<br />
** [http://github.com/torvalds/linux http://github.com/torvalds/linux] - Linus Torvalds' GitHub account with the upstream Linux kernel<br />
* [http://www.kernel.org/doc/ Linux Kernel documentation index]<br />
* [http://www.kernel.org/doc/man-pages/ Linux Kernel man pages]<br />
* [http://kernelnewbies.org/ Kernel Newbies Site - Excellent source of information for people new to kernel]<br />
* [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=summary Linus' kernel tree for 2.6]<br />
* [https://bugzilla.kernel.org/ Kernel bugzilla] - [https://bugzilla.kernel.org/show_bug.cgi?id=15790 Regressions for each of recent versions]<br />
* [http://www.fsfla.org/svnwiki/selibre/linux-libre/ Linux-libre project - Maintains and distributes fully free kernel]<br />
* [http://lingrok.org/ LinGrok, Linux kernel source code cross-reference]<br />
* [https://elixir.bootlin.com/linux/latest/source?a=arm Bootlin LXR (Linux Cross Reference)]<br />
* [http://lists.infradead.org/pipermail/linux-arm-kernel/ linux-arm-kernel - Mailing list archive]<br />
===How to upstream===<br />
* [http://www.elinux.org/images/a/ad/Arm-soc-checklist.pdf Your new ARM SoC Linux support check-list! by Thomas Petazzoni of Bootlin]<br />
*[http://www.cnx-software.com/2014/03/04/linux-kernel-upstreaming-how-to-linaro-connect-asia-2014/ Linux Kernel Upstreaming How-To (CNXSoft - Embedded Software Development)]<br />
**[http://www.youtube.com/watch?v=dY7fikYZ42c Matt Porter's YouTube video talk on “Upstreaming 101" (LCA14-111)]<br />
***[http://www.linaro.org/documents/download/65f888c674508efcf9bd5d90398a186a530d01c4c78db Matt Porter's presentation slides for “Upstreaming 101" (LCA14-111)]<br />
**[https://www.youtube.com/watch?v=FiQ5uV_Mm5c Matt Porter's YouTube video talk on “Upstreaming 201" (LCA14-112)]<br />
***[http://www.linaro.org/documents/download/7b9920fcc89589bad9063d87d9137f08530d020b71924 Matt Porter's presentation slides for “Upstreaming 201" (LCA14-112)]<br />
*[http://www.cnx-software.com/2011/08/19/how-to-write-and-submit-a-linux-kernel-patch/ How to Write and Submit a Linux Kernel Patch (CNXSoft - Embedded Software Development)]<br />
** [http://www.youtube.com/watch?v=LLBrBBImJt4 YouTube Video- Write and Submit your first Linux kernel Patch]<br />
** [http://www.cnx-software.com/pdf/kernel-tutorial/kernel_patch_tutorial.pdf Greg Kroah-Hartman Kernel Tutorial Write and Submit your first Linux Kernel Patch]<br />
*[http://www.linaro.org/connect-lca14/resources Linaro resources page from LCA (Linaro Connect Asia) 2014]<br />
<br />
=Notes=<br />
<references group=note /><br />
<br />
[[Category:Development]]</div>
Frozeus
https://linux-sunxi.org/index.php?title=Linux_mainlining_effort&diff=23357
Linux mainlining effort
2020-05-28T17:30:28Z
<p>Frozeus: /* Major drivers */</p>
<hr />
<div>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.<br />
<br />
=Overview=<br />
The idea is to submit the code needed to run the Linux kernel on Allwinner SoCs upstream, ie. to the official Linux kernel.<br />
<br />
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.<ref>http://www.elinux.org/images/a/ad/Arm-soc-checklist.pdf</ref><ref>[http://www.cnx-software.com/2013/01/16/your-new-arm-soc-linux-support-check-list-elce-2012/ Your New ARM SoC Linux Support Check-List – ELCE 2012]</ref><br />
<br />
Where relevant, I have attempted to include who is currently working on an item, mostly separate from any particular mainlining goal.<br />
<br />
=Status=<br />
<br />
The [[Mainline_Kernel_Howto|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|Mainline U-Boot howto]].<br />
<br />
The [[:Category:Mainline_Kernel | Mainline Kernel category ]] gives an overview of currently supported devices.<br />
<br />
== Status Matrix ==<br />
<br />
The goal of this matrix is to give an easy view of work on each SoC worked on by linux-sunxi.<br />
<br />
{| class="wikitable" style="text-align: center; width: 100%;"<br />
|-<br />
! style="width: 13%; text-align: left;" colspan="2" | Model<br />
! [[F1C100s|F1C-<br>100s]]<br />
! [[A10]]<br />
! [[A10s]]<br />
! [[A13]]<br>[[R8]]<br />
! [[A20]]<br>[[T2]]<br />
! [[A23]]<br />
! [[A31]]<br />
! [[A33]]<br>[[R16]]<br />
! [[A64]]<br />
! [[A80]]<br />
! [[A83T]]<br />
! [[GR8]]<br />
! [[H3]]<br />
! [[H5]]<br />
! [[H6]]<br />
! [[R40]]<br>[[T3]]<br />
! [[V3]]|[[V3s]]<br>[[S3]]|[[S3L]]<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | AC97<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[Audio Codec]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 5.0<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: red;" | NO<br />
<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" rowspan="3" | ADC<br />
| style="text-align: left;" | GPADC<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| N/A<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: lightgreen;" | 4.12<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | Thermal<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: darkgreen;" | ?<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.7<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | Touch<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.16<br />
| N/A<br />
| style="background: lightgreen;" | 4.0<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: lightgreen;" | 4.9<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| rowspan="4" style="text-align: left;" | [[CSI|Camera]]<br />
<br />
| style="text-align: left;" | BT656<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.0<br />
<br />
|-<br />
| style="text-align: left;" | ISP<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | MIPI CSI<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | Parallel<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.0<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Clocks<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.10<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.10<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | CPUFreq (DVFS)<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[Cryptographic_Hardware_Accelerators|Crypto]]<br />
| N/A<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: darkgreen;" | ?<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Display (SimpleFB)<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen" | 4.16<br />
| style="background: lightgreen" | 4.16<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| rowspan="8" style="text-align: left;" | Display<br />
([https://dri.freedesktop.org/wiki/DRM/ DRM])<br />
<br />
| style="text-align: left;" | CVBS<br />
| style="background: red;" | NO<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9 ?<br />
| style="background: lightgreen;" | 4.7<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | HDMI Audio<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | HDMI CEC<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.14<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.17<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: orange;" | WIP<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | HDMI Video<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.13<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.17<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.19<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | LVDS<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.7<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.16<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | MIPI DSI<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | RGB<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.7<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.9<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" | VGA<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | DMA<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" rowspan="2" | [[Ethernet]]<br />
| style="text-align: left;" | [[Ethernet#EMAC|EMAC]]<br />
| rowspan="2"| N/A<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.11<br />
| rowspan="2"| N/A<br />
| style="background: lightgreen;" | 3.11 <br />
| rowspan="2"| N/A<br />
| N/A<br />
| rowspan="2"| N/A<br />
| style="background: lightgreen;" rowspan="2" | 4.15<br />
| style="background: lightgreen;" rowspan="2" | 5.1<br />
| style="background: lightgreen;" rowspan="2" | 4.16<br />
| rowspan="2"| N/A<br />
| style="background: lightgreen;" rowspan="2" | 4.15<br />
| style="background: lightgreen;" rowspan="2" | 4.15<br />
| style="background: lightgreen;" rowspan="2" | 5.0<br />
| style="background: lightgreen;" rowspan="2" | 4.18<br />
| style="background: lightgreen;" rowspan="2" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" | [[Ethernet#GMAC|GMAC]]<br />
<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.17<br />
<br />
|-<br />
| style="text-align: left;" rowspan="2" | GPU(3D)<br />
| style="text-align: left;" | [[Mali]]<br />
| N/A<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | [[PowerVR]]<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | HW Spinlocks<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| N/A<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[I2C]]<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.13<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | I2S<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | IOMMU<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.8<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[IR]]<br />
| style="background: red" | NO<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 3.17<br />
| N/A<br />
| style="background: lightgreen;" | 4.0<br />
| N/A<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Keypad<br />
| N/A<br />
| style="background: orange;" | WIP<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | WIP<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | LRADC<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | MsgBox<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.8<br />
| N/A<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: lightgreen;" | 5.8<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[NAND]]<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 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 [[MTD_Driver#Challenges|this page]] </ref><br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9 <ref name="mlc"/><br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9 <ref name="mlc" /><br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9 <ref name="mlc" /><br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: red;" | NO<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | PCIe<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<ref name="h6-pcie">Allwinner H6 has a quirky PCIe controller that doesn't map the PCIe address space properly to CPU,<br />
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/</ref><br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Pinctrl<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[PMU]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: grey; color: white;" | ?<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[PWM_Controller|PWM]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.12<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[RSB]]<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.4<br />
| N/A<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.14<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[RTC]]<br />
| N/A<br />
| style="background: lightgreen;" | 3.14<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.10<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SATA]]<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | SD/ [[eMMC|MMC]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | SMP<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.18<br />
| N/A<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SPDIF]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.7<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.7<br />
| N/A<br />
| style="background: lightgreen;" | 4.9<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SPIdev|SPI]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.7<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SRAM Controller|SRAM]]<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 4.19<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 5.0 <br />
| style="background: lightgreen;" | 5.1 <br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[USB]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[USB_OTG_Controller_Register_guide#USB_OTG|USB OTG]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | USB3<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.5<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[Video_Engine|VE]] | [[Sunxi-Cedrus]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.2 <br />
| style="background: red;" | NO<br />
| style="background: darkgreen;" | ?<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Watchdog<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
! style="text-align: left;" colspan="2" | Model<br />
! [[F1C100s|F1C-<br>100s]]<br />
! [[A10]]<br />
! [[A10s]]<br />
! [[A13]]<br />
[[R8]]<br />
! [[A20]]<br>[[T2]]<br />
! [[A23]]<br />
! [[A31]]<br />
! [[A33]]<br />
[[R16]]<br />
! [[A64]]<br />
! [[A80]]<br />
! [[A83T]]<br />
! [[GR8]]<br />
! [[H3]]<br />
! [[H5]]<br />
! [[H6]]<br />
! [[R40]]<br />
[[T3]]<br />
! [[V3]]|[[V3s]]<br>[[S3]]|[[S3L]]<br />
<br />
|}<br />
<br />
<br />
{| class="wikitable" style="text-align: center;"<br />
|-<br />
! Legend<br />
|-<br />
| style="background: lightgreen;" | In Linux mainline since version x<br />
|-<br />
| style="background: darkgreen;" | Nobody works on it, but it should be compatible with already done drivers<br />
|-<br />
| style="background: orange;" | Somebody works on it<br />
|-<br />
| style="background: red;" | No support, nobody works on it<br />
|-<br />
| style="background: black; color: white;" | support impossible<br />
|-<br />
| style="background: grey; color: white;" | Status is unknown/to be completed<br />
|}<br />
<br />
== Work In Progress ==<br />
<br />
=== Core Stuff ===<br />
*[[AR100]] firmware (WiP: Samuel Holland) [https://github.com/crust-firmware/crust ARISC firmware for sunxi SoCs ]<br />
<br />
* [[A13]] PSCI Suspend / Resume / CPUIdle (WiP: Antoine Tenart) [http://lists.denx.de/pipermail/u-boot/2016-September/265453.html patch-v1]<br />
<br />
=== Major drivers ===<br />
* [[H6]] I2S Clément Péron [https://patchwork.kernel.org/cover/11497007/ Add H6 I2S support]<br />
<br />
* [[H6]] Hypervisor for PCIe [https://forum.armbian.com/topic/13529-a-try-on-utilizing-h6-pcie-with-virtualization/ A try on utilizing H6 PCIe with "Virtualization"]<br />
<br />
* [[A64]] / [[H3]] / [[H5]] / [[H6]] HDMI Audio - Clément Péron / Marcus Cooper / Jernej Škrabec [https://patchwork.kernel.org/cover/11510511/ Add Allwinner H3/H5/A64 HDMI audio]<br />
<br />
* [[R40]] MIPI-DSI WIP Jagan Teki [https://patchwork.kernel.org/cover/11314031/ drm/sun4i: Allwinner R40 MIPI-DSI support v3] <br />
<br />
* [[AC100]] Audio codec WiP Ondrej Jirman [https://megous.com/git/linux/commit/?h=orange-pi-5.5&id=170d38d650f67657600d4e0e868e0e7110b89ee1 digital part] [https://megous.com/git/linux/commit/?h=orange-pi-5.5&id=ee424255a6fb9280ac27c1953019b768ca973ca7 analog part]<br />
<br />
* [[F1C100s]] USB WIP George Hilliard [https://lore.kernel.org/patchwork/cover/1206936/ Support the Allwinner F1C100s USB stack]<br />
<br />
=== Minor drivers ===<br />
<!-- Please move the newest entry to the top --><br />
* [[A64]] hwspinlock WIP Nikolay Borisov [https://patchwork.kernel.org/cover/11373645/ Add support for hwspinlock on A64 SoC] <br />
* [[A83T]] / [[A64]] / [[H3]] hwspinlock WIP Corentin Labbe (montjoie) [https://lore.kernel.org/patchwork/patch/706512/ RFC,1/3][https://lore.kernel.org/patchwork/patch/706511/ RFC,2/3][https://lore.kernel.org/patchwork/patch/706513/ RFC,3/3]<br />
* [[A10]] / [[A20]] / [[A31]] HDMI Audio WIP Stefan Mavrodiev [https://lore.kernel.org/patchwork/cover/1177803/ Add support for sun4i HDMI audio]<br />
* [[A80]] Thermal sensor WIP Philipp Rossak (embed-3d): https://github.com/embed-3d/linux/branches/all<br />
* [[H5]] Cpufreq (DVFS) WIP Chen-Yu Tsai [https://patchwork.kernel.org/cover/10787869/ arm64: dts: allwinner: h5: Enable CPU DVFS (cpufreq)]<br />
* [[R40]] PWM (WIP Hao Zhang [https://www.spinics.net/lists/kernel/msg2731498.html patch-v2])<br />
* [[A31]]/[[A31s]] PWM support (WiP: Siarhei Volkau [http://lists.infradead.org/pipermail/linux-arm-kernel/2017-February/486405.html patch-v1])<br />
* [[A20]] Keypad (WiP: Yassin Jaffer (ddc) [http://lists.infradead.org/pipermail/linux-arm-kernel/2015-September/370079.html patch])<br />
<br />
=== Drivers that can still be improved/added ===<br />
<br />
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.<br />
<br />
* sunxi-musb driver lacks DMA support (with current driver, USB gadgets are limited to PIO, limiting speed to 10MiB/s and causing large CPU)<br />
* DE2 driver has buggy layer support, see [https://patchwork.kernel.org/patch/11145803/]<br />
* DE1/DE2/DE3 writeback support<br />
* A64 audiocodec driver components (sun8i-codec and sun50i-codec-analog) lack support for jack detection<br />
<br />
== Planned for 5.9 ==<br />
<br />
== Planned for 5.8 ==<br />
* [[H6]]<br />
** DVFS<br />
** IOMMU<br />
<br />
* [[A64]] / [[A83T]] / [[H3]] / [[H5]] / [[H6]]<br />
** Message Box<br />
<br />
== Merged into 5.7 ==<br />
*[[A20]]<br />
** LVDS<br />
<br />
*[[A83T]] and [[A64]]<br />
** Rotate driver<br />
<br />
*[[H6]]<br />
** SPI<br />
<br />
*[[R40]]<br />
** Thermal<br />
<br />
New Devices Supported<br />
*[[A13]]<br />
** [[PocketBook Touch Lux 3]]<br />
*[[A64]]<br />
** [[PineTab]]<br />
** [[PinePhone]]<br />
*[[A20]]<br />
** Linutronix Testbox v2<br />
<br />
== Merged into 5.6 ==<br />
* [[A10]]<br />
** CSI (BT656 and Parallel)<br />
<br />
*[[A64]]<br />
** MIPI DSI<br />
** DVFS<br />
<br />
*[[A64]] / [[A83T]] / [[H3]] / [[H5]] / [[H6]]<br />
** Thermal<br />
<br />
*[[H6]]<br />
** PWM<br />
<br />
*[[H3]] / [[H5]] / [[H6]] / [[R40]]<br />
**PMU<br />
<br />
*[[R40]]<br />
** CSI (BT656 and Parallel)<br />
** SPI<br />
<br />
New Devices Supported<br />
* [[H5]]<br />
** ALL-H3-IT H5 board<br />
** ALL-H5-CC H5 board<br />
* [[H6]]<br />
** [[PineH64]] Model A<br />
<br />
== Merged into 5.5 ==<br />
*[[H3]]<br />
** Deinterlace driver<br />
<br />
*[[H6]]<br />
**Crypto<br />
**GPU(3D) Mali<br />
**USB3 PHY (for boards not needing vbus switching)<br />
<br />
*[[A64]] / [[A80]] / [[A83T]] / [[H3]] / [[H5]] / [[R40]] <br />
**Crypto<br />
<br />
* multiple SoCs<br />
** [[Cedrus]] HEVC/H.265<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** Emlid Neutis<br />
<br />
New Devices Supported<br />
* [[H3]]<br />
** [[FriendlyARM_NanoPi_Duo2]]<br />
<br />
== Merged into 5.4 ==<br />
* [[A20]]<br />
** CSI (BT656 and Parallel)<br />
* [[A64]]<br />
** IR<br />
* [[H6]]<br />
** IR<br />
** RTC<br />
** SPDIF<br />
New Devices Supported<br />
* [[A64]]<br />
** [[Olimex A64-OLinuXino]] eMMC<br />
* [[H6]]<br />
** [[Tanix TX6]]<br />
* [[S3]]<br />
** [[Lichee Zero Plus]]<br />
<br />
== Merged into 5.3 ==<br />
* [[A64]]<br />
** LRADC<br />
** RGB LCD<br />
* [[A83T]]<br />
** CSI (BT656 and Parallel)<br />
* [[H6]]<br />
** DMA<br />
** Watchdog<br />
* multiple SoCs<br />
** [[Cedrus]] h264<br />
<br />
== Merged into 5.2 ==<br />
* [[A83T]]<br />
** LRADC<br />
** USB OTG<br />
<br />
* [[H6]]<br />
** [[Cedrus]]<br />
<br />
* multiple SoCs<br />
** [[Mali Open Source Driver|Lima]]<br />
** [[Mali Open Source Driver|Panfrost]]<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** Banana-Pi-M2-Zero<br />
<br />
New Devices Supported<br />
* [[H6]]<br />
** [[Beelink GS1]]<br />
** [[Xunlong Orange Pi 3]]<br />
<br />
== Merged into 5.1 ==<br />
* A10<br />
** Cedrus<br />
** PMU<br />
<br />
* A20<br />
** Audio Codec improvements<br />
<br />
* A23<br />
** Display pipeline<br />
** LCD enabled on Q8 A23 tablets<br />
<br />
* A64<br />
** ARM Architectural Timer errata workaround<br />
** PMU<br />
** CSI (BT656 and Parallel)<br />
<br />
* A80<br />
** GMAC support<br />
<br />
* CSI in general<br />
** RGR565 support<br />
** JPEG pass-through support<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** [[Banana Pi M2+]]<br />
** [[Banana Pi M2 Ultra]]<br />
<br />
* [[LCD]] enabled on [[A13]] [[Q8]] tablets<br />
<br />
== Merged into 5.0 ==<br />
* A64<br />
** Cedrus<br />
** DTS changes for audio codec<br />
<br />
* F1C100s<br />
** initial F1C100s support<br />
<br />
* H6<br />
** Ethernet<br />
** DE3/HDMI support<br />
** USB 2.0<br />
<br />
* H3 / H5<br />
** CSI (BT656 and Parallel) Support<br />
<br />
* H5<br />
** Cedrus<br />
<br />
* R40<br />
** RTC<br />
<br />
* T3<br />
** initial T3 support<ref>https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b7badd1d7aa61087010803affa19bb83fb5a0af1</ref><br />
<br />
* V3s<br />
** CSI (BT656 and Parallel) Support<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** [[Sinovoip Banana Pi M2 Magic | Banana Pi M2 Magic]]<br />
** [[Banana Pi M3]]<br />
** [[Banana Pi M64]]<br />
** [[Cubietruck]]<br />
** [[Cubietech_Cubietruck_Plus|Cubietruck Plus]]<br />
<br />
New Devices Supported<br />
* [[Xunlong Orange Pi Lite 2]]<br />
<br />
== Merged into 4.20 ==<br />
<br />
* A13 / A20 / A33 / H3<br />
** Cedrus driver<br />
<br />
* A83T<br />
** IR receiver<br />
<br />
* A64<br />
** Cleanup for device tree files<br />
** HDMI support<br />
** Audio codec support (DTS changes will be merged in 5.0)<br />
<br />
* H3 / H5<br />
** SID<br />
<br />
* R40<br />
** SATA<br />
<br />
New Devices Supported<br />
* [[Pine64]] LTS<br />
* [[Xunlong Orange Pi One Plus]]<br />
* [[Xunlong Orange Pi Zero Plus 2]] (H3 variant)<br />
* [[Sinovoip Banana Pi M2+]] (H5 variant)<br />
<br />
== Merged into 4.19 ==<br />
<br />
* A10 / A13 / A20 / A23 / A33<br />
** SRAM controller / system control<br />
<br />
* A64<br />
** SRAM controller / system control<br />
** Display clocks and bus<br />
** RTC clock output<br />
** PWM<br />
** R_I2C<br />
<br />
* H3<br />
** SRAM controller / system control<br />
<br />
* H6<br />
** MMC<br />
** PMIC<br />
<br />
* R40<br />
** HDMI support<br />
<br />
Board Changes<br />
* SPI flash node for [[Orange Pi PC 2]] and [[Pine64#Variants | Pine64 SoPINE]]<br />
* Use lid switch as wake-up source for A64 based laptops<br />
* LEDs added for [[PineH64]]<br />
<br />
New Devices<br />
* [[Pine Pinebook]]<br />
* Amarula A64-Relic<br />
<br />
== Changes merged up to 4.18 ==<br />
Changes up to 4.18 can be found on [[Linux mainlining history]] page.<br />
<br />
=References=<br />
<references /><br />
<br />
= See also =<br />
* [[Mainline Kernel Howto]]<br />
* [[Possible setups for hacking on mainline]]<br />
* [[Linux Kernel]]<br />
**[[Toolchain]]<br />
<br />
=External Links=<br />
* [http://www.kernel.org kernel.org] - Official website for the Linux Kernel<br />
** [http://github.com/torvalds/linux http://github.com/torvalds/linux] - Linus Torvalds' GitHub account with the upstream Linux kernel<br />
* [http://www.kernel.org/doc/ Linux Kernel documentation index]<br />
* [http://www.kernel.org/doc/man-pages/ Linux Kernel man pages]<br />
* [http://kernelnewbies.org/ Kernel Newbies Site - Excellent source of information for people new to kernel]<br />
* [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=summary Linus' kernel tree for 2.6]<br />
* [https://bugzilla.kernel.org/ Kernel bugzilla] - [https://bugzilla.kernel.org/show_bug.cgi?id=15790 Regressions for each of recent versions]<br />
* [http://www.fsfla.org/svnwiki/selibre/linux-libre/ Linux-libre project - Maintains and distributes fully free kernel]<br />
* [http://lingrok.org/ LinGrok, Linux kernel source code cross-reference]<br />
* [https://elixir.bootlin.com/linux/latest/source?a=arm Bootlin LXR (Linux Cross Reference)]<br />
* [http://lists.infradead.org/pipermail/linux-arm-kernel/ linux-arm-kernel - Mailing list archive]<br />
===How to upstream===<br />
* [http://www.elinux.org/images/a/ad/Arm-soc-checklist.pdf Your new ARM SoC Linux support check-list! by Thomas Petazzoni of Bootlin]<br />
*[http://www.cnx-software.com/2014/03/04/linux-kernel-upstreaming-how-to-linaro-connect-asia-2014/ Linux Kernel Upstreaming How-To (CNXSoft - Embedded Software Development)]<br />
**[http://www.youtube.com/watch?v=dY7fikYZ42c Matt Porter's YouTube video talk on “Upstreaming 101" (LCA14-111)]<br />
***[http://www.linaro.org/documents/download/65f888c674508efcf9bd5d90398a186a530d01c4c78db Matt Porter's presentation slides for “Upstreaming 101" (LCA14-111)]<br />
**[https://www.youtube.com/watch?v=FiQ5uV_Mm5c Matt Porter's YouTube video talk on “Upstreaming 201" (LCA14-112)]<br />
***[http://www.linaro.org/documents/download/7b9920fcc89589bad9063d87d9137f08530d020b71924 Matt Porter's presentation slides for “Upstreaming 201" (LCA14-112)]<br />
*[http://www.cnx-software.com/2011/08/19/how-to-write-and-submit-a-linux-kernel-patch/ How to Write and Submit a Linux Kernel Patch (CNXSoft - Embedded Software Development)]<br />
** [http://www.youtube.com/watch?v=LLBrBBImJt4 YouTube Video- Write and Submit your first Linux kernel Patch]<br />
** [http://www.cnx-software.com/pdf/kernel-tutorial/kernel_patch_tutorial.pdf Greg Kroah-Hartman Kernel Tutorial Write and Submit your first Linux Kernel Patch]<br />
*[http://www.linaro.org/connect-lca14/resources Linaro resources page from LCA (Linaro Connect Asia) 2014]<br />
<br />
=Notes=<br />
<references group=note /><br />
<br />
[[Category:Development]]</div>
Frozeus
https://linux-sunxi.org/index.php?title=Linux_mainlining_effort&diff=23356
Linux mainlining effort
2020-05-28T17:29:52Z
<p>Frozeus: /* Status Matrix */</p>
<hr />
<div>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.<br />
<br />
=Overview=<br />
The idea is to submit the code needed to run the Linux kernel on Allwinner SoCs upstream, ie. to the official Linux kernel.<br />
<br />
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.<ref>http://www.elinux.org/images/a/ad/Arm-soc-checklist.pdf</ref><ref>[http://www.cnx-software.com/2013/01/16/your-new-arm-soc-linux-support-check-list-elce-2012/ Your New ARM SoC Linux Support Check-List – ELCE 2012]</ref><br />
<br />
Where relevant, I have attempted to include who is currently working on an item, mostly separate from any particular mainlining goal.<br />
<br />
=Status=<br />
<br />
The [[Mainline_Kernel_Howto|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|Mainline U-Boot howto]].<br />
<br />
The [[:Category:Mainline_Kernel | Mainline Kernel category ]] gives an overview of currently supported devices.<br />
<br />
== Status Matrix ==<br />
<br />
The goal of this matrix is to give an easy view of work on each SoC worked on by linux-sunxi.<br />
<br />
{| class="wikitable" style="text-align: center; width: 100%;"<br />
|-<br />
! style="width: 13%; text-align: left;" colspan="2" | Model<br />
! [[F1C100s|F1C-<br>100s]]<br />
! [[A10]]<br />
! [[A10s]]<br />
! [[A13]]<br>[[R8]]<br />
! [[A20]]<br>[[T2]]<br />
! [[A23]]<br />
! [[A31]]<br />
! [[A33]]<br>[[R16]]<br />
! [[A64]]<br />
! [[A80]]<br />
! [[A83T]]<br />
! [[GR8]]<br />
! [[H3]]<br />
! [[H5]]<br />
! [[H6]]<br />
! [[R40]]<br>[[T3]]<br />
! [[V3]]|[[V3s]]<br>[[S3]]|[[S3L]]<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | AC97<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[Audio Codec]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 5.0<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: red;" | NO<br />
<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" rowspan="3" | ADC<br />
| style="text-align: left;" | GPADC<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| N/A<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: lightgreen;" | 4.12<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | Thermal<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: darkgreen;" | ?<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.7<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | Touch<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.16<br />
| N/A<br />
| style="background: lightgreen;" | 4.0<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: lightgreen;" | 4.9<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| rowspan="4" style="text-align: left;" | [[CSI|Camera]]<br />
<br />
| style="text-align: left;" | BT656<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.0<br />
<br />
|-<br />
| style="text-align: left;" | ISP<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | MIPI CSI<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | Parallel<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.0<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Clocks<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.10<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.10<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | CPUFreq (DVFS)<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[Cryptographic_Hardware_Accelerators|Crypto]]<br />
| N/A<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: darkgreen;" | ?<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Display (SimpleFB)<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen" | 4.16<br />
| style="background: lightgreen" | 4.16<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| rowspan="8" style="text-align: left;" | Display<br />
([https://dri.freedesktop.org/wiki/DRM/ DRM])<br />
<br />
| style="text-align: left;" | CVBS<br />
| style="background: red;" | NO<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9 ?<br />
| style="background: lightgreen;" | 4.7<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | HDMI Audio<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | HDMI CEC<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.14<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.17<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: orange;" | WIP<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | HDMI Video<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.13<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.17<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.19<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | LVDS<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.7<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.16<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | MIPI DSI<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | RGB<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.7<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.9<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" | VGA<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | DMA<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" rowspan="2" | [[Ethernet]]<br />
| style="text-align: left;" | [[Ethernet#EMAC|EMAC]]<br />
| rowspan="2"| N/A<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.11<br />
| rowspan="2"| N/A<br />
| style="background: lightgreen;" | 3.11 <br />
| rowspan="2"| N/A<br />
| N/A<br />
| rowspan="2"| N/A<br />
| style="background: lightgreen;" rowspan="2" | 4.15<br />
| style="background: lightgreen;" rowspan="2" | 5.1<br />
| style="background: lightgreen;" rowspan="2" | 4.16<br />
| rowspan="2"| N/A<br />
| style="background: lightgreen;" rowspan="2" | 4.15<br />
| style="background: lightgreen;" rowspan="2" | 4.15<br />
| style="background: lightgreen;" rowspan="2" | 5.0<br />
| style="background: lightgreen;" rowspan="2" | 4.18<br />
| style="background: lightgreen;" rowspan="2" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" | [[Ethernet#GMAC|GMAC]]<br />
<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.17<br />
<br />
|-<br />
| style="text-align: left;" rowspan="2" | GPU(3D)<br />
| style="text-align: left;" | [[Mali]]<br />
| N/A<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | [[PowerVR]]<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | HW Spinlocks<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| N/A<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[I2C]]<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.13<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | I2S<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | IOMMU<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.8<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[IR]]<br />
| style="background: red" | NO<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 3.17<br />
| N/A<br />
| style="background: lightgreen;" | 4.0<br />
| N/A<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Keypad<br />
| N/A<br />
| style="background: orange;" | WIP<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | WIP<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | LRADC<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | MsgBox<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.8<br />
| N/A<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: lightgreen;" | 5.8<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[NAND]]<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 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 [[MTD_Driver#Challenges|this page]] </ref><br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9 <ref name="mlc"/><br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9 <ref name="mlc" /><br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9 <ref name="mlc" /><br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: red;" | NO<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | PCIe<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<ref name="h6-pcie">Allwinner H6 has a quirky PCIe controller that doesn't map the PCIe address space properly to CPU,<br />
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/</ref><br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Pinctrl<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[PMU]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: grey; color: white;" | ?<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[PWM_Controller|PWM]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.12<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[RSB]]<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.4<br />
| N/A<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.14<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[RTC]]<br />
| N/A<br />
| style="background: lightgreen;" | 3.14<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.10<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SATA]]<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | SD/ [[eMMC|MMC]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | SMP<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.18<br />
| N/A<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SPDIF]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.7<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.7<br />
| N/A<br />
| style="background: lightgreen;" | 4.9<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SPIdev|SPI]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.7<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SRAM Controller|SRAM]]<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 4.19<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 5.0 <br />
| style="background: lightgreen;" | 5.1 <br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[USB]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[USB_OTG_Controller_Register_guide#USB_OTG|USB OTG]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | USB3<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.5<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[Video_Engine|VE]] | [[Sunxi-Cedrus]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.2 <br />
| style="background: red;" | NO<br />
| style="background: darkgreen;" | ?<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Watchdog<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
! style="text-align: left;" colspan="2" | Model<br />
! [[F1C100s|F1C-<br>100s]]<br />
! [[A10]]<br />
! [[A10s]]<br />
! [[A13]]<br />
[[R8]]<br />
! [[A20]]<br>[[T2]]<br />
! [[A23]]<br />
! [[A31]]<br />
! [[A33]]<br />
[[R16]]<br />
! [[A64]]<br />
! [[A80]]<br />
! [[A83T]]<br />
! [[GR8]]<br />
! [[H3]]<br />
! [[H5]]<br />
! [[H6]]<br />
! [[R40]]<br />
[[T3]]<br />
! [[V3]]|[[V3s]]<br>[[S3]]|[[S3L]]<br />
<br />
|}<br />
<br />
<br />
{| class="wikitable" style="text-align: center;"<br />
|-<br />
! Legend<br />
|-<br />
| style="background: lightgreen;" | In Linux mainline since version x<br />
|-<br />
| style="background: darkgreen;" | Nobody works on it, but it should be compatible with already done drivers<br />
|-<br />
| style="background: orange;" | Somebody works on it<br />
|-<br />
| style="background: red;" | No support, nobody works on it<br />
|-<br />
| style="background: black; color: white;" | support impossible<br />
|-<br />
| style="background: grey; color: white;" | Status is unknown/to be completed<br />
|}<br />
<br />
== Work In Progress ==<br />
<br />
=== Core Stuff ===<br />
*[[AR100]] firmware (WiP: Samuel Holland) [https://github.com/crust-firmware/crust ARISC firmware for sunxi SoCs ]<br />
<br />
* [[A13]] PSCI Suspend / Resume / CPUIdle (WiP: Antoine Tenart) [http://lists.denx.de/pipermail/u-boot/2016-September/265453.html patch-v1]<br />
<br />
=== Major drivers ===<br />
* [[H6]] I2S Clément Péron [https://patchwork.kernel.org/cover/11497007/ Add H6 I2S support]<br />
<br />
* [[H6]] IOMMU WIP Maxime Ripard [https://patchwork.kernel.org/cover/11394841/ iommu: Add Allwinner H6 IOMMU driver v2] <br />
<br />
* [[H6]] Hypervisor for PCIe [https://forum.armbian.com/topic/13529-a-try-on-utilizing-h6-pcie-with-virtualization/ A try on utilizing H6 PCIe with "Virtualization"]<br />
<br />
* [[A64]] / [[H3]] / [[H5]] / [[H6]] HDMI Audio - Clément Péron / Marcus Cooper / Jernej Škrabec [https://patchwork.kernel.org/cover/11510511/ Add Allwinner H3/H5/A64 HDMI audio]<br />
<br />
* [[R40]] MIPI-DSI WIP Jagan Teki [https://patchwork.kernel.org/cover/11314031/ drm/sun4i: Allwinner R40 MIPI-DSI support v3] <br />
<br />
* [[AC100]] Audio codec WiP Ondrej Jirman [https://megous.com/git/linux/commit/?h=orange-pi-5.5&id=170d38d650f67657600d4e0e868e0e7110b89ee1 digital part] [https://megous.com/git/linux/commit/?h=orange-pi-5.5&id=ee424255a6fb9280ac27c1953019b768ca973ca7 analog part]<br />
<br />
* [[F1C100s]] USB WIP George Hilliard [https://lore.kernel.org/patchwork/cover/1206936/ Support the Allwinner F1C100s USB stack]<br />
<br />
=== Minor drivers ===<br />
<!-- Please move the newest entry to the top --><br />
* [[A64]] hwspinlock WIP Nikolay Borisov [https://patchwork.kernel.org/cover/11373645/ Add support for hwspinlock on A64 SoC] <br />
* [[A83T]] / [[A64]] / [[H3]] hwspinlock WIP Corentin Labbe (montjoie) [https://lore.kernel.org/patchwork/patch/706512/ RFC,1/3][https://lore.kernel.org/patchwork/patch/706511/ RFC,2/3][https://lore.kernel.org/patchwork/patch/706513/ RFC,3/3]<br />
* [[A10]] / [[A20]] / [[A31]] HDMI Audio WIP Stefan Mavrodiev [https://lore.kernel.org/patchwork/cover/1177803/ Add support for sun4i HDMI audio]<br />
* [[A80]] Thermal sensor WIP Philipp Rossak (embed-3d): https://github.com/embed-3d/linux/branches/all<br />
* [[H5]] Cpufreq (DVFS) WIP Chen-Yu Tsai [https://patchwork.kernel.org/cover/10787869/ arm64: dts: allwinner: h5: Enable CPU DVFS (cpufreq)]<br />
* [[R40]] PWM (WIP Hao Zhang [https://www.spinics.net/lists/kernel/msg2731498.html patch-v2])<br />
* [[A31]]/[[A31s]] PWM support (WiP: Siarhei Volkau [http://lists.infradead.org/pipermail/linux-arm-kernel/2017-February/486405.html patch-v1])<br />
* [[A20]] Keypad (WiP: Yassin Jaffer (ddc) [http://lists.infradead.org/pipermail/linux-arm-kernel/2015-September/370079.html patch])<br />
<br />
=== Drivers that can still be improved/added ===<br />
<br />
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.<br />
<br />
* sunxi-musb driver lacks DMA support (with current driver, USB gadgets are limited to PIO, limiting speed to 10MiB/s and causing large CPU)<br />
* DE2 driver has buggy layer support, see [https://patchwork.kernel.org/patch/11145803/]<br />
* DE1/DE2/DE3 writeback support<br />
* A64 audiocodec driver components (sun8i-codec and sun50i-codec-analog) lack support for jack detection<br />
<br />
== Planned for 5.9 ==<br />
<br />
== Planned for 5.8 ==<br />
* [[H6]]<br />
** DVFS<br />
** IOMMU<br />
<br />
* [[A64]] / [[A83T]] / [[H3]] / [[H5]] / [[H6]]<br />
** Message Box<br />
<br />
== Merged into 5.7 ==<br />
*[[A20]]<br />
** LVDS<br />
<br />
*[[A83T]] and [[A64]]<br />
** Rotate driver<br />
<br />
*[[H6]]<br />
** SPI<br />
<br />
*[[R40]]<br />
** Thermal<br />
<br />
New Devices Supported<br />
*[[A13]]<br />
** [[PocketBook Touch Lux 3]]<br />
*[[A64]]<br />
** [[PineTab]]<br />
** [[PinePhone]]<br />
*[[A20]]<br />
** Linutronix Testbox v2<br />
<br />
== Merged into 5.6 ==<br />
* [[A10]]<br />
** CSI (BT656 and Parallel)<br />
<br />
*[[A64]]<br />
** MIPI DSI<br />
** DVFS<br />
<br />
*[[A64]] / [[A83T]] / [[H3]] / [[H5]] / [[H6]]<br />
** Thermal<br />
<br />
*[[H6]]<br />
** PWM<br />
<br />
*[[H3]] / [[H5]] / [[H6]] / [[R40]]<br />
**PMU<br />
<br />
*[[R40]]<br />
** CSI (BT656 and Parallel)<br />
** SPI<br />
<br />
New Devices Supported<br />
* [[H5]]<br />
** ALL-H3-IT H5 board<br />
** ALL-H5-CC H5 board<br />
* [[H6]]<br />
** [[PineH64]] Model A<br />
<br />
== Merged into 5.5 ==<br />
*[[H3]]<br />
** Deinterlace driver<br />
<br />
*[[H6]]<br />
**Crypto<br />
**GPU(3D) Mali<br />
**USB3 PHY (for boards not needing vbus switching)<br />
<br />
*[[A64]] / [[A80]] / [[A83T]] / [[H3]] / [[H5]] / [[R40]] <br />
**Crypto<br />
<br />
* multiple SoCs<br />
** [[Cedrus]] HEVC/H.265<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** Emlid Neutis<br />
<br />
New Devices Supported<br />
* [[H3]]<br />
** [[FriendlyARM_NanoPi_Duo2]]<br />
<br />
== Merged into 5.4 ==<br />
* [[A20]]<br />
** CSI (BT656 and Parallel)<br />
* [[A64]]<br />
** IR<br />
* [[H6]]<br />
** IR<br />
** RTC<br />
** SPDIF<br />
New Devices Supported<br />
* [[A64]]<br />
** [[Olimex A64-OLinuXino]] eMMC<br />
* [[H6]]<br />
** [[Tanix TX6]]<br />
* [[S3]]<br />
** [[Lichee Zero Plus]]<br />
<br />
== Merged into 5.3 ==<br />
* [[A64]]<br />
** LRADC<br />
** RGB LCD<br />
* [[A83T]]<br />
** CSI (BT656 and Parallel)<br />
* [[H6]]<br />
** DMA<br />
** Watchdog<br />
* multiple SoCs<br />
** [[Cedrus]] h264<br />
<br />
== Merged into 5.2 ==<br />
* [[A83T]]<br />
** LRADC<br />
** USB OTG<br />
<br />
* [[H6]]<br />
** [[Cedrus]]<br />
<br />
* multiple SoCs<br />
** [[Mali Open Source Driver|Lima]]<br />
** [[Mali Open Source Driver|Panfrost]]<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** Banana-Pi-M2-Zero<br />
<br />
New Devices Supported<br />
* [[H6]]<br />
** [[Beelink GS1]]<br />
** [[Xunlong Orange Pi 3]]<br />
<br />
== Merged into 5.1 ==<br />
* A10<br />
** Cedrus<br />
** PMU<br />
<br />
* A20<br />
** Audio Codec improvements<br />
<br />
* A23<br />
** Display pipeline<br />
** LCD enabled on Q8 A23 tablets<br />
<br />
* A64<br />
** ARM Architectural Timer errata workaround<br />
** PMU<br />
** CSI (BT656 and Parallel)<br />
<br />
* A80<br />
** GMAC support<br />
<br />
* CSI in general<br />
** RGR565 support<br />
** JPEG pass-through support<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** [[Banana Pi M2+]]<br />
** [[Banana Pi M2 Ultra]]<br />
<br />
* [[LCD]] enabled on [[A13]] [[Q8]] tablets<br />
<br />
== Merged into 5.0 ==<br />
* A64<br />
** Cedrus<br />
** DTS changes for audio codec<br />
<br />
* F1C100s<br />
** initial F1C100s support<br />
<br />
* H6<br />
** Ethernet<br />
** DE3/HDMI support<br />
** USB 2.0<br />
<br />
* H3 / H5<br />
** CSI (BT656 and Parallel) Support<br />
<br />
* H5<br />
** Cedrus<br />
<br />
* R40<br />
** RTC<br />
<br />
* T3<br />
** initial T3 support<ref>https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b7badd1d7aa61087010803affa19bb83fb5a0af1</ref><br />
<br />
* V3s<br />
** CSI (BT656 and Parallel) Support<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** [[Sinovoip Banana Pi M2 Magic | Banana Pi M2 Magic]]<br />
** [[Banana Pi M3]]<br />
** [[Banana Pi M64]]<br />
** [[Cubietruck]]<br />
** [[Cubietech_Cubietruck_Plus|Cubietruck Plus]]<br />
<br />
New Devices Supported<br />
* [[Xunlong Orange Pi Lite 2]]<br />
<br />
== Merged into 4.20 ==<br />
<br />
* A13 / A20 / A33 / H3<br />
** Cedrus driver<br />
<br />
* A83T<br />
** IR receiver<br />
<br />
* A64<br />
** Cleanup for device tree files<br />
** HDMI support<br />
** Audio codec support (DTS changes will be merged in 5.0)<br />
<br />
* H3 / H5<br />
** SID<br />
<br />
* R40<br />
** SATA<br />
<br />
New Devices Supported<br />
* [[Pine64]] LTS<br />
* [[Xunlong Orange Pi One Plus]]<br />
* [[Xunlong Orange Pi Zero Plus 2]] (H3 variant)<br />
* [[Sinovoip Banana Pi M2+]] (H5 variant)<br />
<br />
== Merged into 4.19 ==<br />
<br />
* A10 / A13 / A20 / A23 / A33<br />
** SRAM controller / system control<br />
<br />
* A64<br />
** SRAM controller / system control<br />
** Display clocks and bus<br />
** RTC clock output<br />
** PWM<br />
** R_I2C<br />
<br />
* H3<br />
** SRAM controller / system control<br />
<br />
* H6<br />
** MMC<br />
** PMIC<br />
<br />
* R40<br />
** HDMI support<br />
<br />
Board Changes<br />
* SPI flash node for [[Orange Pi PC 2]] and [[Pine64#Variants | Pine64 SoPINE]]<br />
* Use lid switch as wake-up source for A64 based laptops<br />
* LEDs added for [[PineH64]]<br />
<br />
New Devices<br />
* [[Pine Pinebook]]<br />
* Amarula A64-Relic<br />
<br />
== Changes merged up to 4.18 ==<br />
Changes up to 4.18 can be found on [[Linux mainlining history]] page.<br />
<br />
=References=<br />
<references /><br />
<br />
= See also =<br />
* [[Mainline Kernel Howto]]<br />
* [[Possible setups for hacking on mainline]]<br />
* [[Linux Kernel]]<br />
**[[Toolchain]]<br />
<br />
=External Links=<br />
* [http://www.kernel.org kernel.org] - Official website for the Linux Kernel<br />
** [http://github.com/torvalds/linux http://github.com/torvalds/linux] - Linus Torvalds' GitHub account with the upstream Linux kernel<br />
* [http://www.kernel.org/doc/ Linux Kernel documentation index]<br />
* [http://www.kernel.org/doc/man-pages/ Linux Kernel man pages]<br />
* [http://kernelnewbies.org/ Kernel Newbies Site - Excellent source of information for people new to kernel]<br />
* [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=summary Linus' kernel tree for 2.6]<br />
* [https://bugzilla.kernel.org/ Kernel bugzilla] - [https://bugzilla.kernel.org/show_bug.cgi?id=15790 Regressions for each of recent versions]<br />
* [http://www.fsfla.org/svnwiki/selibre/linux-libre/ Linux-libre project - Maintains and distributes fully free kernel]<br />
* [http://lingrok.org/ LinGrok, Linux kernel source code cross-reference]<br />
* [https://elixir.bootlin.com/linux/latest/source?a=arm Bootlin LXR (Linux Cross Reference)]<br />
* [http://lists.infradead.org/pipermail/linux-arm-kernel/ linux-arm-kernel - Mailing list archive]<br />
===How to upstream===<br />
* [http://www.elinux.org/images/a/ad/Arm-soc-checklist.pdf Your new ARM SoC Linux support check-list! by Thomas Petazzoni of Bootlin]<br />
*[http://www.cnx-software.com/2014/03/04/linux-kernel-upstreaming-how-to-linaro-connect-asia-2014/ Linux Kernel Upstreaming How-To (CNXSoft - Embedded Software Development)]<br />
**[http://www.youtube.com/watch?v=dY7fikYZ42c Matt Porter's YouTube video talk on “Upstreaming 101" (LCA14-111)]<br />
***[http://www.linaro.org/documents/download/65f888c674508efcf9bd5d90398a186a530d01c4c78db Matt Porter's presentation slides for “Upstreaming 101" (LCA14-111)]<br />
**[https://www.youtube.com/watch?v=FiQ5uV_Mm5c Matt Porter's YouTube video talk on “Upstreaming 201" (LCA14-112)]<br />
***[http://www.linaro.org/documents/download/7b9920fcc89589bad9063d87d9137f08530d020b71924 Matt Porter's presentation slides for “Upstreaming 201" (LCA14-112)]<br />
*[http://www.cnx-software.com/2011/08/19/how-to-write-and-submit-a-linux-kernel-patch/ How to Write and Submit a Linux Kernel Patch (CNXSoft - Embedded Software Development)]<br />
** [http://www.youtube.com/watch?v=LLBrBBImJt4 YouTube Video- Write and Submit your first Linux kernel Patch]<br />
** [http://www.cnx-software.com/pdf/kernel-tutorial/kernel_patch_tutorial.pdf Greg Kroah-Hartman Kernel Tutorial Write and Submit your first Linux Kernel Patch]<br />
*[http://www.linaro.org/connect-lca14/resources Linaro resources page from LCA (Linaro Connect Asia) 2014]<br />
<br />
=Notes=<br />
<references group=note /><br />
<br />
[[Category:Development]]</div>
Frozeus
https://linux-sunxi.org/index.php?title=Linux_mainlining_effort&diff=23355
Linux mainlining effort
2020-05-28T17:28:23Z
<p>Frozeus: /* Planned for 5.8 */</p>
<hr />
<div>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.<br />
<br />
=Overview=<br />
The idea is to submit the code needed to run the Linux kernel on Allwinner SoCs upstream, ie. to the official Linux kernel.<br />
<br />
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.<ref>http://www.elinux.org/images/a/ad/Arm-soc-checklist.pdf</ref><ref>[http://www.cnx-software.com/2013/01/16/your-new-arm-soc-linux-support-check-list-elce-2012/ Your New ARM SoC Linux Support Check-List – ELCE 2012]</ref><br />
<br />
Where relevant, I have attempted to include who is currently working on an item, mostly separate from any particular mainlining goal.<br />
<br />
=Status=<br />
<br />
The [[Mainline_Kernel_Howto|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|Mainline U-Boot howto]].<br />
<br />
The [[:Category:Mainline_Kernel | Mainline Kernel category ]] gives an overview of currently supported devices.<br />
<br />
== Status Matrix ==<br />
<br />
The goal of this matrix is to give an easy view of work on each SoC worked on by linux-sunxi.<br />
<br />
{| class="wikitable" style="text-align: center; width: 100%;"<br />
|-<br />
! style="width: 13%; text-align: left;" colspan="2" | Model<br />
! [[F1C100s|F1C-<br>100s]]<br />
! [[A10]]<br />
! [[A10s]]<br />
! [[A13]]<br>[[R8]]<br />
! [[A20]]<br>[[T2]]<br />
! [[A23]]<br />
! [[A31]]<br />
! [[A33]]<br>[[R16]]<br />
! [[A64]]<br />
! [[A80]]<br />
! [[A83T]]<br />
! [[GR8]]<br />
! [[H3]]<br />
! [[H5]]<br />
! [[H6]]<br />
! [[R40]]<br>[[T3]]<br />
! [[V3]]|[[V3s]]<br>[[S3]]|[[S3L]]<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | AC97<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[Audio Codec]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 5.0<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: red;" | NO<br />
<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" rowspan="3" | ADC<br />
| style="text-align: left;" | GPADC<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| N/A<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: lightgreen;" | 4.12<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | Thermal<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: darkgreen;" | ?<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.7<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | Touch<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.16<br />
| N/A<br />
| style="background: lightgreen;" | 4.0<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: lightgreen;" | 4.9<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| rowspan="4" style="text-align: left;" | [[CSI|Camera]]<br />
<br />
| style="text-align: left;" | BT656<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.0<br />
<br />
|-<br />
| style="text-align: left;" | ISP<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | MIPI CSI<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | Parallel<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.0<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Clocks<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.10<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.10<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | CPUFreq (DVFS)<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[Cryptographic_Hardware_Accelerators|Crypto]]<br />
| N/A<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: darkgreen;" | ?<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Display (SimpleFB)<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen" | 4.16<br />
| style="background: lightgreen" | 4.16<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| rowspan="8" style="text-align: left;" | Display<br />
([https://dri.freedesktop.org/wiki/DRM/ DRM])<br />
<br />
| style="text-align: left;" | CVBS<br />
| style="background: red;" | NO<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9 ?<br />
| style="background: lightgreen;" | 4.7<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | HDMI Audio<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | HDMI CEC<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.14<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.17<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: orange;" | WIP<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | HDMI Video<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.13<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.17<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.19<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | LVDS<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.7<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.16<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | MIPI DSI<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | RGB<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.7<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.9<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" | VGA<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | DMA<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" rowspan="2" | [[Ethernet]]<br />
| style="text-align: left;" | [[Ethernet#EMAC|EMAC]]<br />
| rowspan="2"| N/A<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.11<br />
| rowspan="2"| N/A<br />
| style="background: lightgreen;" | 3.11 <br />
| rowspan="2"| N/A<br />
| N/A<br />
| rowspan="2"| N/A<br />
| style="background: lightgreen;" rowspan="2" | 4.15<br />
| style="background: lightgreen;" rowspan="2" | 5.1<br />
| style="background: lightgreen;" rowspan="2" | 4.16<br />
| rowspan="2"| N/A<br />
| style="background: lightgreen;" rowspan="2" | 4.15<br />
| style="background: lightgreen;" rowspan="2" | 4.15<br />
| style="background: lightgreen;" rowspan="2" | 5.0<br />
| style="background: lightgreen;" rowspan="2" | 4.18<br />
| style="background: lightgreen;" rowspan="2" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" | [[Ethernet#GMAC|GMAC]]<br />
<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.17<br />
<br />
|-<br />
| style="text-align: left;" rowspan="2" | GPU(3D)<br />
| style="text-align: left;" | [[Mali]]<br />
| N/A<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | [[PowerVR]]<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | HW Spinlocks<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| N/A<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[I2C]]<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.13<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | I2S<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | IOMMU<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[IR]]<br />
| style="background: red" | NO<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 3.17<br />
| N/A<br />
| style="background: lightgreen;" | 4.0<br />
| N/A<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Keypad<br />
| N/A<br />
| style="background: orange;" | WIP<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | WIP<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | LRADC<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | MsgBox<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.8<br />
| N/A<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: lightgreen;" | 5.8<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[NAND]]<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 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 [[MTD_Driver#Challenges|this page]] </ref><br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9 <ref name="mlc"/><br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9 <ref name="mlc" /><br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9 <ref name="mlc" /><br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: red;" | NO<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | PCIe<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<ref name="h6-pcie">Allwinner H6 has a quirky PCIe controller that doesn't map the PCIe address space properly to CPU,<br />
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/</ref><br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Pinctrl<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[PMU]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: grey; color: white;" | ?<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[PWM_Controller|PWM]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.12<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[RSB]]<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.4<br />
| N/A<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.14<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[RTC]]<br />
| N/A<br />
| style="background: lightgreen;" | 3.14<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.10<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SATA]]<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | SD/ [[eMMC|MMC]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | SMP<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.18<br />
| N/A<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SPDIF]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.7<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.7<br />
| N/A<br />
| style="background: lightgreen;" | 4.9<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SPIdev|SPI]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.7<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SRAM Controller|SRAM]]<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 4.19<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 5.0 <br />
| style="background: lightgreen;" | 5.1 <br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[USB]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[USB_OTG_Controller_Register_guide#USB_OTG|USB OTG]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | USB3<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.5<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[Video_Engine|VE]] | [[Sunxi-Cedrus]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.2 <br />
| style="background: red;" | NO<br />
| style="background: darkgreen;" | ?<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Watchdog<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
! style="text-align: left;" colspan="2" | Model<br />
! [[F1C100s|F1C-<br>100s]]<br />
! [[A10]]<br />
! [[A10s]]<br />
! [[A13]]<br />
[[R8]]<br />
! [[A20]]<br>[[T2]]<br />
! [[A23]]<br />
! [[A31]]<br />
! [[A33]]<br />
[[R16]]<br />
! [[A64]]<br />
! [[A80]]<br />
! [[A83T]]<br />
! [[GR8]]<br />
! [[H3]]<br />
! [[H5]]<br />
! [[H6]]<br />
! [[R40]]<br />
[[T3]]<br />
! [[V3]]|[[V3s]]<br>[[S3]]|[[S3L]]<br />
<br />
|}<br />
<br />
<br />
{| class="wikitable" style="text-align: center;"<br />
|-<br />
! Legend<br />
|-<br />
| style="background: lightgreen;" | In Linux mainline since version x<br />
|-<br />
| style="background: darkgreen;" | Nobody works on it, but it should be compatible with already done drivers<br />
|-<br />
| style="background: orange;" | Somebody works on it<br />
|-<br />
| style="background: red;" | No support, nobody works on it<br />
|-<br />
| style="background: black; color: white;" | support impossible<br />
|-<br />
| style="background: grey; color: white;" | Status is unknown/to be completed<br />
|}<br />
<br />
== Work In Progress ==<br />
<br />
=== Core Stuff ===<br />
*[[AR100]] firmware (WiP: Samuel Holland) [https://github.com/crust-firmware/crust ARISC firmware for sunxi SoCs ]<br />
<br />
* [[A13]] PSCI Suspend / Resume / CPUIdle (WiP: Antoine Tenart) [http://lists.denx.de/pipermail/u-boot/2016-September/265453.html patch-v1]<br />
<br />
=== Major drivers ===<br />
* [[H6]] I2S Clément Péron [https://patchwork.kernel.org/cover/11497007/ Add H6 I2S support]<br />
<br />
* [[H6]] IOMMU WIP Maxime Ripard [https://patchwork.kernel.org/cover/11394841/ iommu: Add Allwinner H6 IOMMU driver v2] <br />
<br />
* [[H6]] Hypervisor for PCIe [https://forum.armbian.com/topic/13529-a-try-on-utilizing-h6-pcie-with-virtualization/ A try on utilizing H6 PCIe with "Virtualization"]<br />
<br />
* [[A64]] / [[H3]] / [[H5]] / [[H6]] HDMI Audio - Clément Péron / Marcus Cooper / Jernej Škrabec [https://patchwork.kernel.org/cover/11510511/ Add Allwinner H3/H5/A64 HDMI audio]<br />
<br />
* [[R40]] MIPI-DSI WIP Jagan Teki [https://patchwork.kernel.org/cover/11314031/ drm/sun4i: Allwinner R40 MIPI-DSI support v3] <br />
<br />
* [[AC100]] Audio codec WiP Ondrej Jirman [https://megous.com/git/linux/commit/?h=orange-pi-5.5&id=170d38d650f67657600d4e0e868e0e7110b89ee1 digital part] [https://megous.com/git/linux/commit/?h=orange-pi-5.5&id=ee424255a6fb9280ac27c1953019b768ca973ca7 analog part]<br />
<br />
* [[F1C100s]] USB WIP George Hilliard [https://lore.kernel.org/patchwork/cover/1206936/ Support the Allwinner F1C100s USB stack]<br />
<br />
=== Minor drivers ===<br />
<!-- Please move the newest entry to the top --><br />
* [[A64]] hwspinlock WIP Nikolay Borisov [https://patchwork.kernel.org/cover/11373645/ Add support for hwspinlock on A64 SoC] <br />
* [[A83T]] / [[A64]] / [[H3]] hwspinlock WIP Corentin Labbe (montjoie) [https://lore.kernel.org/patchwork/patch/706512/ RFC,1/3][https://lore.kernel.org/patchwork/patch/706511/ RFC,2/3][https://lore.kernel.org/patchwork/patch/706513/ RFC,3/3]<br />
* [[A10]] / [[A20]] / [[A31]] HDMI Audio WIP Stefan Mavrodiev [https://lore.kernel.org/patchwork/cover/1177803/ Add support for sun4i HDMI audio]<br />
* [[A80]] Thermal sensor WIP Philipp Rossak (embed-3d): https://github.com/embed-3d/linux/branches/all<br />
* [[H5]] Cpufreq (DVFS) WIP Chen-Yu Tsai [https://patchwork.kernel.org/cover/10787869/ arm64: dts: allwinner: h5: Enable CPU DVFS (cpufreq)]<br />
* [[R40]] PWM (WIP Hao Zhang [https://www.spinics.net/lists/kernel/msg2731498.html patch-v2])<br />
* [[A31]]/[[A31s]] PWM support (WiP: Siarhei Volkau [http://lists.infradead.org/pipermail/linux-arm-kernel/2017-February/486405.html patch-v1])<br />
* [[A20]] Keypad (WiP: Yassin Jaffer (ddc) [http://lists.infradead.org/pipermail/linux-arm-kernel/2015-September/370079.html patch])<br />
<br />
=== Drivers that can still be improved/added ===<br />
<br />
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.<br />
<br />
* sunxi-musb driver lacks DMA support (with current driver, USB gadgets are limited to PIO, limiting speed to 10MiB/s and causing large CPU)<br />
* DE2 driver has buggy layer support, see [https://patchwork.kernel.org/patch/11145803/]<br />
* DE1/DE2/DE3 writeback support<br />
* A64 audiocodec driver components (sun8i-codec and sun50i-codec-analog) lack support for jack detection<br />
<br />
== Planned for 5.9 ==<br />
<br />
== Planned for 5.8 ==<br />
* [[H6]]<br />
** DVFS<br />
** IOMMU<br />
<br />
* [[A64]] / [[A83T]] / [[H3]] / [[H5]] / [[H6]]<br />
** Message Box<br />
<br />
== Merged into 5.7 ==<br />
*[[A20]]<br />
** LVDS<br />
<br />
*[[A83T]] and [[A64]]<br />
** Rotate driver<br />
<br />
*[[H6]]<br />
** SPI<br />
<br />
*[[R40]]<br />
** Thermal<br />
<br />
New Devices Supported<br />
*[[A13]]<br />
** [[PocketBook Touch Lux 3]]<br />
*[[A64]]<br />
** [[PineTab]]<br />
** [[PinePhone]]<br />
*[[A20]]<br />
** Linutronix Testbox v2<br />
<br />
== Merged into 5.6 ==<br />
* [[A10]]<br />
** CSI (BT656 and Parallel)<br />
<br />
*[[A64]]<br />
** MIPI DSI<br />
** DVFS<br />
<br />
*[[A64]] / [[A83T]] / [[H3]] / [[H5]] / [[H6]]<br />
** Thermal<br />
<br />
*[[H6]]<br />
** PWM<br />
<br />
*[[H3]] / [[H5]] / [[H6]] / [[R40]]<br />
**PMU<br />
<br />
*[[R40]]<br />
** CSI (BT656 and Parallel)<br />
** SPI<br />
<br />
New Devices Supported<br />
* [[H5]]<br />
** ALL-H3-IT H5 board<br />
** ALL-H5-CC H5 board<br />
* [[H6]]<br />
** [[PineH64]] Model A<br />
<br />
== Merged into 5.5 ==<br />
*[[H3]]<br />
** Deinterlace driver<br />
<br />
*[[H6]]<br />
**Crypto<br />
**GPU(3D) Mali<br />
**USB3 PHY (for boards not needing vbus switching)<br />
<br />
*[[A64]] / [[A80]] / [[A83T]] / [[H3]] / [[H5]] / [[R40]] <br />
**Crypto<br />
<br />
* multiple SoCs<br />
** [[Cedrus]] HEVC/H.265<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** Emlid Neutis<br />
<br />
New Devices Supported<br />
* [[H3]]<br />
** [[FriendlyARM_NanoPi_Duo2]]<br />
<br />
== Merged into 5.4 ==<br />
* [[A20]]<br />
** CSI (BT656 and Parallel)<br />
* [[A64]]<br />
** IR<br />
* [[H6]]<br />
** IR<br />
** RTC<br />
** SPDIF<br />
New Devices Supported<br />
* [[A64]]<br />
** [[Olimex A64-OLinuXino]] eMMC<br />
* [[H6]]<br />
** [[Tanix TX6]]<br />
* [[S3]]<br />
** [[Lichee Zero Plus]]<br />
<br />
== Merged into 5.3 ==<br />
* [[A64]]<br />
** LRADC<br />
** RGB LCD<br />
* [[A83T]]<br />
** CSI (BT656 and Parallel)<br />
* [[H6]]<br />
** DMA<br />
** Watchdog<br />
* multiple SoCs<br />
** [[Cedrus]] h264<br />
<br />
== Merged into 5.2 ==<br />
* [[A83T]]<br />
** LRADC<br />
** USB OTG<br />
<br />
* [[H6]]<br />
** [[Cedrus]]<br />
<br />
* multiple SoCs<br />
** [[Mali Open Source Driver|Lima]]<br />
** [[Mali Open Source Driver|Panfrost]]<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** Banana-Pi-M2-Zero<br />
<br />
New Devices Supported<br />
* [[H6]]<br />
** [[Beelink GS1]]<br />
** [[Xunlong Orange Pi 3]]<br />
<br />
== Merged into 5.1 ==<br />
* A10<br />
** Cedrus<br />
** PMU<br />
<br />
* A20<br />
** Audio Codec improvements<br />
<br />
* A23<br />
** Display pipeline<br />
** LCD enabled on Q8 A23 tablets<br />
<br />
* A64<br />
** ARM Architectural Timer errata workaround<br />
** PMU<br />
** CSI (BT656 and Parallel)<br />
<br />
* A80<br />
** GMAC support<br />
<br />
* CSI in general<br />
** RGR565 support<br />
** JPEG pass-through support<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** [[Banana Pi M2+]]<br />
** [[Banana Pi M2 Ultra]]<br />
<br />
* [[LCD]] enabled on [[A13]] [[Q8]] tablets<br />
<br />
== Merged into 5.0 ==<br />
* A64<br />
** Cedrus<br />
** DTS changes for audio codec<br />
<br />
* F1C100s<br />
** initial F1C100s support<br />
<br />
* H6<br />
** Ethernet<br />
** DE3/HDMI support<br />
** USB 2.0<br />
<br />
* H3 / H5<br />
** CSI (BT656 and Parallel) Support<br />
<br />
* H5<br />
** Cedrus<br />
<br />
* R40<br />
** RTC<br />
<br />
* T3<br />
** initial T3 support<ref>https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b7badd1d7aa61087010803affa19bb83fb5a0af1</ref><br />
<br />
* V3s<br />
** CSI (BT656 and Parallel) Support<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** [[Sinovoip Banana Pi M2 Magic | Banana Pi M2 Magic]]<br />
** [[Banana Pi M3]]<br />
** [[Banana Pi M64]]<br />
** [[Cubietruck]]<br />
** [[Cubietech_Cubietruck_Plus|Cubietruck Plus]]<br />
<br />
New Devices Supported<br />
* [[Xunlong Orange Pi Lite 2]]<br />
<br />
== Merged into 4.20 ==<br />
<br />
* A13 / A20 / A33 / H3<br />
** Cedrus driver<br />
<br />
* A83T<br />
** IR receiver<br />
<br />
* A64<br />
** Cleanup for device tree files<br />
** HDMI support<br />
** Audio codec support (DTS changes will be merged in 5.0)<br />
<br />
* H3 / H5<br />
** SID<br />
<br />
* R40<br />
** SATA<br />
<br />
New Devices Supported<br />
* [[Pine64]] LTS<br />
* [[Xunlong Orange Pi One Plus]]<br />
* [[Xunlong Orange Pi Zero Plus 2]] (H3 variant)<br />
* [[Sinovoip Banana Pi M2+]] (H5 variant)<br />
<br />
== Merged into 4.19 ==<br />
<br />
* A10 / A13 / A20 / A23 / A33<br />
** SRAM controller / system control<br />
<br />
* A64<br />
** SRAM controller / system control<br />
** Display clocks and bus<br />
** RTC clock output<br />
** PWM<br />
** R_I2C<br />
<br />
* H3<br />
** SRAM controller / system control<br />
<br />
* H6<br />
** MMC<br />
** PMIC<br />
<br />
* R40<br />
** HDMI support<br />
<br />
Board Changes<br />
* SPI flash node for [[Orange Pi PC 2]] and [[Pine64#Variants | Pine64 SoPINE]]<br />
* Use lid switch as wake-up source for A64 based laptops<br />
* LEDs added for [[PineH64]]<br />
<br />
New Devices<br />
* [[Pine Pinebook]]<br />
* Amarula A64-Relic<br />
<br />
== Changes merged up to 4.18 ==<br />
Changes up to 4.18 can be found on [[Linux mainlining history]] page.<br />
<br />
=References=<br />
<references /><br />
<br />
= See also =<br />
* [[Mainline Kernel Howto]]<br />
* [[Possible setups for hacking on mainline]]<br />
* [[Linux Kernel]]<br />
**[[Toolchain]]<br />
<br />
=External Links=<br />
* [http://www.kernel.org kernel.org] - Official website for the Linux Kernel<br />
** [http://github.com/torvalds/linux http://github.com/torvalds/linux] - Linus Torvalds' GitHub account with the upstream Linux kernel<br />
* [http://www.kernel.org/doc/ Linux Kernel documentation index]<br />
* [http://www.kernel.org/doc/man-pages/ Linux Kernel man pages]<br />
* [http://kernelnewbies.org/ Kernel Newbies Site - Excellent source of information for people new to kernel]<br />
* [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=summary Linus' kernel tree for 2.6]<br />
* [https://bugzilla.kernel.org/ Kernel bugzilla] - [https://bugzilla.kernel.org/show_bug.cgi?id=15790 Regressions for each of recent versions]<br />
* [http://www.fsfla.org/svnwiki/selibre/linux-libre/ Linux-libre project - Maintains and distributes fully free kernel]<br />
* [http://lingrok.org/ LinGrok, Linux kernel source code cross-reference]<br />
* [https://elixir.bootlin.com/linux/latest/source?a=arm Bootlin LXR (Linux Cross Reference)]<br />
* [http://lists.infradead.org/pipermail/linux-arm-kernel/ linux-arm-kernel - Mailing list archive]<br />
===How to upstream===<br />
* [http://www.elinux.org/images/a/ad/Arm-soc-checklist.pdf Your new ARM SoC Linux support check-list! by Thomas Petazzoni of Bootlin]<br />
*[http://www.cnx-software.com/2014/03/04/linux-kernel-upstreaming-how-to-linaro-connect-asia-2014/ Linux Kernel Upstreaming How-To (CNXSoft - Embedded Software Development)]<br />
**[http://www.youtube.com/watch?v=dY7fikYZ42c Matt Porter's YouTube video talk on “Upstreaming 101" (LCA14-111)]<br />
***[http://www.linaro.org/documents/download/65f888c674508efcf9bd5d90398a186a530d01c4c78db Matt Porter's presentation slides for “Upstreaming 101" (LCA14-111)]<br />
**[https://www.youtube.com/watch?v=FiQ5uV_Mm5c Matt Porter's YouTube video talk on “Upstreaming 201" (LCA14-112)]<br />
***[http://www.linaro.org/documents/download/7b9920fcc89589bad9063d87d9137f08530d020b71924 Matt Porter's presentation slides for “Upstreaming 201" (LCA14-112)]<br />
*[http://www.cnx-software.com/2011/08/19/how-to-write-and-submit-a-linux-kernel-patch/ How to Write and Submit a Linux Kernel Patch (CNXSoft - Embedded Software Development)]<br />
** [http://www.youtube.com/watch?v=LLBrBBImJt4 YouTube Video- Write and Submit your first Linux kernel Patch]<br />
** [http://www.cnx-software.com/pdf/kernel-tutorial/kernel_patch_tutorial.pdf Greg Kroah-Hartman Kernel Tutorial Write and Submit your first Linux Kernel Patch]<br />
*[http://www.linaro.org/connect-lca14/resources Linaro resources page from LCA (Linaro Connect Asia) 2014]<br />
<br />
=Notes=<br />
<references group=note /><br />
<br />
[[Category:Development]]</div>
Frozeus
https://linux-sunxi.org/index.php?title=Allwinner_SoC_Family&diff=23274
Allwinner SoC Family
2020-04-13T23:34:32Z
<p>Frozeus: /* 2013 naming scheme change */</p>
<hr />
<div>= SoC series =<br />
'''A''' series processors are used for mobile applications, mainly referring to tablet application here;<br />
<br />
'''B''' for "Book", used for E-book tablet reader. <br />
<br />
'''H''' for “Homlet”, mainly used in home entertainment applications, including smart OTT boxes, HDMI mini PCs, gaming boxes, etc;<br />
<br />
'''V''' for video-related applications, including video surveillance, automotive DVR, etc;<br />
<br />
'''T''' series processors target the Automotive products like ADAS. <br />
<br />
'''F''' series are processors based on Allwinner’s melis OS, mainly used in smart video radios, video MP5, etc;<br />
<br />
== "A"-Series ==<br />
Based on ARMv7 Cortex-A cores (Cortex-A7, A8 and A15) targeted for high-end devices like digital media players, tablets, and netbooks:<br />
{| class="wikitable"<br />
| [[A10|Allwinner A10]] || <small>(sun4i)</small> || 1 x Cortex-A8 CPU-core<br />
|-<br />
| [[A13|Allwinner A13]] || <small>(sun5i)</small> || 1 x Cortex-A8 CPU-core<br />
|-<br />
| [[A10s|Allwinner A10s]] || <small>(sun5i)</small> || 1 x Cortex-A8 CPU-core<br />
|-<br />
| [[A20|Allwinner A20]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=45</ref> || <small>(sun7i)</small> || 2 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A23|Allwinner A23]] || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A31|Allwinner A31]] || <small>(sun6i)</small> || 4 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A31s|Allwinner A31s]] || <small>(sun6i)</small> || 4 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A33|Allwinner A33]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=23</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A40i|Allwinner A40i]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=69</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A50|Allwinner A50]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=72</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A80|Allwinner A80]] || <small>(sun9i)</small> || 4 x Cortex-A7 CPU-cores + 4 x Cortex-A15 CPU-cores&nbsp;<br /><small>(using ARM big.LITTLE heterogeneous CPU architecture)</small><br />
|-<br />
| [[A83T|Allwinner A83T]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=24</ref> || <small>(sun8i)</small>&nbsp; || 8 x Cortex-A7 CPU-cores<br />
|}<br />
<br />
'''64-bit'''<br />
{| class="wikitable"<br />
| [[A63|Allwinner A63]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=67</ref> || <small>(sun50i)</small>&nbsp; || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[A64|Allwinner A64]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=9</ref> || <small>(sun50i)</small>&nbsp; || 4 x Cortex-A53 CPU-core<br />
|}<br />
<br />
== "B"-series ==<br />
<br />
{| class="wikitable"<br />
| [[B288|Allwinner B288]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=59</ref> || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|-<br />
| [[B300|Allwinner B300]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=86</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|}<br />
<br />
== "H"-Series ==<br />
Based on ARMv7/ARMv8 Cortex-A cores (A7/A53) targeted for video OTT (over-the-top) boxes and high-end gaming consoles:<br />
{| class="wikitable"<br />
| [[H2+|Allwinner H2+]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=62</ref> || <small>(sun8i)</small>&nbsp; || 4 x Cortex-A7 CPU-core&nbsp;<br />
|-<br />
| [[H3|Allwinner H3]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=47</ref> || <small>(sun8i)</small>&nbsp; || 4 x Cortex-A7 CPU-core&nbsp;<br />
|-<br />
| [[H8|Allwinner H8]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=46</ref> || <small>(sun8i)</small> || 8 x Cortex-A7 CPU-core<br />
|-<br />
| [[H80|Allwinner H80]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=46</ref> || <small>(sun8i)</small> || 8 x Cortex-A7 CPU-core<br />
|}<br />
<br />
'''64-bit'''<br />
{| class="wikitable"<br />
| [[H5|Allwinner H5]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=57</ref>&nbsp; || <small>(sun50i)</small>&nbsp; || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[H6|Allwinner H6]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=66</ref>&nbsp; || <small>(sun50i)</small>&nbsp; || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[H64|Allwinner H64]]<ref>http://web.archive.org/web/20160425223052/http://www.allwinnertech.com/en/clq/H_series/6100.html</ref> || <small>(sun50i)</small> || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[H313|Allwinner H313]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=90</ref> || <small>(sun50i)</small> || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[H616|Allwinner H616]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=89</ref> || <small>(sun50i)</small> || 4 x Cortex-A53 CPU-core<br />
|}<br />
<br />
== "R"-Series ==<br />
<br />
{| class="wikitable"<br />
| [[R6|Allwinner R6]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=79</ref> || <small>(sun3i)</small> || 1 x Cortex-A9 CPU-core<br />
|-<br />
| [[R7|Allwinner R7]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=82</ref> || <small>(sun8i)</small> || 1 x Cortex-A7 CPU-core<br />
|-<br />
| [[R8|Allwinner R8]]<ref>http://web.archive.org/web/20160510053338/http://www.allwinnertech.com/en/clq/R_series/2015/0514/R8.html</ref> || <small>(sun5i)</small>&nbsp; || 1 x Cortex-A8 CPU-core<br />
|-<br />
| [[R11|Allwinner R11]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=83</ref> || <small>(sun8i)</small> || 1 x Cortex-A7 CPU-core<br />
|-<br />
| [[R16|Allwinner R16]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=51</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[R40|Allwinner R40]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=56</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[R58|Allwinner R58]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=49</ref>&nbsp; || <small>(sun8i)</small> || 8 x Cortex-A7 CPU-core<br />
|-<br />
| [[R311|Allwinner R311]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=84</ref>&nbsp; || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[R328|Allwinner R328]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=85</ref>&nbsp; || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|}<br />
<br />
The Allwinner R8 is repackaged version of the A13. This SoC gets used in the minicomputer presented in Next Thing Co.'s [[NextThingCo CHIP|''C.H.I.P.'']] kickstarter project ("The $9 computer")<ref>http://nextthing.co/</ref>.<br />
<br />
By comparing the product pages the R16 seems to be a relabeled version of A33. This is somewhat confirmed by the (identical) SoC ID the BROM reports.<ref>https://groups.google.com/d/msg/linux-sunxi/vx6oQMy-nis/vgVc8d1KBAAJ</ref><br />
<br />
'''64-bit'''<br />
{| class="wikitable"<br />
| [[R18|Allwinner R18]]|| <small>sun50i</small> || 4 x Cortex-A53 CPU-core<br />
|}<br />
<br />
== "T"-series ==<br />
<br />
{| class="wikitable"<br />
| [[T2|Allwinner T2]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=39</ref> || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|-<br />
| [[T3|Allwinner T3]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=41</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[T7|Allwinner T7]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=71</ref> || <small>(sun8i)</small> || 6 x Cortex-A7 CPU-core<br />
|-<br />
| [[T8|Allwinner T8]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=33</ref> || <small>(sun8i)</small> || 8 x Cortex-A7 CPU-core<br />
|}<br />
<br />
== "V"-series ==<br />
<br />
{| class="wikitable"<br />
| [[V3|Allwinner V3]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=37</ref> || <small>(sun8i)</small> || 1 x Cortex-A7 CPU-core<br />
|-<br />
| [[V3s|Allwinner V3s]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=38</ref> || <small>(sun8i)</small> || 1 x Cortex-A7 CPU-core<br />
|-<br />
| [[V5|Allwinner V5]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=70</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[V40|Allwinner V40]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=36</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[V66|Allwinner V66]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=35</ref> || <small>(sun8i)</small> || 8 x Cortex-A7 CPU-core<br />
|-<br />
| [[V316|Allwinner V316]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=87</ref> || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|-<br />
| [[V536|Allwinner V536]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=88</ref> || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|}<br />
<br />
== "F"-Series ==<br />
:'''{{note|The F series is not supported by the linux-sunxi community due to lack of developers and hardware. ''sun3i'' have only official linux support, ''sunii'' have no linux support, only Allwinner's "Melis" RTOS.}}'''<br />
<br />
Based on ARMv5 ARM926-EJS core and currently targeted for low market devices such as cheap ebook readers, etc.<br />
<br />
F1C700 seems to be a remarked A13, and it's ARMv7.<br />
<br />
{| class="wikitable"<br />
| [[C100|Boxchip C100]] || <small>(sun3i)</small><br />
|-<br />
| [[E200|Boxchip E200]] || <small>(sun3i)</small><br />
|-<br />
| [[F10|Boxchip F10]] <small>aka SoChip SC9800 aka Teclast T8100</small>&nbsp; || <small>(sunii)</small><br />
|-<br />
| [[F13|Boxchip F13]] || <small>(sunii)</small><br />
|-<br />
| [[F13|Boxchip F15]] <small>aka SoChip SC8600 aka Teclast T7200</small> || <small>(sunii)</small><br />
|-<br />
| [[F18|Boxchip F18]] || <small>(sunii)</small><br />
|-<br />
| [[F20|Boxchip F20]] || <small>(sun3i)</small><br />
|-<br />
| [[F23|Allwinner F23]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=30</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C100A|Allwinner F1C100A]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=29</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C100s|Allwinner F1C100s]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=73</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C200s|Allwinner F1C200s]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=74</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C500s|Allwinner F1C500s]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=75</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C600|Allwinner F1C600]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=28</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C700|Allwinner F1C700]] || <small>(sun5i)</small><br />
|-<br />
| [[F1C800|Allwinner F1C800]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=76</ref> || <small>(suniv)</small><br />
|}<br />
<br />
== "MR"-series ==<br />
<br />
{| class="wikitable"<br />
| [[MR100|Allwinner MR100]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=77</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[MR133|Allwinner MR133]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=86</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|}<br />
<br />
= 2013 naming scheme change =<br />
<br />
Initially, Allwinner named their SoCs chronologically:<br />
* sun4i = A10<br />
* sun5i = A13/A10s<br />
* sun6i = A31<br />
* sun7i = A20<br />
<br />
But, somewhere in 2013, Allwinner decided to update their naming scheme to be based on the ARM core used instead: (taken from the A80 SDK kernel code). Note: SoCs with ? has never appeared on Allwinner's website. <ref>https://github.com/tinalinux/brandy/blob/r40-v1.y/SUNXI_README</ref><br />
<br />
{| class="wikitable"<br />
! sunxi (arm cores) !! sunxiwx (soc id) !! p (rev id) !! soc name !! cores !! notes<br />
|-<br />
| sun3i (arm926ejs) || sun3iw1 (0x1663) || sun3iw1p1 || [[F1C100s]], [[F1C100A]], [[F1C200s]], [[F1C500]], [[F1C600]], [[R6]] || 1xARM926EJ-S<br />
|-<br />
| style="text-align: left;" rowspan="4" | sun4i (cortex-a8) <br />
| sun4iw1 (0x1623) || sun4iw1p1 || [[A10]] || 1xCortex-A8<br />
|-<br />
| style="text-align: left;" rowspan="3" | sun4iw2 (0x1625)<br />
| sun4iw2p1 || [[A13]] || 1xCortex-A8<br />
|-<br />
| sun4iw2p2 || [[A12]] || ?<br />
|-<br />
| sun4iw2p3 || [[A10s]] || 1xCortex-A8<br />
|-<br />
| style="text-align: left;" rowspan="20" | sun8i <br />
(cortex-a7 smp)<br />
<br />
| style="text-align: left;" rowspan="2" | sun8iw1 (0x1633)<br />
<br />
| sun8iw1p1 || [[A31]] || 4xCortex-A7<br />
|-<br />
| sun8iw1p2 || [[A31s]] || 4xCortex-A7<br />
|-<br />
| style="text-align: left;" rowspan="2" | sun8iw2 (0x1651)<br />
<br />
| sun8iw2p1 || [[A20]] || 2xCortex-A7<br />
|-<br />
| sun8iw2p2 || ? || ?<br />
|-<br />
| style="text-align: left;" rowspan="2" | sun8iw3 (0x1650)<br />
<br />
| sun8iw3p1 || [[A23]] || 2xCortex-A7<br />
|-<br />
| sun8iw3p2 || ? || ?<br />
|-<br />
| sun8iw5 (0x1667) || sun8iw5p1 || [[A33]] || 4xCortex-A7<br />
|-<br />
| sun8iw6 (0x1673) || sun8iw6p1 || [[A83T]] || 8xCortex-A7<br />
|-<br />
| sun8iw7 (0x1680) || sun8iw7p1 || [[H3]], [[H2+]] || 4xCortex-A7<br />
|-<br />
| style="text-align: left;" rowspan="2" | sun8iw8 (0x1681)<br />
<br />
| sun8iw8p1 || [[V3]], [[V3s]] || 1xCortex-A7 || called V30 in allwinner's kernel source<br />
|-<br />
| sun8iw8p2 || ? || ? || called V33 in allwinner's kernel source<br />
|-<br />
| sun8iw10 (0x1699) || sun8iw10p1 || [[B288]], [[B100]] || 2xCortex-A7<br />
|-<br />
| style="text-align: left;" rowspan="4" | sun8iw11 (0x1701)<br />
<br />
| sun8iw11p1 || [[R40]], [[V40]], [[T3]], [[A20e]]? || 4xCortex-A7<br />
|-<br />
| sun8iw11p2 || ?? || 4xCortex-A7<br />
|-<br />
| sun8iw11p3 || ?? || 4xCortex-A7<br />
|-<br />
| sun8iw11p4 || ?? || 4xCortex-A7<br />
|-<br />
| sun8iw12 (0x1721) || sun8iw12p1 || [[V5]] || 4xCortex-A7<br />
|-<br />
| sun8iw15 (0x1755) || sun8iw15p1 || [[R311]] || 4xCortex-A7<br />
|-<br />
| sun8iw16 (0x1816) || sun8iw16p1 || [[V356]] || 2xCortex-A7<br />
|-<br />
| sun8iw17 (0x1708) || sun8iw17p1 || [[T7]] || 6xCortex-A7<br />
|-<br />
| style="text-align: left;" rowspan="2" | sun9i <br />
(cortex-a15/cortex-a7 big.LITTLE) <br />
<br />
| style="text-align: left;" rowspan="2" | sun9iw1 (0x1639)<br />
| sun9iw1p1 || [[A80]] || 4xCortex-A7 + 4xCortex-A15<br />
|-<br />
| sun9iw1p2 || [[A80T]] || ?<br />
|-<br />
| style="text-align: left;" rowspan="5" | sun50i <br />
(cortex-a53 smp) <br />
| sun50iw1 (0x1689) || sun50iw1p1 || [[A64]] || 4xCortex-A53<br />
|-<br />
| sun50iw2 (0x1718) || sun50iw2p1 || [[H5]] || 4xCortex-A53<br />
|-<br />
| sun50iw3 (0x1719) || sun50iw3p1 || [[A63]] || 4xCortex-A53<br />
|-<br />
| sun50iw6 (0x1728) || sun50iw6p1 || [[H6]] || 4xCortex-A53<br />
|-<br />
| sun50iw9 (0x1823) || sun50iw9p1<ref>https://androidpctv.com/review-tanix-tx6s-opinion</ref> || [[H616]] || 4xCortex-A53<br />
|}<br />
<br />
This new naming scheme is of absolutely no value with respect to the rest of the SoC. The actual ARM core(s) used are usually the least important piece of information for SoC support. This table completely ignores the fact that A20 is an updated A10 and is pin compatible. It also ignores the fact that A31 introduced a lot of changes which were carried on to the A23/A33 and possibly A80 parts. It therefore is quite likely that this naming scheme was purely a marketing decision, and that Allwinner marketing will change its mind again.<br />
<br />
= Features =<br />
* CPU: ARMv7-A [http://en.wikipedia.org/wiki/ARM_Cortex-A7 Cortex-A7], [http://en.wikipedia.org/wiki/ARM_Cortex-A15 Cortex-A15] or [http://en.wikipedia.org/wiki/ARM_Cortex-A8 Cortex-A8] Central Processor Unit with (co-)processor extensions:<br />
** Advanced SIMD: [http://en.wikipedia.org/wiki/ARM_architecture#Advanced_SIMD_.28NEON.29 NEON] (ARM's extended general-purpose advanced SIMD vector processing extension engine)<br />
** [[Vector Floating Point Unit]] ([http://en.wikipedia.org/wiki/ARM_architecture#Floating-point_.28VFP.29 VFPU]): ARM VFPv3 lite (Cortex-A8) / VFPv4 (Cortex-A7)<br />
** Security Extensions: <br />
*** [http://en.wikipedia.org/wiki/ARM_architecture#Security_extensions_.28TrustZone.29 TrustZone] secure world<br />
*** [[Security_System|Security accelerator]] supporting AES, DES, 3DES, SHA-1, MD5 and pseudo-random number generation<br />
** [http://en.wikipedia.org/wiki/ARM_architecture#Thumb-2 Thumb-2] instruction set extension for optimized code to reduce memory footprint and improve performance<br />
* GPU: [[Mali400]], Mali400-MP2, SGX544 or PowerVR G6230 Graphics Procesor Unit, supporting OpenGL ES2.<br />
* VPU: [[Cedar Engine]] (Video Processor Unit for audio and video hardware decoding or encoding)<br />
* HDMI-transmitter with [http://en.wikipedia.org/wiki/HDMI#CEC HDMI CEC] (Consumer Electronics Control), with exception of A13 which lacks HDMI-transmitter and SATA-controller<ref>[http://olimex.wordpress.com/2012/04/24/cortex-a8-in-tqfp-sure-allwinner-a13/ "Cortex A8 in TQFP? sure Allwinner A13"] ''Retrieved 23 September 2012''</ref><br />
* Hardware virtualization capabilities (Cortex-A7 only).<br />
* Up to 4GB memory (Cortex-A8), Up to 1TB memory with LPAE (Cortex-A7 only).<br />
<br />
== Comparison table ==<br />
{| class="wikitable"<br />
! scope="row" | !! [[A10]] !! [[A10s]] !! [[A13]] !! [[A20]] !! [[A23]] !! [[A31]] !! [[A31s]] !! [[A33]] !! [[A80]]<br />
|-<br />
! scope="row" | Generation <br />
| sun4i || sun5i || sun5i || sun7i || sun8i || sun6i || sun6i || sun8i || sun9i <br />
|-<br />
! scope="row" | CPU<br />
| Cortex-A8 || Cortex-A8 || Cortex-A8 || Cortex-A7 || Cortex-A7 ||Cortex-A7 || Cortex-A7 || Cortex-A7 || Cortex-A7 / A15 <br />
|-<br />
! scope="row" | CPU Maximum frequency<br />
| 1 GHz|| 1 GHz || 1 GHz|| 960 MHz|| 1.5 GHz || ? GHz || ? GHz || 1.5 GHz || 2 (??) GHz<br />
|-<br />
! scope="row" | Cores<br />
| 1 || 1 || 1 || 2 || 2 || 4 || 4 || 4 || 2 x 4<br />
|-<br />
! scope="row" | Extensions<br />
| NEON, VFPv3, Thumb-2 || NEON, VFPv3, Thumb-2 || NEON, VFPv3, Thumb-2 || NEON, VFPv3 / VFPv4, Thumb-2 ||NEON, VFPv3 / VFPv4, Thumb-2 || NEON, VFPv3 / VFPv4, Thumb-2 || NEON, VFPv3 / VFPv4, Thumb-2 || NEON, VFPv3 / VFPv4, Thumb-2 || ? (A80)<br />
|-<br />
! scope="row" | Memory<br />
| DDR2, DDR3</br> (max 2GB @ DDR800) || DDR2, DDR3</br> (max 2GB @ DDR800) || DDR2, DDR3</br> (max 512MB @ DDR800) || LPDDR3, DDR3,</br>LPDDR2 || DDR3</br>(max 1GB) || 2-channel DDR3, LPDDR2, </br>2-channel DDR3L, DDR3U || DDR3, DDR3L, LPDDR2 || single-channel DDR3, DDR3L</br>(max 1GB) || 2-channel DDR3, DDR3L, LPDDR3, LPDDR2</br> up to 8GB<br />
|-<br />
! scope="row" | GPU<br />
| [[Mali400]]</br>320&nbsp;MHz || [[Mali400]]</br>320&nbsp;MHz || [[Mali400]]</br>320&nbsp;MHz || [[Mali400]]-MP2</br>350&nbsp;MHz || [[Mali400]]-MP2 || SGX544</br>200&nbsp;MHz || SGX544</br>200&nbsp;MHz || [[Mali400]]-MP2 || 64-core PowerVR G6230<br />
|-<br />
! scope="row" | GPU API<br />
| OpenGL ES 2.0, OpenVG 1.1 || OpenGL ES 2.0, OpenVG 1.1 || OpenGL ES 2.0, OpenVG 1.1 || OpenGL ES 2.0, OpenVG 1.1 || OpenGL ES 2.0, OpenVG 1.1 || OpenGL ES 2.0, OpenVG 1.1, OpenCL 1.1, and DirectX 9.3 || OpenGL ES 2.0, OpenVG 1.1, OpenCL 1.1, and DirectX 9.3 || OpenGL ES 2.0, OpenVG 1.1 || OpenGL 3.x, OpenGL ES Next,3.0,2.0, Open CL 1.x, DirectX 11 level 9_3/10_0<ref>http://www.imgtec.com/news/detail.asp?ID=845</ref><br />
|-<br />
! scope="row" | [[Cedar Engine|Video decoder]]<br />
| 2160p || 1080p || 1080p || 2160p, 4K×2K, 1080p 3D || 1080p@60fps || 2160p, 4K×2K, 1080p 3D || 2160p, 1080p 3D || 1080p@60fps || ? (A80)<br />
|-<br />
! scope="row" | [[Cedar Engine|Video encoder]]<br />
| H.264 1080p@30fps, JPEG || H.264 1080p@30fps, JPEG || H.264 1080p@30fps, JPEG || H.264 1080p@30fps, JPEG || 1080p@60fps || H.264 1080p@60fps, JPEG || H264 1080p@30fps, 720p@60fps || H.264 1080p@60fps, JPEG || H.264 HP/VP8 4Kx2K@30fp<br />
|-<br />
! scope="row" | Audio decoder<br />
| AC3, DTS || ? || ? || AC3, DTS || - || ? (A31) || ? (A31S) || ? (A33) || ? (A80)<br />
|-<br />
! scope="row" | Video interfaces<br />
| HDMI 1.3, YPbPr, VGA, CPU/RGB/LVDS LCD || HDMI 1.3, RGB/LVDS LCD || RGB LCD, VGA|| HDMI 1.4, CVBS, YPbPr, VGA, CPU/RGB/LVDS LCD || CPU/RGB/LVDS LCD, MIPI DSI || HDMI 1.4, MIPI DSI, 2-channel LVDS, 2-channel RGB LCD || HDMI 1.4, LVDS, RGB LCD || CPU/RGB/LVDS LCD, MIPI DSI || HDMI 4K, RGB LCD 2048x1536@60fps, dual-channel LVDS 1920x1080@60fps, 4-lane MIPI DSI 1920x1200@60fps, 4-lane eDP 2560x1600@60fps<br />
|-<br />
! scope="row" | Audio interfaces<br />
| I2S, SPDIF, AC97 || I2S, AC97 || I2S, AC97 || I2S, PCM, AC97 || I2S, PCM || 2 I2S, 2 PCM || I2S, 2 PCM || ? (A33) || ? (A80)<br />
|-<br />
! scope="row" | USB OTG<br />
| 1 || 1 || 1 || 1 || 1 || 1 || 1 || ? (A33) || 1<br />
|-<br />
! scope="row" | USB Host<br />
| 2 || 1 || 1 || 2 || 1 || 2 || 2 || ? (A33) || 2x USB Host, USB 3.0/2.0 Dual-Role (host/device)<br />
|-<br />
! scope="row" | Ethernet<br />
| EMAC || EMAC || - || EMAC/GMAC || - || GMAC || GMAC || - || GMAC<br />
|-<br />
! scope="row" | Storage<br />
| NAND (max 64GB), SATA II, SD Card 3.0 || NAND (max 64GB), SD Card 3.0 || NAND (max 64GB), SD Card 3.0 || NAND, MMC, [http://olimex.wordpress.com/2013/04/05/allwinners-a10-and-a20-are-they-really-pin-to-pin-compatible-and-drop-in-replacement/#comment-5452 SATA] || raw NAND, eMMC, SD card || 4 x SD Card, eMMC NAND, 2-channel raw NAND || 4 x SD Card, eMMC NAND, raw NAND || 3 x SD Card, eMMC NAND, raw NAND || 4 x SD/MMC<br />
|-<br />
! scope="row" | Package<br />
| BGA441</br>19&nbsp;mm&nbsp;×&nbsp;19&nbsp;mm</br>0.80&nbsp;mm Pitch || BGA336</br>14&nbsp;mm&nbsp;×&nbsp;14&nbsp;mm</br>0.65&nbsp;mm Pitch || eLQFP176</br>20&nbsp;mm&nbsp;×&nbsp;20&nbsp;mm ||BGA441</br>19&nbsp;mm&nbsp;×&nbsp;19&nbsp;mm</br>0.80&nbsp;mm Pitch || FBGA280</br>14&nbsp;mm&nbsp;x&nbsp;14&nbsp;mm&nbsp;x&nbsp;1.4&nbsp;mm</br>0.80&nbsp;mm Pitch || BGA609</br>18&nbsp;mm&nbsp;×&nbsp;8&nbsp;mm</br>0.65&nbsp;mm Pitch || ? (A31S) || ? (Allwinner: pin compatible with A23) || ? (A80)<br />
|-<br />
! scope="row" | Lithography<br />
| 55 nm || 55 nm|| 55 nm || 40 nm || 40 nm || 40 nm || 40 nm || 40 nm || 28 nm<br />
|}<br />
<ref>http://blog.thinkteletronics.com/all-mobile-socsolutions/ All Mobile Soc/Solutions.</ref><br />
<br />
= References =<br />
<references /><br />
<br />
[[Category:System on Chip]]</div>
Frozeus
https://linux-sunxi.org/index.php?title=Allwinner_SoC_Family&diff=23273
Allwinner SoC Family
2020-04-13T23:34:18Z
<p>Frozeus: Add SID for sun50iw9</p>
<hr />
<div>= SoC series =<br />
'''A''' series processors are used for mobile applications, mainly referring to tablet application here;<br />
<br />
'''B''' for "Book", used for E-book tablet reader. <br />
<br />
'''H''' for “Homlet”, mainly used in home entertainment applications, including smart OTT boxes, HDMI mini PCs, gaming boxes, etc;<br />
<br />
'''V''' for video-related applications, including video surveillance, automotive DVR, etc;<br />
<br />
'''T''' series processors target the Automotive products like ADAS. <br />
<br />
'''F''' series are processors based on Allwinner’s melis OS, mainly used in smart video radios, video MP5, etc;<br />
<br />
== "A"-Series ==<br />
Based on ARMv7 Cortex-A cores (Cortex-A7, A8 and A15) targeted for high-end devices like digital media players, tablets, and netbooks:<br />
{| class="wikitable"<br />
| [[A10|Allwinner A10]] || <small>(sun4i)</small> || 1 x Cortex-A8 CPU-core<br />
|-<br />
| [[A13|Allwinner A13]] || <small>(sun5i)</small> || 1 x Cortex-A8 CPU-core<br />
|-<br />
| [[A10s|Allwinner A10s]] || <small>(sun5i)</small> || 1 x Cortex-A8 CPU-core<br />
|-<br />
| [[A20|Allwinner A20]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=45</ref> || <small>(sun7i)</small> || 2 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A23|Allwinner A23]] || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A31|Allwinner A31]] || <small>(sun6i)</small> || 4 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A31s|Allwinner A31s]] || <small>(sun6i)</small> || 4 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A33|Allwinner A33]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=23</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A40i|Allwinner A40i]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=69</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A50|Allwinner A50]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=72</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A80|Allwinner A80]] || <small>(sun9i)</small> || 4 x Cortex-A7 CPU-cores + 4 x Cortex-A15 CPU-cores&nbsp;<br /><small>(using ARM big.LITTLE heterogeneous CPU architecture)</small><br />
|-<br />
| [[A83T|Allwinner A83T]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=24</ref> || <small>(sun8i)</small>&nbsp; || 8 x Cortex-A7 CPU-cores<br />
|}<br />
<br />
'''64-bit'''<br />
{| class="wikitable"<br />
| [[A63|Allwinner A63]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=67</ref> || <small>(sun50i)</small>&nbsp; || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[A64|Allwinner A64]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=9</ref> || <small>(sun50i)</small>&nbsp; || 4 x Cortex-A53 CPU-core<br />
|}<br />
<br />
== "B"-series ==<br />
<br />
{| class="wikitable"<br />
| [[B288|Allwinner B288]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=59</ref> || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|-<br />
| [[B300|Allwinner B300]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=86</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|}<br />
<br />
== "H"-Series ==<br />
Based on ARMv7/ARMv8 Cortex-A cores (A7/A53) targeted for video OTT (over-the-top) boxes and high-end gaming consoles:<br />
{| class="wikitable"<br />
| [[H2+|Allwinner H2+]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=62</ref> || <small>(sun8i)</small>&nbsp; || 4 x Cortex-A7 CPU-core&nbsp;<br />
|-<br />
| [[H3|Allwinner H3]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=47</ref> || <small>(sun8i)</small>&nbsp; || 4 x Cortex-A7 CPU-core&nbsp;<br />
|-<br />
| [[H8|Allwinner H8]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=46</ref> || <small>(sun8i)</small> || 8 x Cortex-A7 CPU-core<br />
|-<br />
| [[H80|Allwinner H80]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=46</ref> || <small>(sun8i)</small> || 8 x Cortex-A7 CPU-core<br />
|}<br />
<br />
'''64-bit'''<br />
{| class="wikitable"<br />
| [[H5|Allwinner H5]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=57</ref>&nbsp; || <small>(sun50i)</small>&nbsp; || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[H6|Allwinner H6]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=66</ref>&nbsp; || <small>(sun50i)</small>&nbsp; || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[H64|Allwinner H64]]<ref>http://web.archive.org/web/20160425223052/http://www.allwinnertech.com/en/clq/H_series/6100.html</ref> || <small>(sun50i)</small> || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[H313|Allwinner H313]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=90</ref> || <small>(sun50i)</small> || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[H616|Allwinner H616]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=89</ref> || <small>(sun50i)</small> || 4 x Cortex-A53 CPU-core<br />
|}<br />
<br />
== "R"-Series ==<br />
<br />
{| class="wikitable"<br />
| [[R6|Allwinner R6]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=79</ref> || <small>(sun3i)</small> || 1 x Cortex-A9 CPU-core<br />
|-<br />
| [[R7|Allwinner R7]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=82</ref> || <small>(sun8i)</small> || 1 x Cortex-A7 CPU-core<br />
|-<br />
| [[R8|Allwinner R8]]<ref>http://web.archive.org/web/20160510053338/http://www.allwinnertech.com/en/clq/R_series/2015/0514/R8.html</ref> || <small>(sun5i)</small>&nbsp; || 1 x Cortex-A8 CPU-core<br />
|-<br />
| [[R11|Allwinner R11]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=83</ref> || <small>(sun8i)</small> || 1 x Cortex-A7 CPU-core<br />
|-<br />
| [[R16|Allwinner R16]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=51</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[R40|Allwinner R40]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=56</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[R58|Allwinner R58]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=49</ref>&nbsp; || <small>(sun8i)</small> || 8 x Cortex-A7 CPU-core<br />
|-<br />
| [[R311|Allwinner R311]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=84</ref>&nbsp; || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[R328|Allwinner R328]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=85</ref>&nbsp; || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|}<br />
<br />
The Allwinner R8 is repackaged version of the A13. This SoC gets used in the minicomputer presented in Next Thing Co.'s [[NextThingCo CHIP|''C.H.I.P.'']] kickstarter project ("The $9 computer")<ref>http://nextthing.co/</ref>.<br />
<br />
By comparing the product pages the R16 seems to be a relabeled version of A33. This is somewhat confirmed by the (identical) SoC ID the BROM reports.<ref>https://groups.google.com/d/msg/linux-sunxi/vx6oQMy-nis/vgVc8d1KBAAJ</ref><br />
<br />
'''64-bit'''<br />
{| class="wikitable"<br />
| [[R18|Allwinner R18]]|| <small>sun50i</small> || 4 x Cortex-A53 CPU-core<br />
|}<br />
<br />
== "T"-series ==<br />
<br />
{| class="wikitable"<br />
| [[T2|Allwinner T2]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=39</ref> || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|-<br />
| [[T3|Allwinner T3]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=41</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[T7|Allwinner T7]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=71</ref> || <small>(sun8i)</small> || 6 x Cortex-A7 CPU-core<br />
|-<br />
| [[T8|Allwinner T8]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=33</ref> || <small>(sun8i)</small> || 8 x Cortex-A7 CPU-core<br />
|}<br />
<br />
== "V"-series ==<br />
<br />
{| class="wikitable"<br />
| [[V3|Allwinner V3]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=37</ref> || <small>(sun8i)</small> || 1 x Cortex-A7 CPU-core<br />
|-<br />
| [[V3s|Allwinner V3s]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=38</ref> || <small>(sun8i)</small> || 1 x Cortex-A7 CPU-core<br />
|-<br />
| [[V5|Allwinner V5]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=70</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[V40|Allwinner V40]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=36</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[V66|Allwinner V66]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=35</ref> || <small>(sun8i)</small> || 8 x Cortex-A7 CPU-core<br />
|-<br />
| [[V316|Allwinner V316]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=87</ref> || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|-<br />
| [[V536|Allwinner V536]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=88</ref> || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|}<br />
<br />
== "F"-Series ==<br />
:'''{{note|The F series is not supported by the linux-sunxi community due to lack of developers and hardware. ''sun3i'' have only official linux support, ''sunii'' have no linux support, only Allwinner's "Melis" RTOS.}}'''<br />
<br />
Based on ARMv5 ARM926-EJS core and currently targeted for low market devices such as cheap ebook readers, etc.<br />
<br />
F1C700 seems to be a remarked A13, and it's ARMv7.<br />
<br />
{| class="wikitable"<br />
| [[C100|Boxchip C100]] || <small>(sun3i)</small><br />
|-<br />
| [[E200|Boxchip E200]] || <small>(sun3i)</small><br />
|-<br />
| [[F10|Boxchip F10]] <small>aka SoChip SC9800 aka Teclast T8100</small>&nbsp; || <small>(sunii)</small><br />
|-<br />
| [[F13|Boxchip F13]] || <small>(sunii)</small><br />
|-<br />
| [[F13|Boxchip F15]] <small>aka SoChip SC8600 aka Teclast T7200</small> || <small>(sunii)</small><br />
|-<br />
| [[F18|Boxchip F18]] || <small>(sunii)</small><br />
|-<br />
| [[F20|Boxchip F20]] || <small>(sun3i)</small><br />
|-<br />
| [[F23|Allwinner F23]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=30</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C100A|Allwinner F1C100A]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=29</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C100s|Allwinner F1C100s]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=73</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C200s|Allwinner F1C200s]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=74</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C500s|Allwinner F1C500s]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=75</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C600|Allwinner F1C600]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=28</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C700|Allwinner F1C700]] || <small>(sun5i)</small><br />
|-<br />
| [[F1C800|Allwinner F1C800]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=76</ref> || <small>(suniv)</small><br />
|}<br />
<br />
== "MR"-series ==<br />
<br />
{| class="wikitable"<br />
| [[MR100|Allwinner MR100]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=77</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[MR133|Allwinner MR133]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=86</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|}<br />
<br />
= 2013 naming scheme change =<br />
<br />
Initially, Allwinner named their SoCs chronologically:<br />
* sun4i = A10<br />
* sun5i = A13/A10s<br />
* sun6i = A31<br />
* sun7i = A20<br />
<br />
But, somewhere in 2013, Allwinner decided to update their naming scheme to be based on the ARM core used instead: (taken from the A80 SDK kernel code). Note: SoCs with ? has never appeared on Allwinner's website. <ref>https://github.com/tinalinux/brandy/blob/r40-v1.y/SUNXI_README</ref><br />
<br />
{| class="wikitable"<br />
! sunxi (arm cores) !! sunxiwx (soc id) !! p (rev id) !! soc name !! cores !! notes<br />
|-<br />
| sun3i (arm926ejs) || sun3iw1 (0x1663) || sun3iw1p1 || [[F1C100s]], [[F1C100A]], [[F1C200s]], [[F1C500]], [[F1C600]], [[R6]] || 1xARM926EJ-S<br />
|-<br />
| style="text-align: left;" rowspan="4" | sun4i (cortex-a8) <br />
| sun4iw1 (0x1623) || sun4iw1p1 || [[A10]] || 1xCortex-A8<br />
|-<br />
| style="text-align: left;" rowspan="3" | sun4iw2 (0x1625)<br />
| sun4iw2p1 || [[A13]] || 1xCortex-A8<br />
|-<br />
| sun4iw2p2 || [[A12]] || ?<br />
|-<br />
| sun4iw2p3 || [[A10s]] || 1xCortex-A8<br />
|-<br />
| style="text-align: left;" rowspan="20" | sun8i <br />
(cortex-a7 smp)<br />
<br />
| style="text-align: left;" rowspan="2" | sun8iw1 (0x1633)<br />
<br />
| sun8iw1p1 || [[A31]] || 4xCortex-A7<br />
|-<br />
| sun8iw1p2 || [[A31s]] || 4xCortex-A7<br />
|-<br />
| style="text-align: left;" rowspan="2" | sun8iw2 (0x1651)<br />
<br />
| sun8iw2p1 || [[A20]] || 2xCortex-A7<br />
|-<br />
| sun8iw2p2 || ? || ?<br />
|-<br />
| style="text-align: left;" rowspan="2" | sun8iw3 (0x1650)<br />
<br />
| sun8iw3p1 || [[A23]] || 2xCortex-A7<br />
|-<br />
| sun8iw3p2 || ? || ?<br />
|-<br />
| sun8iw5 (0x1667) || sun8iw5p1 || [[A33]] || 4xCortex-A7<br />
|-<br />
| sun8iw6 (0x1673) || sun8iw6p1 || [[A83T]] || 8xCortex-A7<br />
|-<br />
| sun8iw7 (0x1680) || sun8iw7p1 || [[H3]], [[H2+]] || 4xCortex-A7<br />
|-<br />
| style="text-align: left;" rowspan="2" | sun8iw8 (0x1681)<br />
<br />
| sun8iw8p1 || [[V3]], [[V3s]] || 1xCortex-A7 || called V30 in allwinner's kernel source<br />
|-<br />
| sun8iw8p2 || ? || ? || called V33 in allwinner's kernel source<br />
|-<br />
| sun8iw10 (0x1699) || sun8iw10p1 || [[B288]], [[B100]] || 2xCortex-A7<br />
|-<br />
| style="text-align: left;" rowspan="4" | sun8iw11 (0x1701)<br />
<br />
| sun8iw11p1 || [[R40]], [[V40]], [[T3]], [[A20e]]? || 4xCortex-A7<br />
|-<br />
| sun8iw11p2 || ?? || 4xCortex-A7<br />
|-<br />
| sun8iw11p3 || ?? || 4xCortex-A7<br />
|-<br />
| sun8iw11p4 || ?? || 4xCortex-A7<br />
|-<br />
| sun8iw12 (0x1721) || sun8iw12p1 || [[V5]] || 4xCortex-A7<br />
|-<br />
| sun8iw15 (0x1755) || sun8iw15p1 || [[R311]] || 4xCortex-A7<br />
|-<br />
| sun8iw16 (0x1816) || sun8iw16p1 || [[V356]] || 2xCortex-A7<br />
|-<br />
| sun8iw17 (0x1708) || sun8iw17p1 || [[T7]] || 6xCortex-A7<br />
|-<br />
| style="text-align: left;" rowspan="2" | sun9i <br />
(cortex-a15/cortex-a7 big.LITTLE) <br />
<br />
| style="text-align: left;" rowspan="2" | sun9iw1 (0x1639)<br />
| sun9iw1p1 || [[A80]] || 4xCortex-A7 + 4xCortex-A15<br />
|-<br />
| sun9iw1p2 || [[A80T]] || ?<br />
|-<br />
| style="text-align: left;" rowspan="5" | sun50i <br />
(cortex-a53 smp) <br />
| sun50iw1 (0x1689) || sun50iw1p1 || [[A64]] || 4xCortex-A53<br />
|-<br />
| sun50iw2 (0x1718) || sun50iw2p1 || [[H5]] || 4xCortex-A53<br />
|-<br />
| sun50iw3 (0x1719) || sun50iw3p1 || [[A63]] || 4xCortex-A53<br />
|-<br />
| sun50iw6 (0x1728) || sun50iw6p1 || [[H6]] || 4xCortex-A53<br />
|-<br />
| sun50iw9 (0x18230) || sun50iw9p1<ref>https://androidpctv.com/review-tanix-tx6s-opinion</ref> || [[H616]] || 4xCortex-A53<br />
|}<br />
<br />
This new naming scheme is of absolutely no value with respect to the rest of the SoC. The actual ARM core(s) used are usually the least important piece of information for SoC support. This table completely ignores the fact that A20 is an updated A10 and is pin compatible. It also ignores the fact that A31 introduced a lot of changes which were carried on to the A23/A33 and possibly A80 parts. It therefore is quite likely that this naming scheme was purely a marketing decision, and that Allwinner marketing will change its mind again.<br />
<br />
= Features =<br />
* CPU: ARMv7-A [http://en.wikipedia.org/wiki/ARM_Cortex-A7 Cortex-A7], [http://en.wikipedia.org/wiki/ARM_Cortex-A15 Cortex-A15] or [http://en.wikipedia.org/wiki/ARM_Cortex-A8 Cortex-A8] Central Processor Unit with (co-)processor extensions:<br />
** Advanced SIMD: [http://en.wikipedia.org/wiki/ARM_architecture#Advanced_SIMD_.28NEON.29 NEON] (ARM's extended general-purpose advanced SIMD vector processing extension engine)<br />
** [[Vector Floating Point Unit]] ([http://en.wikipedia.org/wiki/ARM_architecture#Floating-point_.28VFP.29 VFPU]): ARM VFPv3 lite (Cortex-A8) / VFPv4 (Cortex-A7)<br />
** Security Extensions: <br />
*** [http://en.wikipedia.org/wiki/ARM_architecture#Security_extensions_.28TrustZone.29 TrustZone] secure world<br />
*** [[Security_System|Security accelerator]] supporting AES, DES, 3DES, SHA-1, MD5 and pseudo-random number generation<br />
** [http://en.wikipedia.org/wiki/ARM_architecture#Thumb-2 Thumb-2] instruction set extension for optimized code to reduce memory footprint and improve performance<br />
* GPU: [[Mali400]], Mali400-MP2, SGX544 or PowerVR G6230 Graphics Procesor Unit, supporting OpenGL ES2.<br />
* VPU: [[Cedar Engine]] (Video Processor Unit for audio and video hardware decoding or encoding)<br />
* HDMI-transmitter with [http://en.wikipedia.org/wiki/HDMI#CEC HDMI CEC] (Consumer Electronics Control), with exception of A13 which lacks HDMI-transmitter and SATA-controller<ref>[http://olimex.wordpress.com/2012/04/24/cortex-a8-in-tqfp-sure-allwinner-a13/ "Cortex A8 in TQFP? sure Allwinner A13"] ''Retrieved 23 September 2012''</ref><br />
* Hardware virtualization capabilities (Cortex-A7 only).<br />
* Up to 4GB memory (Cortex-A8), Up to 1TB memory with LPAE (Cortex-A7 only).<br />
<br />
== Comparison table ==<br />
{| class="wikitable"<br />
! scope="row" | !! [[A10]] !! [[A10s]] !! [[A13]] !! [[A20]] !! [[A23]] !! [[A31]] !! [[A31s]] !! [[A33]] !! [[A80]]<br />
|-<br />
! scope="row" | Generation <br />
| sun4i || sun5i || sun5i || sun7i || sun8i || sun6i || sun6i || sun8i || sun9i <br />
|-<br />
! scope="row" | CPU<br />
| Cortex-A8 || Cortex-A8 || Cortex-A8 || Cortex-A7 || Cortex-A7 ||Cortex-A7 || Cortex-A7 || Cortex-A7 || Cortex-A7 / A15 <br />
|-<br />
! scope="row" | CPU Maximum frequency<br />
| 1 GHz|| 1 GHz || 1 GHz|| 960 MHz|| 1.5 GHz || ? GHz || ? GHz || 1.5 GHz || 2 (??) GHz<br />
|-<br />
! scope="row" | Cores<br />
| 1 || 1 || 1 || 2 || 2 || 4 || 4 || 4 || 2 x 4<br />
|-<br />
! scope="row" | Extensions<br />
| NEON, VFPv3, Thumb-2 || NEON, VFPv3, Thumb-2 || NEON, VFPv3, Thumb-2 || NEON, VFPv3 / VFPv4, Thumb-2 ||NEON, VFPv3 / VFPv4, Thumb-2 || NEON, VFPv3 / VFPv4, Thumb-2 || NEON, VFPv3 / VFPv4, Thumb-2 || NEON, VFPv3 / VFPv4, Thumb-2 || ? (A80)<br />
|-<br />
! scope="row" | Memory<br />
| DDR2, DDR3</br> (max 2GB @ DDR800) || DDR2, DDR3</br> (max 2GB @ DDR800) || DDR2, DDR3</br> (max 512MB @ DDR800) || LPDDR3, DDR3,</br>LPDDR2 || DDR3</br>(max 1GB) || 2-channel DDR3, LPDDR2, </br>2-channel DDR3L, DDR3U || DDR3, DDR3L, LPDDR2 || single-channel DDR3, DDR3L</br>(max 1GB) || 2-channel DDR3, DDR3L, LPDDR3, LPDDR2</br> up to 8GB<br />
|-<br />
! scope="row" | GPU<br />
| [[Mali400]]</br>320&nbsp;MHz || [[Mali400]]</br>320&nbsp;MHz || [[Mali400]]</br>320&nbsp;MHz || [[Mali400]]-MP2</br>350&nbsp;MHz || [[Mali400]]-MP2 || SGX544</br>200&nbsp;MHz || SGX544</br>200&nbsp;MHz || [[Mali400]]-MP2 || 64-core PowerVR G6230<br />
|-<br />
! scope="row" | GPU API<br />
| OpenGL ES 2.0, OpenVG 1.1 || OpenGL ES 2.0, OpenVG 1.1 || OpenGL ES 2.0, OpenVG 1.1 || OpenGL ES 2.0, OpenVG 1.1 || OpenGL ES 2.0, OpenVG 1.1 || OpenGL ES 2.0, OpenVG 1.1, OpenCL 1.1, and DirectX 9.3 || OpenGL ES 2.0, OpenVG 1.1, OpenCL 1.1, and DirectX 9.3 || OpenGL ES 2.0, OpenVG 1.1 || OpenGL 3.x, OpenGL ES Next,3.0,2.0, Open CL 1.x, DirectX 11 level 9_3/10_0<ref>http://www.imgtec.com/news/detail.asp?ID=845</ref><br />
|-<br />
! scope="row" | [[Cedar Engine|Video decoder]]<br />
| 2160p || 1080p || 1080p || 2160p, 4K×2K, 1080p 3D || 1080p@60fps || 2160p, 4K×2K, 1080p 3D || 2160p, 1080p 3D || 1080p@60fps || ? (A80)<br />
|-<br />
! scope="row" | [[Cedar Engine|Video encoder]]<br />
| H.264 1080p@30fps, JPEG || H.264 1080p@30fps, JPEG || H.264 1080p@30fps, JPEG || H.264 1080p@30fps, JPEG || 1080p@60fps || H.264 1080p@60fps, JPEG || H264 1080p@30fps, 720p@60fps || H.264 1080p@60fps, JPEG || H.264 HP/VP8 4Kx2K@30fp<br />
|-<br />
! scope="row" | Audio decoder<br />
| AC3, DTS || ? || ? || AC3, DTS || - || ? (A31) || ? (A31S) || ? (A33) || ? (A80)<br />
|-<br />
! scope="row" | Video interfaces<br />
| HDMI 1.3, YPbPr, VGA, CPU/RGB/LVDS LCD || HDMI 1.3, RGB/LVDS LCD || RGB LCD, VGA|| HDMI 1.4, CVBS, YPbPr, VGA, CPU/RGB/LVDS LCD || CPU/RGB/LVDS LCD, MIPI DSI || HDMI 1.4, MIPI DSI, 2-channel LVDS, 2-channel RGB LCD || HDMI 1.4, LVDS, RGB LCD || CPU/RGB/LVDS LCD, MIPI DSI || HDMI 4K, RGB LCD 2048x1536@60fps, dual-channel LVDS 1920x1080@60fps, 4-lane MIPI DSI 1920x1200@60fps, 4-lane eDP 2560x1600@60fps<br />
|-<br />
! scope="row" | Audio interfaces<br />
| I2S, SPDIF, AC97 || I2S, AC97 || I2S, AC97 || I2S, PCM, AC97 || I2S, PCM || 2 I2S, 2 PCM || I2S, 2 PCM || ? (A33) || ? (A80)<br />
|-<br />
! scope="row" | USB OTG<br />
| 1 || 1 || 1 || 1 || 1 || 1 || 1 || ? (A33) || 1<br />
|-<br />
! scope="row" | USB Host<br />
| 2 || 1 || 1 || 2 || 1 || 2 || 2 || ? (A33) || 2x USB Host, USB 3.0/2.0 Dual-Role (host/device)<br />
|-<br />
! scope="row" | Ethernet<br />
| EMAC || EMAC || - || EMAC/GMAC || - || GMAC || GMAC || - || GMAC<br />
|-<br />
! scope="row" | Storage<br />
| NAND (max 64GB), SATA II, SD Card 3.0 || NAND (max 64GB), SD Card 3.0 || NAND (max 64GB), SD Card 3.0 || NAND, MMC, [http://olimex.wordpress.com/2013/04/05/allwinners-a10-and-a20-are-they-really-pin-to-pin-compatible-and-drop-in-replacement/#comment-5452 SATA] || raw NAND, eMMC, SD card || 4 x SD Card, eMMC NAND, 2-channel raw NAND || 4 x SD Card, eMMC NAND, raw NAND || 3 x SD Card, eMMC NAND, raw NAND || 4 x SD/MMC<br />
|-<br />
! scope="row" | Package<br />
| BGA441</br>19&nbsp;mm&nbsp;×&nbsp;19&nbsp;mm</br>0.80&nbsp;mm Pitch || BGA336</br>14&nbsp;mm&nbsp;×&nbsp;14&nbsp;mm</br>0.65&nbsp;mm Pitch || eLQFP176</br>20&nbsp;mm&nbsp;×&nbsp;20&nbsp;mm ||BGA441</br>19&nbsp;mm&nbsp;×&nbsp;19&nbsp;mm</br>0.80&nbsp;mm Pitch || FBGA280</br>14&nbsp;mm&nbsp;x&nbsp;14&nbsp;mm&nbsp;x&nbsp;1.4&nbsp;mm</br>0.80&nbsp;mm Pitch || BGA609</br>18&nbsp;mm&nbsp;×&nbsp;8&nbsp;mm</br>0.65&nbsp;mm Pitch || ? (A31S) || ? (Allwinner: pin compatible with A23) || ? (A80)<br />
|-<br />
! scope="row" | Lithography<br />
| 55 nm || 55 nm|| 55 nm || 40 nm || 40 nm || 40 nm || 40 nm || 40 nm || 28 nm<br />
|}<br />
<ref>http://blog.thinkteletronics.com/all-mobile-socsolutions/ All Mobile Soc/Solutions.</ref><br />
<br />
= References =<br />
<references /><br />
<br />
[[Category:System on Chip]]</div>
Frozeus
https://linux-sunxi.org/index.php?title=Allwinner_SoC_Family&diff=23272
Allwinner SoC Family
2020-04-13T23:32:42Z
<p>Frozeus: </p>
<hr />
<div>= SoC series =<br />
'''A''' series processors are used for mobile applications, mainly referring to tablet application here;<br />
<br />
'''B''' for "Book", used for E-book tablet reader. <br />
<br />
'''H''' for “Homlet”, mainly used in home entertainment applications, including smart OTT boxes, HDMI mini PCs, gaming boxes, etc;<br />
<br />
'''V''' for video-related applications, including video surveillance, automotive DVR, etc;<br />
<br />
'''T''' series processors target the Automotive products like ADAS. <br />
<br />
'''F''' series are processors based on Allwinner’s melis OS, mainly used in smart video radios, video MP5, etc;<br />
<br />
== "A"-Series ==<br />
Based on ARMv7 Cortex-A cores (Cortex-A7, A8 and A15) targeted for high-end devices like digital media players, tablets, and netbooks:<br />
{| class="wikitable"<br />
| [[A10|Allwinner A10]] || <small>(sun4i)</small> || 1 x Cortex-A8 CPU-core<br />
|-<br />
| [[A13|Allwinner A13]] || <small>(sun5i)</small> || 1 x Cortex-A8 CPU-core<br />
|-<br />
| [[A10s|Allwinner A10s]] || <small>(sun5i)</small> || 1 x Cortex-A8 CPU-core<br />
|-<br />
| [[A20|Allwinner A20]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=45</ref> || <small>(sun7i)</small> || 2 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A23|Allwinner A23]] || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A31|Allwinner A31]] || <small>(sun6i)</small> || 4 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A31s|Allwinner A31s]] || <small>(sun6i)</small> || 4 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A33|Allwinner A33]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=23</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A40i|Allwinner A40i]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=69</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A50|Allwinner A50]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=72</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A80|Allwinner A80]] || <small>(sun9i)</small> || 4 x Cortex-A7 CPU-cores + 4 x Cortex-A15 CPU-cores&nbsp;<br /><small>(using ARM big.LITTLE heterogeneous CPU architecture)</small><br />
|-<br />
| [[A83T|Allwinner A83T]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=24</ref> || <small>(sun8i)</small>&nbsp; || 8 x Cortex-A7 CPU-cores<br />
|}<br />
<br />
'''64-bit'''<br />
{| class="wikitable"<br />
| [[A63|Allwinner A63]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=67</ref> || <small>(sun50i)</small>&nbsp; || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[A64|Allwinner A64]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=9</ref> || <small>(sun50i)</small>&nbsp; || 4 x Cortex-A53 CPU-core<br />
|}<br />
<br />
== "B"-series ==<br />
<br />
{| class="wikitable"<br />
| [[B288|Allwinner B288]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=59</ref> || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|-<br />
| [[B300|Allwinner B300]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=86</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|}<br />
<br />
== "H"-Series ==<br />
Based on ARMv7/ARMv8 Cortex-A cores (A7/A53) targeted for video OTT (over-the-top) boxes and high-end gaming consoles:<br />
{| class="wikitable"<br />
| [[H2+|Allwinner H2+]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=62</ref> || <small>(sun8i)</small>&nbsp; || 4 x Cortex-A7 CPU-core&nbsp;<br />
|-<br />
| [[H3|Allwinner H3]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=47</ref> || <small>(sun8i)</small>&nbsp; || 4 x Cortex-A7 CPU-core&nbsp;<br />
|-<br />
| [[H8|Allwinner H8]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=46</ref> || <small>(sun8i)</small> || 8 x Cortex-A7 CPU-core<br />
|-<br />
| [[H80|Allwinner H80]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=46</ref> || <small>(sun8i)</small> || 8 x Cortex-A7 CPU-core<br />
|}<br />
<br />
'''64-bit'''<br />
{| class="wikitable"<br />
| [[H5|Allwinner H5]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=57</ref>&nbsp; || <small>(sun50i)</small>&nbsp; || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[H6|Allwinner H6]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=66</ref>&nbsp; || <small>(sun50i)</small>&nbsp; || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[H64|Allwinner H64]]<ref>http://web.archive.org/web/20160425223052/http://www.allwinnertech.com/en/clq/H_series/6100.html</ref> || <small>(sun50i)</small> || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[H313|Allwinner H313]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=90</ref> || <small>(sun50i)</small> || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[H616|Allwinner H616]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=89</ref> || <small>(sun50i)</small> || 4 x Cortex-A53 CPU-core<br />
|}<br />
<br />
== "R"-Series ==<br />
<br />
{| class="wikitable"<br />
| [[R6|Allwinner R6]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=79</ref> || <small>(sun3i)</small> || 1 x Cortex-A9 CPU-core<br />
|-<br />
| [[R7|Allwinner R7]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=82</ref> || <small>(sun8i)</small> || 1 x Cortex-A7 CPU-core<br />
|-<br />
| [[R8|Allwinner R8]]<ref>http://web.archive.org/web/20160510053338/http://www.allwinnertech.com/en/clq/R_series/2015/0514/R8.html</ref> || <small>(sun5i)</small>&nbsp; || 1 x Cortex-A8 CPU-core<br />
|-<br />
| [[R11|Allwinner R11]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=83</ref> || <small>(sun8i)</small> || 1 x Cortex-A7 CPU-core<br />
|-<br />
| [[R16|Allwinner R16]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=51</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[R40|Allwinner R40]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=56</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[R58|Allwinner R58]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=49</ref>&nbsp; || <small>(sun8i)</small> || 8 x Cortex-A7 CPU-core<br />
|-<br />
| [[R311|Allwinner R311]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=84</ref>&nbsp; || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[R328|Allwinner R328]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=85</ref>&nbsp; || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|}<br />
<br />
The Allwinner R8 is repackaged version of the A13. This SoC gets used in the minicomputer presented in Next Thing Co.'s [[NextThingCo CHIP|''C.H.I.P.'']] kickstarter project ("The $9 computer")<ref>http://nextthing.co/</ref>.<br />
<br />
By comparing the product pages the R16 seems to be a relabeled version of A33. This is somewhat confirmed by the (identical) SoC ID the BROM reports.<ref>https://groups.google.com/d/msg/linux-sunxi/vx6oQMy-nis/vgVc8d1KBAAJ</ref><br />
<br />
'''64-bit'''<br />
{| class="wikitable"<br />
| [[R18|Allwinner R18]]|| <small>sun50i</small> || 4 x Cortex-A53 CPU-core<br />
|}<br />
<br />
== "T"-series ==<br />
<br />
{| class="wikitable"<br />
| [[T2|Allwinner T2]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=39</ref> || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|-<br />
| [[T3|Allwinner T3]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=41</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[T7|Allwinner T7]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=71</ref> || <small>(sun8i)</small> || 6 x Cortex-A7 CPU-core<br />
|-<br />
| [[T8|Allwinner T8]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=33</ref> || <small>(sun8i)</small> || 8 x Cortex-A7 CPU-core<br />
|}<br />
<br />
== "V"-series ==<br />
<br />
{| class="wikitable"<br />
| [[V3|Allwinner V3]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=37</ref> || <small>(sun8i)</small> || 1 x Cortex-A7 CPU-core<br />
|-<br />
| [[V3s|Allwinner V3s]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=38</ref> || <small>(sun8i)</small> || 1 x Cortex-A7 CPU-core<br />
|-<br />
| [[V5|Allwinner V5]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=70</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[V40|Allwinner V40]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=36</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[V66|Allwinner V66]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=35</ref> || <small>(sun8i)</small> || 8 x Cortex-A7 CPU-core<br />
|-<br />
| [[V316|Allwinner V316]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=87</ref> || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|-<br />
| [[V536|Allwinner V536]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=88</ref> || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|}<br />
<br />
== "F"-Series ==<br />
:'''{{note|The F series is not supported by the linux-sunxi community due to lack of developers and hardware. ''sun3i'' have only official linux support, ''sunii'' have no linux support, only Allwinner's "Melis" RTOS.}}'''<br />
<br />
Based on ARMv5 ARM926-EJS core and currently targeted for low market devices such as cheap ebook readers, etc.<br />
<br />
F1C700 seems to be a remarked A13, and it's ARMv7.<br />
<br />
{| class="wikitable"<br />
| [[C100|Boxchip C100]] || <small>(sun3i)</small><br />
|-<br />
| [[E200|Boxchip E200]] || <small>(sun3i)</small><br />
|-<br />
| [[F10|Boxchip F10]] <small>aka SoChip SC9800 aka Teclast T8100</small>&nbsp; || <small>(sunii)</small><br />
|-<br />
| [[F13|Boxchip F13]] || <small>(sunii)</small><br />
|-<br />
| [[F13|Boxchip F15]] <small>aka SoChip SC8600 aka Teclast T7200</small> || <small>(sunii)</small><br />
|-<br />
| [[F18|Boxchip F18]] || <small>(sunii)</small><br />
|-<br />
| [[F20|Boxchip F20]] || <small>(sun3i)</small><br />
|-<br />
| [[F23|Allwinner F23]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=30</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C100A|Allwinner F1C100A]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=29</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C100s|Allwinner F1C100s]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=73</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C200s|Allwinner F1C200s]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=74</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C500s|Allwinner F1C500s]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=75</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C600|Allwinner F1C600]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=28</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C700|Allwinner F1C700]] || <small>(sun5i)</small><br />
|-<br />
| [[F1C800|Allwinner F1C800]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=76</ref> || <small>(suniv)</small><br />
|}<br />
<br />
== "MR"-series ==<br />
<br />
{| class="wikitable"<br />
| [[MR100|Allwinner MR100]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=77</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[MR133|Allwinner MR133]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=86</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|}<br />
<br />
= 2013 naming scheme change =<br />
<br />
Initially, Allwinner named their SoCs chronologically:<br />
* sun4i = A10<br />
* sun5i = A13/A10s<br />
* sun6i = A31<br />
* sun7i = A20<br />
<br />
But, somewhere in 2013, Allwinner decided to update their naming scheme to be based on the ARM core used instead: (taken from the A80 SDK kernel code). Note: SoCs with ? has never appeared on Allwinner's website. <ref>https://github.com/tinalinux/brandy/blob/r40-v1.y/SUNXI_README</ref><br />
<br />
{| class="wikitable"<br />
! sunxi (arm cores) !! sunxiwx (soc id) !! p (rev id) !! soc name !! cores !! notes<br />
|-<br />
| sun3i (arm926ejs) || sun3iw1 (0x1663) || sun3iw1p1 || [[F1C100s]], [[F1C100A]], [[F1C200s]], [[F1C500]], [[F1C600]], [[R6]] || 1xARM926EJ-S<br />
|-<br />
| style="text-align: left;" rowspan="4" | sun4i (cortex-a8) <br />
| sun4iw1 (0x1623) || sun4iw1p1 || [[A10]] || 1xCortex-A8<br />
|-<br />
| style="text-align: left;" rowspan="3" | sun4iw2 (0x1625)<br />
| sun4iw2p1 || [[A13]] || 1xCortex-A8<br />
|-<br />
| sun4iw2p2 || [[A12]] || ?<br />
|-<br />
| sun4iw2p3 || [[A10s]] || 1xCortex-A8<br />
|-<br />
| style="text-align: left;" rowspan="20" | sun8i <br />
(cortex-a7 smp)<br />
<br />
| style="text-align: left;" rowspan="2" | sun8iw1 (0x1633)<br />
<br />
| sun8iw1p1 || [[A31]] || 4xCortex-A7<br />
|-<br />
| sun8iw1p2 || [[A31s]] || 4xCortex-A7<br />
|-<br />
| style="text-align: left;" rowspan="2" | sun8iw2 (0x1651)<br />
<br />
| sun8iw2p1 || [[A20]] || 2xCortex-A7<br />
|-<br />
| sun8iw2p2 || ? || ?<br />
|-<br />
| style="text-align: left;" rowspan="2" | sun8iw3 (0x1650)<br />
<br />
| sun8iw3p1 || [[A23]] || 2xCortex-A7<br />
|-<br />
| sun8iw3p2 || ? || ?<br />
|-<br />
| sun8iw5 (0x1667) || sun8iw5p1 || [[A33]] || 4xCortex-A7<br />
|-<br />
| sun8iw6 (0x1673) || sun8iw6p1 || [[A83T]] || 8xCortex-A7<br />
|-<br />
| sun8iw7 (0x1680) || sun8iw7p1 || [[H3]], [[H2+]] || 4xCortex-A7<br />
|-<br />
| style="text-align: left;" rowspan="2" | sun8iw8 (0x1681)<br />
<br />
| sun8iw8p1 || [[V3]], [[V3s]] || 1xCortex-A7 || called V30 in allwinner's kernel source<br />
|-<br />
| sun8iw8p2 || ? || ? || called V33 in allwinner's kernel source<br />
|-<br />
| sun8iw10 (0x1699) || sun8iw10p1 || [[B288]], [[B100]] || 2xCortex-A7<br />
|-<br />
| style="text-align: left;" rowspan="4" | sun8iw11 (0x1701)<br />
<br />
| sun8iw11p1 || [[R40]], [[V40]], [[T3]], [[A20e]]? || 4xCortex-A7<br />
|-<br />
| sun8iw11p2 || ?? || 4xCortex-A7<br />
|-<br />
| sun8iw11p3 || ?? || 4xCortex-A7<br />
|-<br />
| sun8iw11p4 || ?? || 4xCortex-A7<br />
|-<br />
| sun8iw12 (0x1721) || sun8iw12p1 || [[V5]] || 4xCortex-A7<br />
|-<br />
| sun8iw15 (0x1755) || sun8iw15p1 || [[R311]] || 4xCortex-A7<br />
|-<br />
| sun8iw16 (0x1816) || sun8iw16p1 || [[V356]] || 2xCortex-A7<br />
|-<br />
| sun8iw17 (0x1708) || sun8iw17p1 || [[T7]] || 6xCortex-A7<br />
|-<br />
| style="text-align: left;" rowspan="2" | sun9i <br />
(cortex-a15/cortex-a7 big.LITTLE) <br />
<br />
| style="text-align: left;" rowspan="2" | sun9iw1 (0x1639)<br />
| sun9iw1p1 || [[A80]] || 4xCortex-A7 + 4xCortex-A15<br />
|-<br />
| sun9iw1p2 || [[A80T]] || ?<br />
|-<br />
| style="text-align: left;" rowspan="5" | sun50i <br />
(cortex-a53 smp) <br />
| sun50iw1 (0x1689) || sun50iw1p1 || [[A64]] || 4xCortex-A53<br />
|-<br />
| sun50iw2 (0x1718) || sun50iw2p1 || [[H5]] || 4xCortex-A53<br />
|-<br />
| sun50iw3 (0x1719) || sun50iw3p1 || [[A63]] || 4xCortex-A53<br />
|-<br />
| sun50iw6 (0x1728) || sun50iw6p1 || [[H6]] || 4xCortex-A53<br />
|-<br />
| sun50iw9 (?) || sun50iw9p1<ref>https://androidpctv.com/review-tanix-tx6s-opinion</ref> || [[H616]] || 4xCortex-A53<br />
|}<br />
<br />
This new naming scheme is of absolutely no value with respect to the rest of the SoC. The actual ARM core(s) used are usually the least important piece of information for SoC support. This table completely ignores the fact that A20 is an updated A10 and is pin compatible. It also ignores the fact that A31 introduced a lot of changes which were carried on to the A23/A33 and possibly A80 parts. It therefore is quite likely that this naming scheme was purely a marketing decision, and that Allwinner marketing will change its mind again.<br />
<br />
= Features =<br />
* CPU: ARMv7-A [http://en.wikipedia.org/wiki/ARM_Cortex-A7 Cortex-A7], [http://en.wikipedia.org/wiki/ARM_Cortex-A15 Cortex-A15] or [http://en.wikipedia.org/wiki/ARM_Cortex-A8 Cortex-A8] Central Processor Unit with (co-)processor extensions:<br />
** Advanced SIMD: [http://en.wikipedia.org/wiki/ARM_architecture#Advanced_SIMD_.28NEON.29 NEON] (ARM's extended general-purpose advanced SIMD vector processing extension engine)<br />
** [[Vector Floating Point Unit]] ([http://en.wikipedia.org/wiki/ARM_architecture#Floating-point_.28VFP.29 VFPU]): ARM VFPv3 lite (Cortex-A8) / VFPv4 (Cortex-A7)<br />
** Security Extensions: <br />
*** [http://en.wikipedia.org/wiki/ARM_architecture#Security_extensions_.28TrustZone.29 TrustZone] secure world<br />
*** [[Security_System|Security accelerator]] supporting AES, DES, 3DES, SHA-1, MD5 and pseudo-random number generation<br />
** [http://en.wikipedia.org/wiki/ARM_architecture#Thumb-2 Thumb-2] instruction set extension for optimized code to reduce memory footprint and improve performance<br />
* GPU: [[Mali400]], Mali400-MP2, SGX544 or PowerVR G6230 Graphics Procesor Unit, supporting OpenGL ES2.<br />
* VPU: [[Cedar Engine]] (Video Processor Unit for audio and video hardware decoding or encoding)<br />
* HDMI-transmitter with [http://en.wikipedia.org/wiki/HDMI#CEC HDMI CEC] (Consumer Electronics Control), with exception of A13 which lacks HDMI-transmitter and SATA-controller<ref>[http://olimex.wordpress.com/2012/04/24/cortex-a8-in-tqfp-sure-allwinner-a13/ "Cortex A8 in TQFP? sure Allwinner A13"] ''Retrieved 23 September 2012''</ref><br />
* Hardware virtualization capabilities (Cortex-A7 only).<br />
* Up to 4GB memory (Cortex-A8), Up to 1TB memory with LPAE (Cortex-A7 only).<br />
<br />
== Comparison table ==<br />
{| class="wikitable"<br />
! scope="row" | !! [[A10]] !! [[A10s]] !! [[A13]] !! [[A20]] !! [[A23]] !! [[A31]] !! [[A31s]] !! [[A33]] !! [[A80]]<br />
|-<br />
! scope="row" | Generation <br />
| sun4i || sun5i || sun5i || sun7i || sun8i || sun6i || sun6i || sun8i || sun9i <br />
|-<br />
! scope="row" | CPU<br />
| Cortex-A8 || Cortex-A8 || Cortex-A8 || Cortex-A7 || Cortex-A7 ||Cortex-A7 || Cortex-A7 || Cortex-A7 || Cortex-A7 / A15 <br />
|-<br />
! scope="row" | CPU Maximum frequency<br />
| 1 GHz|| 1 GHz || 1 GHz|| 960 MHz|| 1.5 GHz || ? GHz || ? GHz || 1.5 GHz || 2 (??) GHz<br />
|-<br />
! scope="row" | Cores<br />
| 1 || 1 || 1 || 2 || 2 || 4 || 4 || 4 || 2 x 4<br />
|-<br />
! scope="row" | Extensions<br />
| NEON, VFPv3, Thumb-2 || NEON, VFPv3, Thumb-2 || NEON, VFPv3, Thumb-2 || NEON, VFPv3 / VFPv4, Thumb-2 ||NEON, VFPv3 / VFPv4, Thumb-2 || NEON, VFPv3 / VFPv4, Thumb-2 || NEON, VFPv3 / VFPv4, Thumb-2 || NEON, VFPv3 / VFPv4, Thumb-2 || ? (A80)<br />
|-<br />
! scope="row" | Memory<br />
| DDR2, DDR3</br> (max 2GB @ DDR800) || DDR2, DDR3</br> (max 2GB @ DDR800) || DDR2, DDR3</br> (max 512MB @ DDR800) || LPDDR3, DDR3,</br>LPDDR2 || DDR3</br>(max 1GB) || 2-channel DDR3, LPDDR2, </br>2-channel DDR3L, DDR3U || DDR3, DDR3L, LPDDR2 || single-channel DDR3, DDR3L</br>(max 1GB) || 2-channel DDR3, DDR3L, LPDDR3, LPDDR2</br> up to 8GB<br />
|-<br />
! scope="row" | GPU<br />
| [[Mali400]]</br>320&nbsp;MHz || [[Mali400]]</br>320&nbsp;MHz || [[Mali400]]</br>320&nbsp;MHz || [[Mali400]]-MP2</br>350&nbsp;MHz || [[Mali400]]-MP2 || SGX544</br>200&nbsp;MHz || SGX544</br>200&nbsp;MHz || [[Mali400]]-MP2 || 64-core PowerVR G6230<br />
|-<br />
! scope="row" | GPU API<br />
| OpenGL ES 2.0, OpenVG 1.1 || OpenGL ES 2.0, OpenVG 1.1 || OpenGL ES 2.0, OpenVG 1.1 || OpenGL ES 2.0, OpenVG 1.1 || OpenGL ES 2.0, OpenVG 1.1 || OpenGL ES 2.0, OpenVG 1.1, OpenCL 1.1, and DirectX 9.3 || OpenGL ES 2.0, OpenVG 1.1, OpenCL 1.1, and DirectX 9.3 || OpenGL ES 2.0, OpenVG 1.1 || OpenGL 3.x, OpenGL ES Next,3.0,2.0, Open CL 1.x, DirectX 11 level 9_3/10_0<ref>http://www.imgtec.com/news/detail.asp?ID=845</ref><br />
|-<br />
! scope="row" | [[Cedar Engine|Video decoder]]<br />
| 2160p || 1080p || 1080p || 2160p, 4K×2K, 1080p 3D || 1080p@60fps || 2160p, 4K×2K, 1080p 3D || 2160p, 1080p 3D || 1080p@60fps || ? (A80)<br />
|-<br />
! scope="row" | [[Cedar Engine|Video encoder]]<br />
| H.264 1080p@30fps, JPEG || H.264 1080p@30fps, JPEG || H.264 1080p@30fps, JPEG || H.264 1080p@30fps, JPEG || 1080p@60fps || H.264 1080p@60fps, JPEG || H264 1080p@30fps, 720p@60fps || H.264 1080p@60fps, JPEG || H.264 HP/VP8 4Kx2K@30fp<br />
|-<br />
! scope="row" | Audio decoder<br />
| AC3, DTS || ? || ? || AC3, DTS || - || ? (A31) || ? (A31S) || ? (A33) || ? (A80)<br />
|-<br />
! scope="row" | Video interfaces<br />
| HDMI 1.3, YPbPr, VGA, CPU/RGB/LVDS LCD || HDMI 1.3, RGB/LVDS LCD || RGB LCD, VGA|| HDMI 1.4, CVBS, YPbPr, VGA, CPU/RGB/LVDS LCD || CPU/RGB/LVDS LCD, MIPI DSI || HDMI 1.4, MIPI DSI, 2-channel LVDS, 2-channel RGB LCD || HDMI 1.4, LVDS, RGB LCD || CPU/RGB/LVDS LCD, MIPI DSI || HDMI 4K, RGB LCD 2048x1536@60fps, dual-channel LVDS 1920x1080@60fps, 4-lane MIPI DSI 1920x1200@60fps, 4-lane eDP 2560x1600@60fps<br />
|-<br />
! scope="row" | Audio interfaces<br />
| I2S, SPDIF, AC97 || I2S, AC97 || I2S, AC97 || I2S, PCM, AC97 || I2S, PCM || 2 I2S, 2 PCM || I2S, 2 PCM || ? (A33) || ? (A80)<br />
|-<br />
! scope="row" | USB OTG<br />
| 1 || 1 || 1 || 1 || 1 || 1 || 1 || ? (A33) || 1<br />
|-<br />
! scope="row" | USB Host<br />
| 2 || 1 || 1 || 2 || 1 || 2 || 2 || ? (A33) || 2x USB Host, USB 3.0/2.0 Dual-Role (host/device)<br />
|-<br />
! scope="row" | Ethernet<br />
| EMAC || EMAC || - || EMAC/GMAC || - || GMAC || GMAC || - || GMAC<br />
|-<br />
! scope="row" | Storage<br />
| NAND (max 64GB), SATA II, SD Card 3.0 || NAND (max 64GB), SD Card 3.0 || NAND (max 64GB), SD Card 3.0 || NAND, MMC, [http://olimex.wordpress.com/2013/04/05/allwinners-a10-and-a20-are-they-really-pin-to-pin-compatible-and-drop-in-replacement/#comment-5452 SATA] || raw NAND, eMMC, SD card || 4 x SD Card, eMMC NAND, 2-channel raw NAND || 4 x SD Card, eMMC NAND, raw NAND || 3 x SD Card, eMMC NAND, raw NAND || 4 x SD/MMC<br />
|-<br />
! scope="row" | Package<br />
| BGA441</br>19&nbsp;mm&nbsp;×&nbsp;19&nbsp;mm</br>0.80&nbsp;mm Pitch || BGA336</br>14&nbsp;mm&nbsp;×&nbsp;14&nbsp;mm</br>0.65&nbsp;mm Pitch || eLQFP176</br>20&nbsp;mm&nbsp;×&nbsp;20&nbsp;mm ||BGA441</br>19&nbsp;mm&nbsp;×&nbsp;19&nbsp;mm</br>0.80&nbsp;mm Pitch || FBGA280</br>14&nbsp;mm&nbsp;x&nbsp;14&nbsp;mm&nbsp;x&nbsp;1.4&nbsp;mm</br>0.80&nbsp;mm Pitch || BGA609</br>18&nbsp;mm&nbsp;×&nbsp;8&nbsp;mm</br>0.65&nbsp;mm Pitch || ? (A31S) || ? (Allwinner: pin compatible with A23) || ? (A80)<br />
|-<br />
! scope="row" | Lithography<br />
| 55 nm || 55 nm|| 55 nm || 40 nm || 40 nm || 40 nm || 40 nm || 40 nm || 28 nm<br />
|}<br />
<ref>http://blog.thinkteletronics.com/all-mobile-socsolutions/ All Mobile Soc/Solutions.</ref><br />
<br />
= References =<br />
<references /><br />
<br />
[[Category:System on Chip]]</div>
Frozeus
https://linux-sunxi.org/index.php?title=Allwinner_SoC_Family&diff=23271
Allwinner SoC Family
2020-04-13T23:23:54Z
<p>Frozeus: /* 2013 naming scheme change */</p>
<hr />
<div>= SoC series =<br />
'''A''' series processors are used for mobile applications, mainly referring to tablet application here;<br />
<br />
'''B''' for "Book", used for E-book tablet reader. <br />
<br />
'''H''' for “Homlet”, mainly used in home entertainment applications, including smart OTT boxes, HDMI mini PCs, gaming boxes, etc;<br />
<br />
'''V''' for video-related applications, including video surveillance, automotive DVR, etc;<br />
<br />
'''T''' series processors target the Automotive products like ADAS. <br />
<br />
'''F''' series are processors based on Allwinner’s melis OS, mainly used in smart video radios, video MP5, etc;<br />
<br />
== "A"-Series ==<br />
Based on ARMv7 Cortex-A cores (Cortex-A7, A8 and A15) targeted for high-end devices like digital media players, tablets, and netbooks:<br />
{| class="wikitable"<br />
| [[A10|Allwinner A10]] || <small>(sun4i)</small> || 1 x Cortex-A8 CPU-core<br />
|-<br />
| [[A13|Allwinner A13]] || <small>(sun5i)</small> || 1 x Cortex-A8 CPU-core<br />
|-<br />
| [[A10s|Allwinner A10s]] || <small>(sun5i)</small> || 1 x Cortex-A8 CPU-core<br />
|-<br />
| [[A20|Allwinner A20]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=45</ref> || <small>(sun7i)</small> || 2 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A23|Allwinner A23]] || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A31|Allwinner A31]] || <small>(sun6i)</small> || 4 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A31s|Allwinner A31s]] || <small>(sun6i)</small> || 4 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A33|Allwinner A33]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=23</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A40i|Allwinner A40i]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=69</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A50|Allwinner A50]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=72</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A80|Allwinner A80]] || <small>(sun9i)</small> || 4 x Cortex-A7 CPU-cores + 4 x Cortex-A15 CPU-cores&nbsp;<br /><small>(using ARM big.LITTLE heterogeneous CPU architecture)</small><br />
|-<br />
| [[A83T|Allwinner A83T]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=24</ref> || <small>(sun8i)</small>&nbsp; || 8 x Cortex-A7 CPU-cores<br />
|}<br />
<br />
'''64-bit'''<br />
{| class="wikitable"<br />
| [[A63|Allwinner A63]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=67</ref> || <small>(sun50i)</small>&nbsp; || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[A64|Allwinner A64]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=9</ref> || <small>(sun50i)</small>&nbsp; || 4 x Cortex-A53 CPU-core<br />
|}<br />
<br />
== "B"-series ==<br />
<br />
{| class="wikitable"<br />
| [[B288|Allwinner B288]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=59</ref> || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|-<br />
| [[B300|Allwinner B300]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=86</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|}<br />
<br />
== "H"-Series ==<br />
Based on ARMv7/ARMv8 Cortex-A cores (A7/A53) targeted for video OTT (over-the-top) boxes and high-end gaming consoles:<br />
{| class="wikitable"<br />
| [[H2+|Allwinner H2+]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=62</ref> || <small>(sun8i)</small>&nbsp; || 4 x Cortex-A7 CPU-core&nbsp;<br />
|-<br />
| [[H3|Allwinner H3]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=47</ref> || <small>(sun8i)</small>&nbsp; || 4 x Cortex-A7 CPU-core&nbsp;<br />
|-<br />
| [[H8|Allwinner H8]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=46</ref> || <small>(sun8i)</small> || 8 x Cortex-A7 CPU-core<br />
|-<br />
| [[H80|Allwinner H80]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=46</ref> || <small>(sun8i)</small> || 8 x Cortex-A7 CPU-core<br />
|}<br />
<br />
'''64-bit'''<br />
{| class="wikitable"<br />
| [[H5|Allwinner H5]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=57</ref>&nbsp; || <small>(sun50i)</small>&nbsp; || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[H6|Allwinner H6]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=66</ref>&nbsp; || <small>(sun50i)</small>&nbsp; || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[H64|Allwinner H64]]<ref>http://web.archive.org/web/20160425223052/http://www.allwinnertech.com/en/clq/H_series/6100.html</ref> || <small>(sun50i)</small> || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[H313|Allwinner H313]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=90</ref> || <small>(sun50i)</small> || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[H616|Allwinner H616]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=89</ref> || <small>(sun50i)</small> || 4 x Cortex-A53 CPU-core<br />
|}<br />
<br />
== "R"-Series ==<br />
<br />
{| class="wikitable"<br />
| [[R6|Allwinner R6]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=79</ref> || <small>(sun3i)</small> || 1 x Cortex-A9 CPU-core<br />
|-<br />
| [[R7|Allwinner R7]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=82</ref> || <small>(sun8i)</small> || 1 x Cortex-A7 CPU-core<br />
|-<br />
| [[R8|Allwinner R8]]<ref>http://web.archive.org/web/20160510053338/http://www.allwinnertech.com/en/clq/R_series/2015/0514/R8.html</ref> || <small>(sun5i)</small>&nbsp; || 1 x Cortex-A8 CPU-core<br />
|-<br />
| [[R11|Allwinner R11]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=83</ref> || <small>(sun8i)</small> || 1 x Cortex-A7 CPU-core<br />
|-<br />
| [[R16|Allwinner R16]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=51</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[R40|Allwinner R40]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=56</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[R58|Allwinner R58]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=49</ref>&nbsp; || <small>(sun8i)</small> || 8 x Cortex-A7 CPU-core<br />
|-<br />
| [[R311|Allwinner R311]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=84</ref>&nbsp; || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[R328|Allwinner R328]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=85</ref>&nbsp; || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|}<br />
<br />
The Allwinner R8 is repackaged version of the A13. This SoC gets used in the minicomputer presented in Next Thing Co.'s [[NextThingCo CHIP|''C.H.I.P.'']] kickstarter project ("The $9 computer")<ref>http://nextthing.co/</ref>.<br />
<br />
By comparing the product pages the R16 seems to be a relabeled version of A33. This is somewhat confirmed by the (identical) SoC ID the BROM reports.<ref>https://groups.google.com/d/msg/linux-sunxi/vx6oQMy-nis/vgVc8d1KBAAJ</ref><br />
<br />
'''64-bit'''<br />
{| class="wikitable"<br />
| [[R18|Allwinner R18]]|| <small>sun50i</small> || 4 x Cortex-A53 CPU-core<br />
|}<br />
<br />
== "T"-series ==<br />
<br />
{| class="wikitable"<br />
| [[T2|Allwinner T2]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=39</ref> || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|-<br />
| [[T3|Allwinner T3]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=41</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[T7|Allwinner T7]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=71</ref> || <small>(sun8i)</small> || 6 x Cortex-A7 CPU-core<br />
|-<br />
| [[T8|Allwinner T8]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=33</ref> || <small>(sun8i)</small> || 8 x Cortex-A7 CPU-core<br />
|}<br />
<br />
== "V"-series ==<br />
<br />
{| class="wikitable"<br />
| [[V3|Allwinner V3]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=37</ref> || <small>(sun8i)</small> || 1 x Cortex-A7 CPU-core<br />
|-<br />
| [[V3s|Allwinner V3s]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=38</ref> || <small>(sun8i)</small> || 1 x Cortex-A7 CPU-core<br />
|-<br />
| [[V5|Allwinner V5]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=70</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[V40|Allwinner V40]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=36</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[V66|Allwinner V66]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=35</ref> || <small>(sun8i)</small> || 8 x Cortex-A7 CPU-core<br />
|-<br />
| [[V316|Allwinner V316]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=87</ref> || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|-<br />
| [[V536|Allwinner V536]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=88</ref> || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|}<br />
<br />
== "F"-Series ==<br />
:'''{{note|The F series is not supported by the linux-sunxi community due to lack of developers and hardware. ''sun3i'' have only official linux support, ''sunii'' have no linux support, only Allwinner's "Melis" RTOS.}}'''<br />
<br />
Based on ARMv5 ARM926-EJS core and currently targeted for low market devices such as cheap ebook readers, etc.<br />
<br />
F1C700 seems to be a remarked A13, and it's ARMv7.<br />
<br />
{| class="wikitable"<br />
| [[C100|Boxchip C100]] || <small>(sun3i)</small><br />
|-<br />
| [[E200|Boxchip E200]] || <small>(sun3i)</small><br />
|-<br />
| [[F10|Boxchip F10]] <small>aka SoChip SC9800 aka Teclast T8100</small>&nbsp; || <small>(sunii)</small><br />
|-<br />
| [[F13|Boxchip F13]] || <small>(sunii)</small><br />
|-<br />
| [[F13|Boxchip F15]] <small>aka SoChip SC8600 aka Teclast T7200</small> || <small>(sunii)</small><br />
|-<br />
| [[F18|Boxchip F18]] || <small>(sunii)</small><br />
|-<br />
| [[F20|Boxchip F20]] || <small>(sun3i)</small><br />
|-<br />
| [[F23|Allwinner F23]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=30</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C100A|Allwinner F1C100A]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=29</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C100s|Allwinner F1C100s]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=73</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C200s|Allwinner F1C200s]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=74</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C500s|Allwinner F1C500s]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=75</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C600|Allwinner F1C600]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=28</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C700|Allwinner F1C700]] || <small>(sun5i)</small><br />
|-<br />
| [[F1C800|Allwinner F1C800]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=76</ref> || <small>(suniv)</small><br />
|}<br />
<br />
== "MR"-series ==<br />
<br />
{| class="wikitable"<br />
| [[MR100|Allwinner MR100]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=77</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[MR133|Allwinner MR133]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=86</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|}<br />
<br />
= 2013 naming scheme change =<br />
<br />
Initially, Allwinner named their SoCs chronologically:<br />
* sun4i = A10<br />
* sun5i = A13/A10s<br />
* sun6i = A31<br />
* sun7i = A20<br />
<br />
But, somewhere in 2013, Allwinner decided to update their naming scheme to be based on the ARM core used instead: (taken from the A80 SDK kernel code). Note: SoCs with ? has never appeared on Allwinner's website. <ref>https://github.com/tinalinux/brandy/blob/r40-v1.y/SUNXI_README</ref><br />
<br />
{| class="wikitable"<br />
! sunxi (arm cores) !! sunxiwx (soc id) !! p (rev id) !! soc name !! cores !! notes<br />
|-<br />
| sun3i (arm926ejs) || sun3iw1 (0x1663) || sun3iw1p1 || [[F1C100s]], [[F1C100A]], [[F1C200s]], [[F1C500]], [[F1C600]], [[R6]] || 1xARM926EJ-S<br />
|-<br />
| style="text-align: left;" rowspan="4" | sun4i (cortex-a8) <br />
| sun4iw1 (0x1623) || sun4iw1p1 || [[A10]] || 1xCortex-A8<br />
|-<br />
| style="text-align: left;" rowspan="3" | sun4iw2 (0x1625)<br />
| sun4iw2p1 || [[A13]] || 1xCortex-A8<br />
|-<br />
| sun4iw2p2 || [[A12]] || ?<br />
|-<br />
| sun4iw2p3 || [[A10s]] || 1xCortex-A8<br />
|-<br />
| style="text-align: left;" rowspan="19" | sun8i <br />
(cortex-a7 smp)<br />
<br />
| style="text-align: left;" rowspan="2" | sun8iw1 (0x1633)<br />
<br />
| sun8iw1p1 || [[A31]] || 4xCortex-A7<br />
|-<br />
| sun8iw1p2 || [[A31s]] || 4xCortex-A7<br />
|-<br />
| style="text-align: left;" rowspan="2" | sun8iw2 (0x1651)<br />
<br />
| sun8iw2p1 || [[A20]] || 2xCortex-A7<br />
|-<br />
| sun8iw2p2 || ? || ?<br />
|-<br />
| style="text-align: left;" rowspan="2" | sun8iw3 (0x1650)<br />
<br />
| sun8iw3p1 || [[A23]] || 2xCortex-A7<br />
|-<br />
| sun8iw3p2 || ? || ?<br />
|-<br />
| sun8iw5 (0x1667) || sun8iw5p1 || [[A33]] || 4xCortex-A7<br />
|-<br />
| sun8iw6 (0x1673) || sun8iw6p1 || [[A83T]] || 8xCortex-A7<br />
|-<br />
| sun8iw7 (0x1680) || sun8iw7p1 || [[H3]], [[H2+]] || 4xCortex-A7<br />
|-<br />
| style="text-align: left;" rowspan="2" | sun8iw8 (0x1681)<br />
<br />
| sun8iw8p1 || [[V3]], [[V3s]] || 1xCortex-A7 || called V30 in allwinner's kernel source<br />
|-<br />
| sun8iw8p2 || ? || ? || called V33 in allwinner's kernel source<br />
|-<br />
| sun8iw10 (0x1699) || sun8iw10p1 || [[B288]], [[B100]] || 2xCortex-A7<br />
|-<br />
| style="text-align: left;" rowspan="4" | sun8iw11 (0x1701)<br />
<br />
| sun8iw11p1 || [[R40]], [[V40]], [[T3]], [[A20e]]? || 4xCortex-A7<br />
|-<br />
| sun8iw11p2 || ?? || 4xCortex-A7<br />
|-<br />
| sun8iw11p3 || ?? || 4xCortex-A7<br />
|-<br />
| sun8iw11p4 || ?? || 4xCortex-A7<br />
|-<br />
| sun8iw12 (0x1721) || sun8iw12p1 || [[V5]] || 4xCortex-A7<br />
|-<br />
| sun8iw15 (0x1755) || sun8iw15p1 || [[R311]] || 4xCortex-A7<br />
|-<br />
| sun8iw16 (0x1816) || sun8iw16p1 || [[V356]] || 2xCortex-A7<br />
|-<br />
| sun8iw17 (0x1708) || sun8iw17p1 || [[T7]] || 6xCortex-A7<br />
|-<br />
| style="text-align: left;" rowspan="2" | sun9i <br />
(cortex-a15/cortex-a7 big.LITTLE) <br />
<br />
| style="text-align: left;" rowspan="2" | sun9iw1 (0x1639)<br />
| sun9iw1p1 || [[A80]] || 4xCortex-A7 + 4xCortex-A15<br />
|-<br />
| sun9iw1p2 || [[A80T]] || ?<br />
|-<br />
| style="text-align: left;" rowspan="5" | sun50i <br />
(cortex-a53 smp) <br />
| sun50iw1 (0x1689) || sun50iw1p1 || [[A64]] || 4xCortex-A53<br />
|-<br />
| sun50iw2 (0x1718) || sun50iw2p1 || [[H5]] || 4xCortex-A53<br />
|-<br />
| sun50iw3 (0x1719) || sun50iw3p1 || [[A63]] || 4xCortex-A53<br />
|-<br />
| sun50iw6 (0x1728) || sun50iw6p1 || [[H6]] || 4xCortex-A53<br />
|-<br />
| sun50iw9 (?) || sun50iw9p1<ref>https://androidpctv.com/review-tanix-tx6s-opinion</ref> || [[H616]] || 4xCortex-A53<br />
|}<br />
<br />
This new naming scheme is of absolutely no value with respect to the rest of the SoC. The actual ARM core(s) used are usually the least important piece of information for SoC support. This table completely ignores the fact that A20 is an updated A10 and is pin compatible. It also ignores the fact that A31 introduced a lot of changes which were carried on to the A23/A33 and possibly A80 parts. It therefore is quite likely that this naming scheme was purely a marketing decision, and that Allwinner marketing will change its mind again.<br />
<br />
= Features =<br />
* CPU: ARMv7-A [http://en.wikipedia.org/wiki/ARM_Cortex-A7 Cortex-A7], [http://en.wikipedia.org/wiki/ARM_Cortex-A15 Cortex-A15] or [http://en.wikipedia.org/wiki/ARM_Cortex-A8 Cortex-A8] Central Processor Unit with (co-)processor extensions:<br />
** Advanced SIMD: [http://en.wikipedia.org/wiki/ARM_architecture#Advanced_SIMD_.28NEON.29 NEON] (ARM's extended general-purpose advanced SIMD vector processing extension engine)<br />
** [[Vector Floating Point Unit]] ([http://en.wikipedia.org/wiki/ARM_architecture#Floating-point_.28VFP.29 VFPU]): ARM VFPv3 lite (Cortex-A8) / VFPv4 (Cortex-A7)<br />
** Security Extensions: <br />
*** [http://en.wikipedia.org/wiki/ARM_architecture#Security_extensions_.28TrustZone.29 TrustZone] secure world<br />
*** [[Security_System|Security accelerator]] supporting AES, DES, 3DES, SHA-1, MD5 and pseudo-random number generation<br />
** [http://en.wikipedia.org/wiki/ARM_architecture#Thumb-2 Thumb-2] instruction set extension for optimized code to reduce memory footprint and improve performance<br />
* GPU: [[Mali400]], Mali400-MP2, SGX544 or PowerVR G6230 Graphics Procesor Unit, supporting OpenGL ES2.<br />
* VPU: [[Cedar Engine]] (Video Processor Unit for audio and video hardware decoding or encoding)<br />
* HDMI-transmitter with [http://en.wikipedia.org/wiki/HDMI#CEC HDMI CEC] (Consumer Electronics Control), with exception of A13 which lacks HDMI-transmitter and SATA-controller<ref>[http://olimex.wordpress.com/2012/04/24/cortex-a8-in-tqfp-sure-allwinner-a13/ "Cortex A8 in TQFP? sure Allwinner A13"] ''Retrieved 23 September 2012''</ref><br />
* Hardware virtualization capabilities (Cortex-A7 only).<br />
* Up to 4GB memory (Cortex-A8), Up to 1TB memory with LPAE (Cortex-A7 only).<br />
<br />
== Comparison table ==<br />
{| class="wikitable"<br />
! scope="row" | !! [[A10]] !! [[A10s]] !! [[A13]] !! [[A20]] !! [[A23]] !! [[A31]] !! [[A31s]] !! [[A33]] !! [[A80]]<br />
|-<br />
! scope="row" | Generation <br />
| sun4i || sun5i || sun5i || sun7i || sun8i || sun6i || sun6i || sun8i || sun9i <br />
|-<br />
! scope="row" | CPU<br />
| Cortex-A8 || Cortex-A8 || Cortex-A8 || Cortex-A7 || Cortex-A7 ||Cortex-A7 || Cortex-A7 || Cortex-A7 || Cortex-A7 / A15 <br />
|-<br />
! scope="row" | CPU Maximum frequency<br />
| 1 GHz|| 1 GHz || 1 GHz|| 960 MHz|| 1.5 GHz || ? GHz || ? GHz || 1.5 GHz || 2 (??) GHz<br />
|-<br />
! scope="row" | Cores<br />
| 1 || 1 || 1 || 2 || 2 || 4 || 4 || 4 || 2 x 4<br />
|-<br />
! scope="row" | Extensions<br />
| NEON, VFPv3, Thumb-2 || NEON, VFPv3, Thumb-2 || NEON, VFPv3, Thumb-2 || NEON, VFPv3 / VFPv4, Thumb-2 ||NEON, VFPv3 / VFPv4, Thumb-2 || NEON, VFPv3 / VFPv4, Thumb-2 || NEON, VFPv3 / VFPv4, Thumb-2 || NEON, VFPv3 / VFPv4, Thumb-2 || ? (A80)<br />
|-<br />
! scope="row" | Memory<br />
| DDR2, DDR3</br> (max 2GB @ DDR800) || DDR2, DDR3</br> (max 2GB @ DDR800) || DDR2, DDR3</br> (max 512MB @ DDR800) || LPDDR3, DDR3,</br>LPDDR2 || DDR3</br>(max 1GB) || 2-channel DDR3, LPDDR2, </br>2-channel DDR3L, DDR3U || DDR3, DDR3L, LPDDR2 || single-channel DDR3, DDR3L</br>(max 1GB) || 2-channel DDR3, DDR3L, LPDDR3, LPDDR2</br> up to 8GB<br />
|-<br />
! scope="row" | GPU<br />
| [[Mali400]]</br>320&nbsp;MHz || [[Mali400]]</br>320&nbsp;MHz || [[Mali400]]</br>320&nbsp;MHz || [[Mali400]]-MP2</br>350&nbsp;MHz || [[Mali400]]-MP2 || SGX544</br>200&nbsp;MHz || SGX544</br>200&nbsp;MHz || [[Mali400]]-MP2 || 64-core PowerVR G6230<br />
|-<br />
! scope="row" | GPU API<br />
| OpenGL ES 2.0, OpenVG 1.1 || OpenGL ES 2.0, OpenVG 1.1 || OpenGL ES 2.0, OpenVG 1.1 || OpenGL ES 2.0, OpenVG 1.1 || OpenGL ES 2.0, OpenVG 1.1 || OpenGL ES 2.0, OpenVG 1.1, OpenCL 1.1, and DirectX 9.3 || OpenGL ES 2.0, OpenVG 1.1, OpenCL 1.1, and DirectX 9.3 || OpenGL ES 2.0, OpenVG 1.1 || OpenGL 3.x, OpenGL ES Next,3.0,2.0, Open CL 1.x, DirectX 11 level 9_3/10_0<ref>http://www.imgtec.com/news/detail.asp?ID=845</ref><br />
|-<br />
! scope="row" | [[Cedar Engine|Video decoder]]<br />
| 2160p || 1080p || 1080p || 2160p, 4K×2K, 1080p 3D || 1080p@60fps || 2160p, 4K×2K, 1080p 3D || 2160p, 1080p 3D || 1080p@60fps || ? (A80)<br />
|-<br />
! scope="row" | [[Cedar Engine|Video encoder]]<br />
| H.264 1080p@30fps, JPEG || H.264 1080p@30fps, JPEG || H.264 1080p@30fps, JPEG || H.264 1080p@30fps, JPEG || 1080p@60fps || H.264 1080p@60fps, JPEG || H264 1080p@30fps, 720p@60fps || H.264 1080p@60fps, JPEG || H.264 HP/VP8 4Kx2K@30fp<br />
|-<br />
! scope="row" | Audio decoder<br />
| AC3, DTS || ? || ? || AC3, DTS || - || ? (A31) || ? (A31S) || ? (A33) || ? (A80)<br />
|-<br />
! scope="row" | Video interfaces<br />
| HDMI 1.3, YPbPr, VGA, CPU/RGB/LVDS LCD || HDMI 1.3, RGB/LVDS LCD || RGB LCD, VGA|| HDMI 1.4, CVBS, YPbPr, VGA, CPU/RGB/LVDS LCD || CPU/RGB/LVDS LCD, MIPI DSI || HDMI 1.4, MIPI DSI, 2-channel LVDS, 2-channel RGB LCD || HDMI 1.4, LVDS, RGB LCD || CPU/RGB/LVDS LCD, MIPI DSI || HDMI 4K, RGB LCD 2048x1536@60fps, dual-channel LVDS 1920x1080@60fps, 4-lane MIPI DSI 1920x1200@60fps, 4-lane eDP 2560x1600@60fps<br />
|-<br />
! scope="row" | Audio interfaces<br />
| I2S, SPDIF, AC97 || I2S, AC97 || I2S, AC97 || I2S, PCM, AC97 || I2S, PCM || 2 I2S, 2 PCM || I2S, 2 PCM || ? (A33) || ? (A80)<br />
|-<br />
! scope="row" | USB OTG<br />
| 1 || 1 || 1 || 1 || 1 || 1 || 1 || ? (A33) || 1<br />
|-<br />
! scope="row" | USB Host<br />
| 2 || 1 || 1 || 2 || 1 || 2 || 2 || ? (A33) || 2x USB Host, USB 3.0/2.0 Dual-Role (host/device)<br />
|-<br />
! scope="row" | Ethernet<br />
| EMAC || EMAC || - || EMAC/GMAC || - || GMAC || GMAC || - || GMAC<br />
|-<br />
! scope="row" | Storage<br />
| NAND (max 64GB), SATA II, SD Card 3.0 || NAND (max 64GB), SD Card 3.0 || NAND (max 64GB), SD Card 3.0 || NAND, MMC, [http://olimex.wordpress.com/2013/04/05/allwinners-a10-and-a20-are-they-really-pin-to-pin-compatible-and-drop-in-replacement/#comment-5452 SATA] || raw NAND, eMMC, SD card || 4 x SD Card, eMMC NAND, 2-channel raw NAND || 4 x SD Card, eMMC NAND, raw NAND || 3 x SD Card, eMMC NAND, raw NAND || 4 x SD/MMC<br />
|-<br />
! scope="row" | Package<br />
| BGA441</br>19&nbsp;mm&nbsp;×&nbsp;19&nbsp;mm</br>0.80&nbsp;mm Pitch || BGA336</br>14&nbsp;mm&nbsp;×&nbsp;14&nbsp;mm</br>0.65&nbsp;mm Pitch || eLQFP176</br>20&nbsp;mm&nbsp;×&nbsp;20&nbsp;mm ||BGA441</br>19&nbsp;mm&nbsp;×&nbsp;19&nbsp;mm</br>0.80&nbsp;mm Pitch || FBGA280</br>14&nbsp;mm&nbsp;x&nbsp;14&nbsp;mm&nbsp;x&nbsp;1.4&nbsp;mm</br>0.80&nbsp;mm Pitch || BGA609</br>18&nbsp;mm&nbsp;×&nbsp;8&nbsp;mm</br>0.65&nbsp;mm Pitch || ? (A31S) || ? (Allwinner: pin compatible with A23) || ? (A80)<br />
|-<br />
! scope="row" | Lithography<br />
| 55 nm || 55 nm|| 55 nm || 40 nm || 40 nm || 40 nm || 40 nm || 40 nm || 28 nm<br />
|}<br />
<ref>http://blog.thinkteletronics.com/all-mobile-socsolutions/ All Mobile Soc/Solutions.</ref><br />
<br />
= References =<br />
<references /><br />
<br />
[[Category:System on Chip]]</div>
Frozeus
https://linux-sunxi.org/index.php?title=Allwinner_SoC_Family&diff=23270
Allwinner SoC Family
2020-04-13T23:23:25Z
<p>Frozeus: Add V356</p>
<hr />
<div>= SoC series =<br />
'''A''' series processors are used for mobile applications, mainly referring to tablet application here;<br />
<br />
'''B''' for "Book", used for E-book tablet reader. <br />
<br />
'''H''' for “Homlet”, mainly used in home entertainment applications, including smart OTT boxes, HDMI mini PCs, gaming boxes, etc;<br />
<br />
'''V''' for video-related applications, including video surveillance, automotive DVR, etc;<br />
<br />
'''T''' series processors target the Automotive products like ADAS. <br />
<br />
'''F''' series are processors based on Allwinner’s melis OS, mainly used in smart video radios, video MP5, etc;<br />
<br />
== "A"-Series ==<br />
Based on ARMv7 Cortex-A cores (Cortex-A7, A8 and A15) targeted for high-end devices like digital media players, tablets, and netbooks:<br />
{| class="wikitable"<br />
| [[A10|Allwinner A10]] || <small>(sun4i)</small> || 1 x Cortex-A8 CPU-core<br />
|-<br />
| [[A13|Allwinner A13]] || <small>(sun5i)</small> || 1 x Cortex-A8 CPU-core<br />
|-<br />
| [[A10s|Allwinner A10s]] || <small>(sun5i)</small> || 1 x Cortex-A8 CPU-core<br />
|-<br />
| [[A20|Allwinner A20]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=45</ref> || <small>(sun7i)</small> || 2 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A23|Allwinner A23]] || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A31|Allwinner A31]] || <small>(sun6i)</small> || 4 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A31s|Allwinner A31s]] || <small>(sun6i)</small> || 4 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A33|Allwinner A33]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=23</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A40i|Allwinner A40i]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=69</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A50|Allwinner A50]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=72</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-cores<br />
|-<br />
| [[A80|Allwinner A80]] || <small>(sun9i)</small> || 4 x Cortex-A7 CPU-cores + 4 x Cortex-A15 CPU-cores&nbsp;<br /><small>(using ARM big.LITTLE heterogeneous CPU architecture)</small><br />
|-<br />
| [[A83T|Allwinner A83T]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=24</ref> || <small>(sun8i)</small>&nbsp; || 8 x Cortex-A7 CPU-cores<br />
|}<br />
<br />
'''64-bit'''<br />
{| class="wikitable"<br />
| [[A63|Allwinner A63]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=67</ref> || <small>(sun50i)</small>&nbsp; || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[A64|Allwinner A64]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=9</ref> || <small>(sun50i)</small>&nbsp; || 4 x Cortex-A53 CPU-core<br />
|}<br />
<br />
== "B"-series ==<br />
<br />
{| class="wikitable"<br />
| [[B288|Allwinner B288]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=59</ref> || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|-<br />
| [[B300|Allwinner B300]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=86</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|}<br />
<br />
== "H"-Series ==<br />
Based on ARMv7/ARMv8 Cortex-A cores (A7/A53) targeted for video OTT (over-the-top) boxes and high-end gaming consoles:<br />
{| class="wikitable"<br />
| [[H2+|Allwinner H2+]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=62</ref> || <small>(sun8i)</small>&nbsp; || 4 x Cortex-A7 CPU-core&nbsp;<br />
|-<br />
| [[H3|Allwinner H3]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=47</ref> || <small>(sun8i)</small>&nbsp; || 4 x Cortex-A7 CPU-core&nbsp;<br />
|-<br />
| [[H8|Allwinner H8]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=46</ref> || <small>(sun8i)</small> || 8 x Cortex-A7 CPU-core<br />
|-<br />
| [[H80|Allwinner H80]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=46</ref> || <small>(sun8i)</small> || 8 x Cortex-A7 CPU-core<br />
|}<br />
<br />
'''64-bit'''<br />
{| class="wikitable"<br />
| [[H5|Allwinner H5]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=57</ref>&nbsp; || <small>(sun50i)</small>&nbsp; || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[H6|Allwinner H6]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=66</ref>&nbsp; || <small>(sun50i)</small>&nbsp; || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[H64|Allwinner H64]]<ref>http://web.archive.org/web/20160425223052/http://www.allwinnertech.com/en/clq/H_series/6100.html</ref> || <small>(sun50i)</small> || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[H313|Allwinner H313]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=90</ref> || <small>(sun50i)</small> || 4 x Cortex-A53 CPU-core<br />
|-<br />
| [[H616|Allwinner H616]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=89</ref> || <small>(sun50i)</small> || 4 x Cortex-A53 CPU-core<br />
|}<br />
<br />
== "R"-Series ==<br />
<br />
{| class="wikitable"<br />
| [[R6|Allwinner R6]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=79</ref> || <small>(sun3i)</small> || 1 x Cortex-A9 CPU-core<br />
|-<br />
| [[R7|Allwinner R7]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=82</ref> || <small>(sun8i)</small> || 1 x Cortex-A7 CPU-core<br />
|-<br />
| [[R8|Allwinner R8]]<ref>http://web.archive.org/web/20160510053338/http://www.allwinnertech.com/en/clq/R_series/2015/0514/R8.html</ref> || <small>(sun5i)</small>&nbsp; || 1 x Cortex-A8 CPU-core<br />
|-<br />
| [[R11|Allwinner R11]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=83</ref> || <small>(sun8i)</small> || 1 x Cortex-A7 CPU-core<br />
|-<br />
| [[R16|Allwinner R16]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=51</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[R40|Allwinner R40]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=56</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[R58|Allwinner R58]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=49</ref>&nbsp; || <small>(sun8i)</small> || 8 x Cortex-A7 CPU-core<br />
|-<br />
| [[R311|Allwinner R311]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=84</ref>&nbsp; || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[R328|Allwinner R328]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=85</ref>&nbsp; || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|}<br />
<br />
The Allwinner R8 is repackaged version of the A13. This SoC gets used in the minicomputer presented in Next Thing Co.'s [[NextThingCo CHIP|''C.H.I.P.'']] kickstarter project ("The $9 computer")<ref>http://nextthing.co/</ref>.<br />
<br />
By comparing the product pages the R16 seems to be a relabeled version of A33. This is somewhat confirmed by the (identical) SoC ID the BROM reports.<ref>https://groups.google.com/d/msg/linux-sunxi/vx6oQMy-nis/vgVc8d1KBAAJ</ref><br />
<br />
'''64-bit'''<br />
{| class="wikitable"<br />
| [[R18|Allwinner R18]]|| <small>sun50i</small> || 4 x Cortex-A53 CPU-core<br />
|}<br />
<br />
== "T"-series ==<br />
<br />
{| class="wikitable"<br />
| [[T2|Allwinner T2]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=39</ref> || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|-<br />
| [[T3|Allwinner T3]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=41</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[T7|Allwinner T7]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=71</ref> || <small>(sun8i)</small> || 6 x Cortex-A7 CPU-core<br />
|-<br />
| [[T8|Allwinner T8]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=33</ref> || <small>(sun8i)</small> || 8 x Cortex-A7 CPU-core<br />
|}<br />
<br />
== "V"-series ==<br />
<br />
{| class="wikitable"<br />
| [[V3|Allwinner V3]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=37</ref> || <small>(sun8i)</small> || 1 x Cortex-A7 CPU-core<br />
|-<br />
| [[V3s|Allwinner V3s]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=38</ref> || <small>(sun8i)</small> || 1 x Cortex-A7 CPU-core<br />
|-<br />
| [[V5|Allwinner V5]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=70</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[V40|Allwinner V40]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=36</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[V66|Allwinner V66]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=35</ref> || <small>(sun8i)</small> || 8 x Cortex-A7 CPU-core<br />
|-<br />
| [[V316|Allwinner V316]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=87</ref> || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|-<br />
| [[V536|Allwinner V536]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=88</ref> || <small>(sun8i)</small> || 2 x Cortex-A7 CPU-core<br />
|}<br />
<br />
== "F"-Series ==<br />
:'''{{note|The F series is not supported by the linux-sunxi community due to lack of developers and hardware. ''sun3i'' have only official linux support, ''sunii'' have no linux support, only Allwinner's "Melis" RTOS.}}'''<br />
<br />
Based on ARMv5 ARM926-EJS core and currently targeted for low market devices such as cheap ebook readers, etc.<br />
<br />
F1C700 seems to be a remarked A13, and it's ARMv7.<br />
<br />
{| class="wikitable"<br />
| [[C100|Boxchip C100]] || <small>(sun3i)</small><br />
|-<br />
| [[E200|Boxchip E200]] || <small>(sun3i)</small><br />
|-<br />
| [[F10|Boxchip F10]] <small>aka SoChip SC9800 aka Teclast T8100</small>&nbsp; || <small>(sunii)</small><br />
|-<br />
| [[F13|Boxchip F13]] || <small>(sunii)</small><br />
|-<br />
| [[F13|Boxchip F15]] <small>aka SoChip SC8600 aka Teclast T7200</small> || <small>(sunii)</small><br />
|-<br />
| [[F18|Boxchip F18]] || <small>(sunii)</small><br />
|-<br />
| [[F20|Boxchip F20]] || <small>(sun3i)</small><br />
|-<br />
| [[F23|Allwinner F23]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=30</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C100A|Allwinner F1C100A]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=29</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C100s|Allwinner F1C100s]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=73</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C200s|Allwinner F1C200s]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=74</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C500s|Allwinner F1C500s]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=75</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C600|Allwinner F1C600]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=28</ref> || <small>(suniv)</small><br />
|-<br />
| [[F1C700|Allwinner F1C700]] || <small>(sun5i)</small><br />
|-<br />
| [[F1C800|Allwinner F1C800]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=76</ref> || <small>(suniv)</small><br />
|}<br />
<br />
== "MR"-series ==<br />
<br />
{| class="wikitable"<br />
| [[MR100|Allwinner MR100]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=77</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|-<br />
| [[MR133|Allwinner MR133]]<ref>http://www.allwinnertech.com/index.php?c=product&a=index&id=86</ref> || <small>(sun8i)</small> || 4 x Cortex-A7 CPU-core<br />
|}<br />
<br />
= 2013 naming scheme change =<br />
<br />
Initially, Allwinner named their SoCs chronologically:<br />
* sun4i = A10<br />
* sun5i = A13/A10s<br />
* sun6i = A31<br />
* sun7i = A20<br />
<br />
But, somewhere in 2013, Allwinner decided to update their naming scheme to be based on the ARM core used instead: (taken from the A80 SDK kernel code). Note: SoCs with ? has never appeared on Allwinner's website. <ref>https://github.com/tinalinux/brandy/blob/r40-v1.y/SUNXI_README</ref><br />
<br />
{| class="wikitable"<br />
! sunxi (arm cores) !! sunxiwx (soc id) !! p (rev id) !! soc name !! cores !! notes<br />
|-<br />
| sun3i (arm926ejs) || sun3iw1 (0x1663) || sun3iw1p1 || [[F1C100s]], [[F1C100A]], [[F1C200s]], [[F1C500]], [[F1C600]], [[R6]] || 1xARM926EJ-S<br />
|-<br />
| style="text-align: left;" rowspan="4" | sun4i (cortex-a8) <br />
| sun4iw1 (0x1623) || sun4iw1p1 || [[A10]] || 1xCortex-A8<br />
|-<br />
| style="text-align: left;" rowspan="3" | sun4iw2 (0x1625)<br />
| sun4iw2p1 || [[A13]] || 1xCortex-A8<br />
|-<br />
| sun4iw2p2 || [[A12]] || ?<br />
|-<br />
| sun4iw2p3 || [[A10s]] || 1xCortex-A8<br />
|-<br />
| style="text-align: left;" rowspan="19" | sun8i <br />
(cortex-a7 smp)<br />
<br />
| style="text-align: left;" rowspan="2" | sun8iw1 (0x1633)<br />
<br />
| sun8iw1p1 || [[A31]] || 4xCortex-A7<br />
|-<br />
| sun8iw1p2 || [[A31s]] || 4xCortex-A7<br />
|-<br />
| style="text-align: left;" rowspan="2" | sun8iw2 (0x1651)<br />
<br />
| sun8iw2p1 || [[A20]] || 2xCortex-A7<br />
|-<br />
| sun8iw2p2 || ? || ?<br />
|-<br />
| style="text-align: left;" rowspan="2" | sun8iw3 (0x1650)<br />
<br />
| sun8iw3p1 || [[A23]] || 2xCortex-A7<br />
|-<br />
| sun8iw3p2 || ? || ?<br />
|-<br />
| sun8iw5 (0x1667) || sun8iw5p1 || [[A33]] || 4xCortex-A7<br />
|-<br />
| sun8iw6 (0x1673) || sun8iw6p1 || [[A83T]] || 8xCortex-A7<br />
|-<br />
| sun8iw7 (0x1680) || sun8iw7p1 || [[H3]], [[H2+]] || 4xCortex-A7<br />
|-<br />
| style="text-align: left;" rowspan="2" | sun8iw8 (0x1681)<br />
<br />
| sun8iw8p1 || [[V3]], [[V3s]] || 1xCortex-A7 || called V30 in allwinner's kernel source<br />
|-<br />
| sun8iw8p2 || ? || ? || called V33 in allwinner's kernel source<br />
|-<br />
| sun8iw10 (0x1699) || sun8iw10p1 || [[B288]], [[B100]] || 2xCortex-A7<br />
|-<br />
| style="text-align: left;" rowspan="4" | sun8iw11 (0x1701)<br />
<br />
| sun8iw11p1 || [[R40]], [[V40]], [[T3]], [[A20e]]? || 4xCortex-A7<br />
|-<br />
| sun8iw11p2 || ?? || 4xCortex-A7<br />
|-<br />
| sun8iw11p3 || ?? || 4xCortex-A7<br />
|-<br />
| sun8iw11p4 || ?? || 4xCortex-A7<br />
|-<br />
| sun8iw12 (0x1721) || sun8iw12p1 || [[V5]] || 4xCortex-A7<br />
|-<br />
| sun8iw15 (0x1755) || sun8iw15p1 || [[R311]] || 4xCortex-A7<br />
|-<br />
| sun8iw16 (0x0x1816) || sun8iw16p1 || [[V356]] || 2xCortex-A7<br />
|-<br />
| sun8iw17 (0x1708) || sun8iw17p1 || [[T7]] || 6xCortex-A7<br />
|-<br />
| style="text-align: left;" rowspan="2" | sun9i <br />
(cortex-a15/cortex-a7 big.LITTLE) <br />
<br />
| style="text-align: left;" rowspan="2" | sun9iw1 (0x1639)<br />
| sun9iw1p1 || [[A80]] || 4xCortex-A7 + 4xCortex-A15<br />
|-<br />
| sun9iw1p2 || [[A80T]] || ?<br />
|-<br />
| style="text-align: left;" rowspan="5" | sun50i <br />
(cortex-a53 smp) <br />
| sun50iw1 (0x1689) || sun50iw1p1 || [[A64]] || 4xCortex-A53<br />
|-<br />
| sun50iw2 (0x1718) || sun50iw2p1 || [[H5]] || 4xCortex-A53<br />
|-<br />
| sun50iw3 (0x1719) || sun50iw3p1 || [[A63]] || 4xCortex-A53<br />
|-<br />
| sun50iw6 (0x1728) || sun50iw6p1 || [[H6]] || 4xCortex-A53<br />
|-<br />
| sun50iw9 (?) || sun50iw9p1<ref>https://androidpctv.com/review-tanix-tx6s-opinion</ref> || [[H616]] || 4xCortex-A53<br />
|}<br />
<br />
This new naming scheme is of absolutely no value with respect to the rest of the SoC. The actual ARM core(s) used are usually the least important piece of information for SoC support. This table completely ignores the fact that A20 is an updated A10 and is pin compatible. It also ignores the fact that A31 introduced a lot of changes which were carried on to the A23/A33 and possibly A80 parts. It therefore is quite likely that this naming scheme was purely a marketing decision, and that Allwinner marketing will change its mind again.<br />
<br />
= Features =<br />
* CPU: ARMv7-A [http://en.wikipedia.org/wiki/ARM_Cortex-A7 Cortex-A7], [http://en.wikipedia.org/wiki/ARM_Cortex-A15 Cortex-A15] or [http://en.wikipedia.org/wiki/ARM_Cortex-A8 Cortex-A8] Central Processor Unit with (co-)processor extensions:<br />
** Advanced SIMD: [http://en.wikipedia.org/wiki/ARM_architecture#Advanced_SIMD_.28NEON.29 NEON] (ARM's extended general-purpose advanced SIMD vector processing extension engine)<br />
** [[Vector Floating Point Unit]] ([http://en.wikipedia.org/wiki/ARM_architecture#Floating-point_.28VFP.29 VFPU]): ARM VFPv3 lite (Cortex-A8) / VFPv4 (Cortex-A7)<br />
** Security Extensions: <br />
*** [http://en.wikipedia.org/wiki/ARM_architecture#Security_extensions_.28TrustZone.29 TrustZone] secure world<br />
*** [[Security_System|Security accelerator]] supporting AES, DES, 3DES, SHA-1, MD5 and pseudo-random number generation<br />
** [http://en.wikipedia.org/wiki/ARM_architecture#Thumb-2 Thumb-2] instruction set extension for optimized code to reduce memory footprint and improve performance<br />
* GPU: [[Mali400]], Mali400-MP2, SGX544 or PowerVR G6230 Graphics Procesor Unit, supporting OpenGL ES2.<br />
* VPU: [[Cedar Engine]] (Video Processor Unit for audio and video hardware decoding or encoding)<br />
* HDMI-transmitter with [http://en.wikipedia.org/wiki/HDMI#CEC HDMI CEC] (Consumer Electronics Control), with exception of A13 which lacks HDMI-transmitter and SATA-controller<ref>[http://olimex.wordpress.com/2012/04/24/cortex-a8-in-tqfp-sure-allwinner-a13/ "Cortex A8 in TQFP? sure Allwinner A13"] ''Retrieved 23 September 2012''</ref><br />
* Hardware virtualization capabilities (Cortex-A7 only).<br />
* Up to 4GB memory (Cortex-A8), Up to 1TB memory with LPAE (Cortex-A7 only).<br />
<br />
== Comparison table ==<br />
{| class="wikitable"<br />
! scope="row" | !! [[A10]] !! [[A10s]] !! [[A13]] !! [[A20]] !! [[A23]] !! [[A31]] !! [[A31s]] !! [[A33]] !! [[A80]]<br />
|-<br />
! scope="row" | Generation <br />
| sun4i || sun5i || sun5i || sun7i || sun8i || sun6i || sun6i || sun8i || sun9i <br />
|-<br />
! scope="row" | CPU<br />
| Cortex-A8 || Cortex-A8 || Cortex-A8 || Cortex-A7 || Cortex-A7 ||Cortex-A7 || Cortex-A7 || Cortex-A7 || Cortex-A7 / A15 <br />
|-<br />
! scope="row" | CPU Maximum frequency<br />
| 1 GHz|| 1 GHz || 1 GHz|| 960 MHz|| 1.5 GHz || ? GHz || ? GHz || 1.5 GHz || 2 (??) GHz<br />
|-<br />
! scope="row" | Cores<br />
| 1 || 1 || 1 || 2 || 2 || 4 || 4 || 4 || 2 x 4<br />
|-<br />
! scope="row" | Extensions<br />
| NEON, VFPv3, Thumb-2 || NEON, VFPv3, Thumb-2 || NEON, VFPv3, Thumb-2 || NEON, VFPv3 / VFPv4, Thumb-2 ||NEON, VFPv3 / VFPv4, Thumb-2 || NEON, VFPv3 / VFPv4, Thumb-2 || NEON, VFPv3 / VFPv4, Thumb-2 || NEON, VFPv3 / VFPv4, Thumb-2 || ? (A80)<br />
|-<br />
! scope="row" | Memory<br />
| DDR2, DDR3</br> (max 2GB @ DDR800) || DDR2, DDR3</br> (max 2GB @ DDR800) || DDR2, DDR3</br> (max 512MB @ DDR800) || LPDDR3, DDR3,</br>LPDDR2 || DDR3</br>(max 1GB) || 2-channel DDR3, LPDDR2, </br>2-channel DDR3L, DDR3U || DDR3, DDR3L, LPDDR2 || single-channel DDR3, DDR3L</br>(max 1GB) || 2-channel DDR3, DDR3L, LPDDR3, LPDDR2</br> up to 8GB<br />
|-<br />
! scope="row" | GPU<br />
| [[Mali400]]</br>320&nbsp;MHz || [[Mali400]]</br>320&nbsp;MHz || [[Mali400]]</br>320&nbsp;MHz || [[Mali400]]-MP2</br>350&nbsp;MHz || [[Mali400]]-MP2 || SGX544</br>200&nbsp;MHz || SGX544</br>200&nbsp;MHz || [[Mali400]]-MP2 || 64-core PowerVR G6230<br />
|-<br />
! scope="row" | GPU API<br />
| OpenGL ES 2.0, OpenVG 1.1 || OpenGL ES 2.0, OpenVG 1.1 || OpenGL ES 2.0, OpenVG 1.1 || OpenGL ES 2.0, OpenVG 1.1 || OpenGL ES 2.0, OpenVG 1.1 || OpenGL ES 2.0, OpenVG 1.1, OpenCL 1.1, and DirectX 9.3 || OpenGL ES 2.0, OpenVG 1.1, OpenCL 1.1, and DirectX 9.3 || OpenGL ES 2.0, OpenVG 1.1 || OpenGL 3.x, OpenGL ES Next,3.0,2.0, Open CL 1.x, DirectX 11 level 9_3/10_0<ref>http://www.imgtec.com/news/detail.asp?ID=845</ref><br />
|-<br />
! scope="row" | [[Cedar Engine|Video decoder]]<br />
| 2160p || 1080p || 1080p || 2160p, 4K×2K, 1080p 3D || 1080p@60fps || 2160p, 4K×2K, 1080p 3D || 2160p, 1080p 3D || 1080p@60fps || ? (A80)<br />
|-<br />
! scope="row" | [[Cedar Engine|Video encoder]]<br />
| H.264 1080p@30fps, JPEG || H.264 1080p@30fps, JPEG || H.264 1080p@30fps, JPEG || H.264 1080p@30fps, JPEG || 1080p@60fps || H.264 1080p@60fps, JPEG || H264 1080p@30fps, 720p@60fps || H.264 1080p@60fps, JPEG || H.264 HP/VP8 4Kx2K@30fp<br />
|-<br />
! scope="row" | Audio decoder<br />
| AC3, DTS || ? || ? || AC3, DTS || - || ? (A31) || ? (A31S) || ? (A33) || ? (A80)<br />
|-<br />
! scope="row" | Video interfaces<br />
| HDMI 1.3, YPbPr, VGA, CPU/RGB/LVDS LCD || HDMI 1.3, RGB/LVDS LCD || RGB LCD, VGA|| HDMI 1.4, CVBS, YPbPr, VGA, CPU/RGB/LVDS LCD || CPU/RGB/LVDS LCD, MIPI DSI || HDMI 1.4, MIPI DSI, 2-channel LVDS, 2-channel RGB LCD || HDMI 1.4, LVDS, RGB LCD || CPU/RGB/LVDS LCD, MIPI DSI || HDMI 4K, RGB LCD 2048x1536@60fps, dual-channel LVDS 1920x1080@60fps, 4-lane MIPI DSI 1920x1200@60fps, 4-lane eDP 2560x1600@60fps<br />
|-<br />
! scope="row" | Audio interfaces<br />
| I2S, SPDIF, AC97 || I2S, AC97 || I2S, AC97 || I2S, PCM, AC97 || I2S, PCM || 2 I2S, 2 PCM || I2S, 2 PCM || ? (A33) || ? (A80)<br />
|-<br />
! scope="row" | USB OTG<br />
| 1 || 1 || 1 || 1 || 1 || 1 || 1 || ? (A33) || 1<br />
|-<br />
! scope="row" | USB Host<br />
| 2 || 1 || 1 || 2 || 1 || 2 || 2 || ? (A33) || 2x USB Host, USB 3.0/2.0 Dual-Role (host/device)<br />
|-<br />
! scope="row" | Ethernet<br />
| EMAC || EMAC || - || EMAC/GMAC || - || GMAC || GMAC || - || GMAC<br />
|-<br />
! scope="row" | Storage<br />
| NAND (max 64GB), SATA II, SD Card 3.0 || NAND (max 64GB), SD Card 3.0 || NAND (max 64GB), SD Card 3.0 || NAND, MMC, [http://olimex.wordpress.com/2013/04/05/allwinners-a10-and-a20-are-they-really-pin-to-pin-compatible-and-drop-in-replacement/#comment-5452 SATA] || raw NAND, eMMC, SD card || 4 x SD Card, eMMC NAND, 2-channel raw NAND || 4 x SD Card, eMMC NAND, raw NAND || 3 x SD Card, eMMC NAND, raw NAND || 4 x SD/MMC<br />
|-<br />
! scope="row" | Package<br />
| BGA441</br>19&nbsp;mm&nbsp;×&nbsp;19&nbsp;mm</br>0.80&nbsp;mm Pitch || BGA336</br>14&nbsp;mm&nbsp;×&nbsp;14&nbsp;mm</br>0.65&nbsp;mm Pitch || eLQFP176</br>20&nbsp;mm&nbsp;×&nbsp;20&nbsp;mm ||BGA441</br>19&nbsp;mm&nbsp;×&nbsp;19&nbsp;mm</br>0.80&nbsp;mm Pitch || FBGA280</br>14&nbsp;mm&nbsp;x&nbsp;14&nbsp;mm&nbsp;x&nbsp;1.4&nbsp;mm</br>0.80&nbsp;mm Pitch || BGA609</br>18&nbsp;mm&nbsp;×&nbsp;8&nbsp;mm</br>0.65&nbsp;mm Pitch || ? (A31S) || ? (Allwinner: pin compatible with A23) || ? (A80)<br />
|-<br />
! scope="row" | Lithography<br />
| 55 nm || 55 nm|| 55 nm || 40 nm || 40 nm || 40 nm || 40 nm || 40 nm || 28 nm<br />
|}<br />
<ref>http://blog.thinkteletronics.com/all-mobile-socsolutions/ All Mobile Soc/Solutions.</ref><br />
<br />
= References =<br />
<references /><br />
<br />
[[Category:System on Chip]]</div>
Frozeus
https://linux-sunxi.org/index.php?title=Linux_mainlining_effort&diff=23266
Linux mainlining effort
2020-04-12T22:50:56Z
<p>Frozeus: /* Planned for 5.7 */</p>
<hr />
<div>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.<br />
<br />
=Overview=<br />
The idea is to submit the code needed to run the Linux kernel on Allwinner SoCs upstream, ie. to the official Linux kernel.<br />
<br />
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.<ref>http://www.elinux.org/images/a/ad/Arm-soc-checklist.pdf</ref><ref>[http://www.cnx-software.com/2013/01/16/your-new-arm-soc-linux-support-check-list-elce-2012/ Your New ARM SoC Linux Support Check-List – ELCE 2012]</ref><br />
<br />
Where relevant, I have attempted to include who is currently working on an item, mostly separate from any particular mainlining goal.<br />
<br />
=Status=<br />
<br />
The [[Mainline_Kernel_Howto|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|Mainline U-Boot howto]].<br />
<br />
The [[:Category:Mainline_Kernel | Mainline Kernel category ]] gives an overview of currently supported devices.<br />
<br />
== Status Matrix ==<br />
<br />
The goal of this matrix is to give an easy view of work on each SoC worked on by linux-sunxi.<br />
<br />
{| class="wikitable" style="text-align: center; width: 100%;"<br />
|-<br />
! style="width: 13%; text-align: left;" colspan="2" | Model<br />
! [[F1C100s|F1C-<br>100s]]<br />
! [[A10]]<br />
! [[A10s]]<br />
! [[A13]]<br>[[R8]]<br />
! [[A20]]<br>[[T2]]<br />
! [[A23]]<br />
! [[A31]]<br />
! [[A33]]<br>[[R16]]<br />
! [[A64]]<br />
! [[A80]]<br />
! [[A83T]]<br />
! [[GR8]]<br />
! [[H3]]<br />
! [[H5]]<br />
! [[H6]]<br />
! [[R40]]<br>[[T3]]<br />
! [[V3]]|[[V3s]]<br>[[S3]]|[[S3L]]<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | AC97<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[Audio Codec]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 5.0<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: red;" | NO<br />
<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" rowspan="3" | ADC<br />
| style="text-align: left;" | GPADC<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| N/A<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: lightgreen;" | 4.12<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | Thermal<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: darkgreen;" | ?<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.7<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | Touch<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.16<br />
| N/A<br />
| style="background: lightgreen;" | 4.0<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: lightgreen;" | 4.9<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| rowspan="4" style="text-align: left;" | [[CSI|Camera]]<br />
<br />
| style="text-align: left;" | BT656<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.0<br />
<br />
|-<br />
| style="text-align: left;" | ISP<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | MIPI CSI<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | Parallel<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.0<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Clocks<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.10<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.10<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | CPUFreq (DVFS)<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[Cryptographic_Hardware_Accelerators|Crypto]]<br />
| N/A<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: darkgreen;" | ?<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Display (SimpleFB)<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen" | 4.16<br />
| style="background: lightgreen" | 4.16<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| rowspan="8" style="text-align: left;" | Display<br />
([https://dri.freedesktop.org/wiki/DRM/ DRM])<br />
<br />
| style="text-align: left;" | CVBS<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.9 ?<br />
| style="background: lightgreen;" | 4.7<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | HDMI Audio<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | HDMI CEC<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.14<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.17<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: orange;" | WIP<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | HDMI Video<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.13<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.17<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.19<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | LVDS<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.7<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.16<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | MIPI DSI<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | RGB<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.7<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.9<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" | VGA<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | DMA<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" rowspan="2" | [[Ethernet]]<br />
| style="text-align: left;" | [[Ethernet#EMAC|EMAC]]<br />
| rowspan="2"| N/A<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.11<br />
| rowspan="2"| N/A<br />
| style="background: lightgreen;" | 3.11 <br />
| rowspan="2"| N/A<br />
| N/A<br />
| rowspan="2"| N/A<br />
| style="background: lightgreen;" rowspan="2" | 4.15<br />
| style="background: lightgreen;" rowspan="2" | 5.1<br />
| style="background: lightgreen;" rowspan="2" | 4.16<br />
| rowspan="2"| N/A<br />
| style="background: lightgreen;" rowspan="2" | 4.15<br />
| style="background: lightgreen;" rowspan="2" | 4.15<br />
| style="background: lightgreen;" rowspan="2" | 5.0<br />
| style="background: lightgreen;" rowspan="2" | 4.18<br />
| style="background: lightgreen;" rowspan="2" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" | [[Ethernet#GMAC|GMAC]]<br />
<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.17<br />
<br />
|-<br />
| style="text-align: left;" rowspan="2" | GPU(3D)<br />
| style="text-align: left;" | [[Mali]]<br />
| N/A<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | [[PowerVR]]<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | HW Spinlocks<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| N/A<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[I2C]]<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.13<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | I2S<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | IOMMU<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[IR]]<br />
| style="background: red" | NO<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 3.17<br />
| N/A<br />
| style="background: lightgreen;" | 4.0<br />
| N/A<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Keypad<br />
| N/A<br />
| style="background: orange;" | WIP<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | WIP<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | LRADC<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | MsgBox<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Core_Stuff|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Core_Stuff|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Core_Stuff|WIP]]<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: orange;" | [[Linux_mainlining_effort#Core_Stuff|WIP]]<br />
| style="background: lightgreen;" | 5.8<br />
| N/A<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: lightgreen;" | 5.8<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[NAND]]<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 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 [[MTD_Driver#Challenges|this page]] </ref><br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9 <ref name="mlc"/><br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9 <ref name="mlc" /><br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9 <ref name="mlc" /><br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: red;" | NO<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | PCIe<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<ref name="h6-pcie">Allwinner H6 has a quirky PCIe controller that doesn't map the PCIe address space properly to CPU,<br />
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/</ref><br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Pinctrl<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[PMU]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: grey; color: white;" | ?<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[PWM_Controller|PWM]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.12<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[RSB]]<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.4<br />
| N/A<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.14<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[RTC]]<br />
| N/A<br />
| style="background: lightgreen;" | 3.14<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.10<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SATA]]<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | SD/ [[eMMC|MMC]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | SMP<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.18<br />
| N/A<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SPDIF]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.7<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.7<br />
| N/A<br />
| style="background: lightgreen;" | 4.9<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SPIdev|SPI]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.7<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SRAM Controller|SRAM]]<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 4.19<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 5.0 <br />
| style="background: lightgreen;" | 5.1 <br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[USB]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[USB_OTG_Controller_Register_guide#USB_OTG|USB OTG]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | USB3<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.5<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[Video_Engine|VE]] | [[Sunxi-Cedrus]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.2 <br />
| style="background: red;" | NO<br />
| style="background: darkgreen;" | ?<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Watchdog<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
! style="text-align: left;" colspan="2" | Model<br />
! [[F1C100s|F1C-<br>100s]]<br />
! [[A10]]<br />
! [[A10s]]<br />
! [[A13]]<br />
[[R8]]<br />
! [[A20]]<br>[[T2]]<br />
! [[A23]]<br />
! [[A31]]<br />
! [[A33]]<br />
[[R16]]<br />
! [[A64]]<br />
! [[A80]]<br />
! [[A83T]]<br />
! [[GR8]]<br />
! [[H3]]<br />
! [[H5]]<br />
! [[H6]]<br />
! [[R40]]<br />
[[T3]]<br />
! [[V3]]|[[V3s]]<br>[[S3]]|[[S3L]]<br />
<br />
|}<br />
<br />
<br />
{| class="wikitable" style="text-align: center;"<br />
|-<br />
! Legend<br />
|-<br />
| style="background: lightgreen;" | In Linux mainline since version x<br />
|-<br />
| style="background: darkgreen;" | Nobody works on it, but it should be compatible with already done drivers<br />
|-<br />
| style="background: orange;" | Somebody works on it<br />
|-<br />
| style="background: red;" | No support, nobody works on it<br />
|-<br />
| style="background: black; color: white;" | support impossible<br />
|-<br />
| style="background: grey; color: white;" | Status is unknown/to be completed<br />
|}<br />
<br />
== Work In Progress ==<br />
<br />
=== Core Stuff ===<br />
*[[AR100]] firmware (WiP: Samuel Holland) [https://github.com/crust-firmware/crust ARISC firmware for sunxi SoCs ]<br />
<br />
* [[A13]] PSCI Suspend / Resume / CPUIdle (WiP: Antoine Tenart) [http://lists.denx.de/pipermail/u-boot/2016-September/265453.html patch-v1]<br />
<br />
=== Major drivers ===<br />
* [[H6]] IOMMU WIP Maxime Ripard [https://patchwork.kernel.org/cover/11394841/ iommu: Add Allwinner H6 IOMMU driver v2] <br />
<br />
*[[H6]] Hypervisor for PCIe [https://forum.armbian.com/topic/13529-a-try-on-utilizing-h6-pcie-with-virtualization/ A try on utilizing H6 PCIe with "Virtualization"]<br />
<br />
* HDMI Audio [[A64]] / [[H3]] / [[H5]] / [[H6]] WIP Jernej Škrabec (jernej) / LibreELEC<br />
<br />
* [[R40]] MIPI-DSI WIP Jagan Teki [https://patchwork.kernel.org/cover/11314031/ drm/sun4i: Allwinner R40 MIPI-DSI support v3] <br />
<br />
* [[AC100]] Audio codec WiP Ondrej Jirman [https://megous.com/git/linux/commit/?h=orange-pi-5.5&id=170d38d650f67657600d4e0e868e0e7110b89ee1 digital part] [https://megous.com/git/linux/commit/?h=orange-pi-5.5&id=ee424255a6fb9280ac27c1953019b768ca973ca7 analog part]<br />
<br />
* [[F1C100s]] USB WIP George Hilliard [https://lore.kernel.org/patchwork/cover/1206936/ Support the Allwinner F1C100s USB stack]<br />
<br />
=== Minor drivers ===<br />
<!-- Please move the newest entry to the top --><br />
* [[A64]] hwspinlock WIP Nikolay Borisov [https://patchwork.kernel.org/cover/11373645/ Add support for hwspinlock on A64 SoC] <br />
* [[A83T]] / [[A64]] / [[H3]] hwspinlock WIP Corentin Labbe (montjoie) [https://lore.kernel.org/patchwork/patch/706512/ RFC,1/3][https://lore.kernel.org/patchwork/patch/706511/ RFC,2/3][https://lore.kernel.org/patchwork/patch/706513/ RFC,3/3]<br />
* [[A10]] / [[A20]] / [[A31]] HDMI Audio WIP Stefan Mavrodiev [https://lore.kernel.org/patchwork/cover/1177803/ Add support for sun4i HDMI audio]<br />
* [[H6]] Cpufreq (DVFS) Clément Péron [https://lore.kernel.org/patchwork/cover/1220505/ Add support for Allwinner H6 DVFS v1]<br />
* [[A80]] Thermal sensor WIP Philipp Rossak (embed-3d): https://github.com/embed-3d/linux/branches/all<br />
* [[H5]] Cpufreq (DVFS) WIP Chen-Yu Tsai [https://patchwork.kernel.org/cover/10787869/ arm64: dts: allwinner: h5: Enable CPU DVFS (cpufreq)]<br />
* [[R40]] PWM (WIP Hao Zhang [https://www.spinics.net/lists/kernel/msg2731498.html patch-v2])<br />
* [[A31]]/[[A31s]] PWM support (WiP: Siarhei Volkau [http://lists.infradead.org/pipermail/linux-arm-kernel/2017-February/486405.html patch-v1])<br />
* [[A20]] Keypad (WiP: Yassin Jaffer (ddc) [http://lists.infradead.org/pipermail/linux-arm-kernel/2015-September/370079.html patch])<br />
<br />
=== Drivers that can still be improved/added ===<br />
<br />
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.<br />
<br />
* sunxi-musb driver lacks DMA support (with current driver, USB gadgets are limited to PIO, limiting speed to 10MiB/s and causing large CPU)<br />
* DE2 driver has buggy layer support, see [https://patchwork.kernel.org/patch/11145803/]<br />
* DE1/DE2/DE3 writeback support<br />
* A64 audiocodec driver components (sun8i-codec and sun50i-codec-analog) lack support for jack detection<br />
<br />
== Planned for 5.9 ==<br />
<br />
== Planned for 5.8 ==<br />
* [[A63]] / [[A83T]] / [[H3]] / [[H5]] / [[H6]]<br />
** Message Box<br />
<br />
== Merged into 5.7 ==<br />
*[[A20]]<br />
** LVDS<br />
<br />
*[[A83T]] and [[A64]]<br />
** Rotate driver<br />
<br />
*[[H6]]<br />
** SPI<br />
<br />
*[[R40]]<br />
** Thermal<br />
<br />
New Devices Supported<br />
*[[A13]]<br />
** [[PocketBook Touch Lux 3]]<br />
*[[A64]]<br />
** [[PineTab]]<br />
** [[PinePhone]]<br />
*[[A20]]<br />
** Linutronix Testbox v2<br />
<br />
== Merged into 5.6 ==<br />
* [[A10]]<br />
** CSI (BT656 and Parallel)<br />
<br />
*[[A64]]<br />
** MIPI DSI<br />
** DVFS<br />
<br />
*[[A64]] / [[A83T]] / [[H3]] / [[H5]] / [[H6]]<br />
** Thermal<br />
<br />
*[[H6]]<br />
** PWM<br />
<br />
*[[H3]] / [[H5]] / [[H6]] / [[R40]]<br />
**PMU<br />
<br />
*[[R40]]<br />
** CSI (BT656 and Parallel)<br />
** SPI<br />
<br />
New Devices Supported<br />
* [[H5]]<br />
** ALL-H3-IT H5 board<br />
** ALL-H5-CC H5 board<br />
* [[H6]]<br />
** [[PineH64]] Model A<br />
<br />
== Merged into 5.5 ==<br />
*[[H3]]<br />
** Deinterlace driver<br />
<br />
*[[H6]]<br />
**Crypto<br />
**GPU(3D) Mali<br />
**USB3 PHY (for boards not needing vbus switching)<br />
<br />
*[[A64]] / [[A80]] / [[A83T]] / [[H3]] / [[H5]] / [[R40]] <br />
**Crypto<br />
<br />
* multiple SoCs<br />
** [[Cedrus]] HEVC/H.265<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** Emlid Neutis<br />
<br />
New Devices Supported<br />
* [[H3]]<br />
** [[FriendlyARM_NanoPi_Duo2]]<br />
<br />
== Merged into 5.4 ==<br />
* [[A20]]<br />
** CSI (BT656 and Parallel)<br />
* [[A64]]<br />
** IR<br />
* [[H6]]<br />
** IR<br />
** RTC<br />
** SPDIF<br />
New Devices Supported<br />
* [[A64]]<br />
** [[Olimex A64-OLinuXino]] eMMC<br />
* [[H6]]<br />
** [[Tanix TX6]]<br />
* [[S3]]<br />
** [[Lichee Zero Plus]]<br />
<br />
== Merged into 5.3 ==<br />
* [[A64]]<br />
** LRADC<br />
** RGB LCD<br />
* [[A83T]]<br />
** CSI (BT656 and Parallel)<br />
* [[H6]]<br />
** DMA<br />
** Watchdog<br />
* multiple SoCs<br />
** [[Cedrus]] h264<br />
<br />
== Merged into 5.2 ==<br />
* [[A83T]]<br />
** LRADC<br />
** USB OTG<br />
<br />
* [[H6]]<br />
** [[Cedrus]]<br />
<br />
* multiple SoCs<br />
** [[Mali Open Source Driver|Lima]]<br />
** [[Mali Open Source Driver|Panfrost]]<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** Banana-Pi-M2-Zero<br />
<br />
New Devices Supported<br />
* [[H6]]<br />
** [[Beelink GS1]]<br />
** [[Xunlong Orange Pi 3]]<br />
<br />
== Merged into 5.1 ==<br />
* A10<br />
** Cedrus<br />
** PMU<br />
<br />
* A20<br />
** Audio Codec improvements<br />
<br />
* A23<br />
** Display pipeline<br />
** LCD enabled on Q8 A23 tablets<br />
<br />
* A64<br />
** ARM Architectural Timer errata workaround<br />
** PMU<br />
** CSI (BT656 and Parallel)<br />
<br />
* A80<br />
** GMAC support<br />
<br />
* CSI in general<br />
** RGR565 support<br />
** JPEG pass-through support<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** [[Banana Pi M2+]]<br />
** [[Banana Pi M2 Ultra]]<br />
<br />
* [[LCD]] enabled on [[A13]] [[Q8]] tablets<br />
<br />
== Merged into 5.0 ==<br />
* A64<br />
** Cedrus<br />
** DTS changes for audio codec<br />
<br />
* F1C100s<br />
** initial F1C100s support<br />
<br />
* H6<br />
** Ethernet<br />
** DE3/HDMI support<br />
** USB 2.0<br />
<br />
* H3 / H5<br />
** CSI (BT656 and Parallel) Support<br />
<br />
* H5<br />
** Cedrus<br />
<br />
* R40<br />
** RTC<br />
<br />
* T3<br />
** initial T3 support<ref>https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b7badd1d7aa61087010803affa19bb83fb5a0af1</ref><br />
<br />
* V3s<br />
** CSI (BT656 and Parallel) Support<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** [[Sinovoip Banana Pi M2 Magic | Banana Pi M2 Magic]]<br />
** [[Banana Pi M3]]<br />
** [[Banana Pi M64]]<br />
** [[Cubietruck]]<br />
** [[Cubietech_Cubietruck_Plus|Cubietruck Plus]]<br />
<br />
New Devices Supported<br />
* [[Xunlong Orange Pi Lite 2]]<br />
<br />
== Merged into 4.20 ==<br />
<br />
* A13 / A20 / A33 / H3<br />
** Cedrus driver<br />
<br />
* A83T<br />
** IR receiver<br />
<br />
* A64<br />
** Cleanup for device tree files<br />
** HDMI support<br />
** Audio codec support (DTS changes will be merged in 5.0)<br />
<br />
* H3 / H5<br />
** SID<br />
<br />
* R40<br />
** SATA<br />
<br />
New Devices Supported<br />
* [[Pine64]] LTS<br />
* [[Xunlong Orange Pi One Plus]]<br />
* [[Xunlong Orange Pi Zero Plus 2]] (H3 variant)<br />
* [[Sinovoip Banana Pi M2+]] (H5 variant)<br />
<br />
== Merged into 4.19 ==<br />
<br />
* A10 / A13 / A20 / A23 / A33<br />
** SRAM controller / system control<br />
<br />
* A64<br />
** SRAM controller / system control<br />
** Display clocks and bus<br />
** RTC clock output<br />
** PWM<br />
** R_I2C<br />
<br />
* H3<br />
** SRAM controller / system control<br />
<br />
* H6<br />
** MMC<br />
** PMIC<br />
<br />
* R40<br />
** HDMI support<br />
<br />
Board Changes<br />
* SPI flash node for [[Orange Pi PC 2]] and [[Pine64#Variants | Pine64 SoPINE]]<br />
* Use lid switch as wake-up source for A64 based laptops<br />
* LEDs added for [[PineH64]]<br />
<br />
New Devices<br />
* [[Pine Pinebook]]<br />
* Amarula A64-Relic<br />
<br />
== Changes merged up to 4.18 ==<br />
Changes up to 4.18 can be found on [[Linux mainlining history]] page.<br />
<br />
=References=<br />
<references /><br />
<br />
= See also =<br />
* [[Mainline Kernel Howto]]<br />
* [[Possible setups for hacking on mainline]]<br />
* [[Linux Kernel]]<br />
**[[Toolchain]]<br />
<br />
=External Links=<br />
* [http://www.kernel.org kernel.org] - Official website for the Linux Kernel<br />
** [http://github.com/torvalds/linux http://github.com/torvalds/linux] - Linus Torvalds' GitHub account with the upstream Linux kernel<br />
* [http://www.kernel.org/doc/ Linux Kernel documentation index]<br />
* [http://www.kernel.org/doc/man-pages/ Linux Kernel man pages]<br />
* [http://kernelnewbies.org/ Kernel Newbies Site - Excellent source of information for people new to kernel]<br />
* [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=summary Linus' kernel tree for 2.6]<br />
* [https://bugzilla.kernel.org/ Kernel bugzilla] - [https://bugzilla.kernel.org/show_bug.cgi?id=15790 Regressions for each of recent versions]<br />
* [http://www.fsfla.org/svnwiki/selibre/linux-libre/ Linux-libre project - Maintains and distributes fully free kernel]<br />
* [http://lingrok.org/ LinGrok, Linux kernel source code cross-reference]<br />
* [https://elixir.bootlin.com/linux/latest/source?a=arm Bootlin LXR (Linux Cross Reference)]<br />
* [http://lists.infradead.org/pipermail/linux-arm-kernel/ linux-arm-kernel - Mailing list archive]<br />
===How to upstream===<br />
* [http://www.elinux.org/images/a/ad/Arm-soc-checklist.pdf Your new ARM SoC Linux support check-list! by Thomas Petazzoni of Bootlin]<br />
*[http://www.cnx-software.com/2014/03/04/linux-kernel-upstreaming-how-to-linaro-connect-asia-2014/ Linux Kernel Upstreaming How-To (CNXSoft - Embedded Software Development)]<br />
**[http://www.youtube.com/watch?v=dY7fikYZ42c Matt Porter's YouTube video talk on “Upstreaming 101" (LCA14-111)]<br />
***[http://www.linaro.org/documents/download/65f888c674508efcf9bd5d90398a186a530d01c4c78db Matt Porter's presentation slides for “Upstreaming 101" (LCA14-111)]<br />
**[https://www.youtube.com/watch?v=FiQ5uV_Mm5c Matt Porter's YouTube video talk on “Upstreaming 201" (LCA14-112)]<br />
***[http://www.linaro.org/documents/download/7b9920fcc89589bad9063d87d9137f08530d020b71924 Matt Porter's presentation slides for “Upstreaming 201" (LCA14-112)]<br />
*[http://www.cnx-software.com/2011/08/19/how-to-write-and-submit-a-linux-kernel-patch/ How to Write and Submit a Linux Kernel Patch (CNXSoft - Embedded Software Development)]<br />
** [http://www.youtube.com/watch?v=LLBrBBImJt4 YouTube Video- Write and Submit your first Linux kernel Patch]<br />
** [http://www.cnx-software.com/pdf/kernel-tutorial/kernel_patch_tutorial.pdf Greg Kroah-Hartman Kernel Tutorial Write and Submit your first Linux Kernel Patch]<br />
*[http://www.linaro.org/connect-lca14/resources Linaro resources page from LCA (Linaro Connect Asia) 2014]<br />
<br />
=Notes=<br />
<references group=note /><br />
<br />
[[Category:Development]]</div>
Frozeus
https://linux-sunxi.org/index.php?title=Linux_mainlining_effort&diff=23265
Linux mainlining effort
2020-04-12T22:49:35Z
<p>Frozeus: /* Planned for 5.8 */</p>
<hr />
<div>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.<br />
<br />
=Overview=<br />
The idea is to submit the code needed to run the Linux kernel on Allwinner SoCs upstream, ie. to the official Linux kernel.<br />
<br />
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.<ref>http://www.elinux.org/images/a/ad/Arm-soc-checklist.pdf</ref><ref>[http://www.cnx-software.com/2013/01/16/your-new-arm-soc-linux-support-check-list-elce-2012/ Your New ARM SoC Linux Support Check-List – ELCE 2012]</ref><br />
<br />
Where relevant, I have attempted to include who is currently working on an item, mostly separate from any particular mainlining goal.<br />
<br />
=Status=<br />
<br />
The [[Mainline_Kernel_Howto|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|Mainline U-Boot howto]].<br />
<br />
The [[:Category:Mainline_Kernel | Mainline Kernel category ]] gives an overview of currently supported devices.<br />
<br />
== Status Matrix ==<br />
<br />
The goal of this matrix is to give an easy view of work on each SoC worked on by linux-sunxi.<br />
<br />
{| class="wikitable" style="text-align: center; width: 100%;"<br />
|-<br />
! style="width: 13%; text-align: left;" colspan="2" | Model<br />
! [[F1C100s|F1C-<br>100s]]<br />
! [[A10]]<br />
! [[A10s]]<br />
! [[A13]]<br>[[R8]]<br />
! [[A20]]<br>[[T2]]<br />
! [[A23]]<br />
! [[A31]]<br />
! [[A33]]<br>[[R16]]<br />
! [[A64]]<br />
! [[A80]]<br />
! [[A83T]]<br />
! [[GR8]]<br />
! [[H3]]<br />
! [[H5]]<br />
! [[H6]]<br />
! [[R40]]<br>[[T3]]<br />
! [[V3]]|[[V3s]]<br>[[S3]]|[[S3L]]<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | AC97<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[Audio Codec]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 5.0<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: red;" | NO<br />
<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" rowspan="3" | ADC<br />
| style="text-align: left;" | GPADC<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| N/A<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: lightgreen;" | 4.12<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | Thermal<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: darkgreen;" | ?<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.7<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | Touch<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.16<br />
| N/A<br />
| style="background: lightgreen;" | 4.0<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: lightgreen;" | 4.9<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| rowspan="4" style="text-align: left;" | [[CSI|Camera]]<br />
<br />
| style="text-align: left;" | BT656<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.0<br />
<br />
|-<br />
| style="text-align: left;" | ISP<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | MIPI CSI<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | Parallel<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.0<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Clocks<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.10<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.10<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | CPUFreq (DVFS)<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[Cryptographic_Hardware_Accelerators|Crypto]]<br />
| N/A<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: darkgreen;" | ?<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Display (SimpleFB)<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen" | 4.16<br />
| style="background: lightgreen" | 4.16<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| rowspan="8" style="text-align: left;" | Display<br />
([https://dri.freedesktop.org/wiki/DRM/ DRM])<br />
<br />
| style="text-align: left;" | CVBS<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.9 ?<br />
| style="background: lightgreen;" | 4.7<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | HDMI Audio<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | HDMI CEC<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.14<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.17<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: orange;" | WIP<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | HDMI Video<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.13<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.17<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.19<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | LVDS<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.7<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.16<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | MIPI DSI<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | RGB<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.7<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.9<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" | VGA<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | DMA<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" rowspan="2" | [[Ethernet]]<br />
| style="text-align: left;" | [[Ethernet#EMAC|EMAC]]<br />
| rowspan="2"| N/A<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.11<br />
| rowspan="2"| N/A<br />
| style="background: lightgreen;" | 3.11 <br />
| rowspan="2"| N/A<br />
| N/A<br />
| rowspan="2"| N/A<br />
| style="background: lightgreen;" rowspan="2" | 4.15<br />
| style="background: lightgreen;" rowspan="2" | 5.1<br />
| style="background: lightgreen;" rowspan="2" | 4.16<br />
| rowspan="2"| N/A<br />
| style="background: lightgreen;" rowspan="2" | 4.15<br />
| style="background: lightgreen;" rowspan="2" | 4.15<br />
| style="background: lightgreen;" rowspan="2" | 5.0<br />
| style="background: lightgreen;" rowspan="2" | 4.18<br />
| style="background: lightgreen;" rowspan="2" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" | [[Ethernet#GMAC|GMAC]]<br />
<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.17<br />
<br />
|-<br />
| style="text-align: left;" rowspan="2" | GPU(3D)<br />
| style="text-align: left;" | [[Mali]]<br />
| N/A<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | [[PowerVR]]<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | HW Spinlocks<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| N/A<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[I2C]]<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.13<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | I2S<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | IOMMU<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[IR]]<br />
| style="background: red" | NO<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 3.17<br />
| N/A<br />
| style="background: lightgreen;" | 4.0<br />
| N/A<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Keypad<br />
| N/A<br />
| style="background: orange;" | WIP<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | WIP<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | LRADC<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | MsgBox<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Core_Stuff|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Core_Stuff|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Core_Stuff|WIP]]<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: orange;" | [[Linux_mainlining_effort#Core_Stuff|WIP]]<br />
| style="background: lightgreen;" | 5.8<br />
| N/A<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: lightgreen;" | 5.8<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[NAND]]<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 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 [[MTD_Driver#Challenges|this page]] </ref><br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9 <ref name="mlc"/><br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9 <ref name="mlc" /><br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9 <ref name="mlc" /><br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: red;" | NO<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | PCIe<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<ref name="h6-pcie">Allwinner H6 has a quirky PCIe controller that doesn't map the PCIe address space properly to CPU,<br />
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/</ref><br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Pinctrl<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[PMU]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: grey; color: white;" | ?<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[PWM_Controller|PWM]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.12<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[RSB]]<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.4<br />
| N/A<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.14<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[RTC]]<br />
| N/A<br />
| style="background: lightgreen;" | 3.14<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.10<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SATA]]<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | SD/ [[eMMC|MMC]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | SMP<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.18<br />
| N/A<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SPDIF]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.7<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.7<br />
| N/A<br />
| style="background: lightgreen;" | 4.9<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SPIdev|SPI]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.7<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SRAM Controller|SRAM]]<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 4.19<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 5.0 <br />
| style="background: lightgreen;" | 5.1 <br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[USB]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[USB_OTG_Controller_Register_guide#USB_OTG|USB OTG]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | USB3<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.5<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[Video_Engine|VE]] | [[Sunxi-Cedrus]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.2 <br />
| style="background: red;" | NO<br />
| style="background: darkgreen;" | ?<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Watchdog<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
! style="text-align: left;" colspan="2" | Model<br />
! [[F1C100s|F1C-<br>100s]]<br />
! [[A10]]<br />
! [[A10s]]<br />
! [[A13]]<br />
[[R8]]<br />
! [[A20]]<br>[[T2]]<br />
! [[A23]]<br />
! [[A31]]<br />
! [[A33]]<br />
[[R16]]<br />
! [[A64]]<br />
! [[A80]]<br />
! [[A83T]]<br />
! [[GR8]]<br />
! [[H3]]<br />
! [[H5]]<br />
! [[H6]]<br />
! [[R40]]<br />
[[T3]]<br />
! [[V3]]|[[V3s]]<br>[[S3]]|[[S3L]]<br />
<br />
|}<br />
<br />
<br />
{| class="wikitable" style="text-align: center;"<br />
|-<br />
! Legend<br />
|-<br />
| style="background: lightgreen;" | In Linux mainline since version x<br />
|-<br />
| style="background: darkgreen;" | Nobody works on it, but it should be compatible with already done drivers<br />
|-<br />
| style="background: orange;" | Somebody works on it<br />
|-<br />
| style="background: red;" | No support, nobody works on it<br />
|-<br />
| style="background: black; color: white;" | support impossible<br />
|-<br />
| style="background: grey; color: white;" | Status is unknown/to be completed<br />
|}<br />
<br />
== Work In Progress ==<br />
<br />
=== Core Stuff ===<br />
*[[AR100]] firmware (WiP: Samuel Holland) [https://github.com/crust-firmware/crust ARISC firmware for sunxi SoCs ]<br />
<br />
* [[A13]] PSCI Suspend / Resume / CPUIdle (WiP: Antoine Tenart) [http://lists.denx.de/pipermail/u-boot/2016-September/265453.html patch-v1]<br />
<br />
=== Major drivers ===<br />
* [[H6]] IOMMU WIP Maxime Ripard [https://patchwork.kernel.org/cover/11394841/ iommu: Add Allwinner H6 IOMMU driver v2] <br />
<br />
*[[H6]] Hypervisor for PCIe [https://forum.armbian.com/topic/13529-a-try-on-utilizing-h6-pcie-with-virtualization/ A try on utilizing H6 PCIe with "Virtualization"]<br />
<br />
* HDMI Audio [[A64]] / [[H3]] / [[H5]] / [[H6]] WIP Jernej Škrabec (jernej) / LibreELEC<br />
<br />
* [[R40]] MIPI-DSI WIP Jagan Teki [https://patchwork.kernel.org/cover/11314031/ drm/sun4i: Allwinner R40 MIPI-DSI support v3] <br />
<br />
* [[AC100]] Audio codec WiP Ondrej Jirman [https://megous.com/git/linux/commit/?h=orange-pi-5.5&id=170d38d650f67657600d4e0e868e0e7110b89ee1 digital part] [https://megous.com/git/linux/commit/?h=orange-pi-5.5&id=ee424255a6fb9280ac27c1953019b768ca973ca7 analog part]<br />
<br />
* [[F1C100s]] USB WIP George Hilliard [https://lore.kernel.org/patchwork/cover/1206936/ Support the Allwinner F1C100s USB stack]<br />
<br />
=== Minor drivers ===<br />
<!-- Please move the newest entry to the top --><br />
* [[A64]] hwspinlock WIP Nikolay Borisov [https://patchwork.kernel.org/cover/11373645/ Add support for hwspinlock on A64 SoC] <br />
* [[A83T]] / [[A64]] / [[H3]] hwspinlock WIP Corentin Labbe (montjoie) [https://lore.kernel.org/patchwork/patch/706512/ RFC,1/3][https://lore.kernel.org/patchwork/patch/706511/ RFC,2/3][https://lore.kernel.org/patchwork/patch/706513/ RFC,3/3]<br />
* [[A10]] / [[A20]] / [[A31]] HDMI Audio WIP Stefan Mavrodiev [https://lore.kernel.org/patchwork/cover/1177803/ Add support for sun4i HDMI audio]<br />
* [[H6]] Cpufreq (DVFS) Clément Péron [https://lore.kernel.org/patchwork/cover/1220505/ Add support for Allwinner H6 DVFS v1]<br />
* [[A80]] Thermal sensor WIP Philipp Rossak (embed-3d): https://github.com/embed-3d/linux/branches/all<br />
* [[H5]] Cpufreq (DVFS) WIP Chen-Yu Tsai [https://patchwork.kernel.org/cover/10787869/ arm64: dts: allwinner: h5: Enable CPU DVFS (cpufreq)]<br />
* [[R40]] PWM (WIP Hao Zhang [https://www.spinics.net/lists/kernel/msg2731498.html patch-v2])<br />
* [[A31]]/[[A31s]] PWM support (WiP: Siarhei Volkau [http://lists.infradead.org/pipermail/linux-arm-kernel/2017-February/486405.html patch-v1])<br />
* [[A20]] Keypad (WiP: Yassin Jaffer (ddc) [http://lists.infradead.org/pipermail/linux-arm-kernel/2015-September/370079.html patch])<br />
<br />
=== Drivers that can still be improved/added ===<br />
<br />
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.<br />
<br />
* sunxi-musb driver lacks DMA support (with current driver, USB gadgets are limited to PIO, limiting speed to 10MiB/s and causing large CPU)<br />
* DE2 driver has buggy layer support, see [https://patchwork.kernel.org/patch/11145803/]<br />
* DE1/DE2/DE3 writeback support<br />
* A64 audiocodec driver components (sun8i-codec and sun50i-codec-analog) lack support for jack detection<br />
<br />
== Planned for 5.9 ==<br />
<br />
== Planned for 5.8 ==<br />
* [[A63]] / [[A83T]] / [[H3]] / [[H5]] / [[H6]]<br />
** Message Box<br />
<br />
== Planned for 5.7 ==<br />
*[[A20]]<br />
** LVDS<br />
<br />
*[[A83T]] and [[A64]]<br />
** Rotate driver<br />
<br />
*[[H6]]<br />
** SPI<br />
<br />
*[[R40]]<br />
** Thermal<br />
<br />
New Devices Supported<br />
*[[A13]]<br />
** [[PocketBook Touch Lux 3]]<br />
*[[A64]]<br />
** [[PineTab]]<br />
** [[PinePhone]]<br />
*[[A20]]<br />
** Linutronix Testbox v2<br />
<br />
== Merged into 5.6 ==<br />
* [[A10]]<br />
** CSI (BT656 and Parallel)<br />
<br />
*[[A64]]<br />
** MIPI DSI<br />
** DVFS<br />
<br />
*[[A64]] / [[A83T]] / [[H3]] / [[H5]] / [[H6]]<br />
** Thermal<br />
<br />
*[[H6]]<br />
** PWM<br />
<br />
*[[H3]] / [[H5]] / [[H6]] / [[R40]]<br />
**PMU<br />
<br />
*[[R40]]<br />
** CSI (BT656 and Parallel)<br />
** SPI<br />
<br />
New Devices Supported<br />
* [[H5]]<br />
** ALL-H3-IT H5 board<br />
** ALL-H5-CC H5 board<br />
* [[H6]]<br />
** [[PineH64]] Model A<br />
<br />
== Merged into 5.5 ==<br />
*[[H3]]<br />
** Deinterlace driver<br />
<br />
*[[H6]]<br />
**Crypto<br />
**GPU(3D) Mali<br />
**USB3 PHY (for boards not needing vbus switching)<br />
<br />
*[[A64]] / [[A80]] / [[A83T]] / [[H3]] / [[H5]] / [[R40]] <br />
**Crypto<br />
<br />
* multiple SoCs<br />
** [[Cedrus]] HEVC/H.265<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** Emlid Neutis<br />
<br />
New Devices Supported<br />
* [[H3]]<br />
** [[FriendlyARM_NanoPi_Duo2]]<br />
<br />
== Merged into 5.4 ==<br />
* [[A20]]<br />
** CSI (BT656 and Parallel)<br />
* [[A64]]<br />
** IR<br />
* [[H6]]<br />
** IR<br />
** RTC<br />
** SPDIF<br />
New Devices Supported<br />
* [[A64]]<br />
** [[Olimex A64-OLinuXino]] eMMC<br />
* [[H6]]<br />
** [[Tanix TX6]]<br />
* [[S3]]<br />
** [[Lichee Zero Plus]]<br />
<br />
== Merged into 5.3 ==<br />
* [[A64]]<br />
** LRADC<br />
** RGB LCD<br />
* [[A83T]]<br />
** CSI (BT656 and Parallel)<br />
* [[H6]]<br />
** DMA<br />
** Watchdog<br />
* multiple SoCs<br />
** [[Cedrus]] h264<br />
<br />
== Merged into 5.2 ==<br />
* [[A83T]]<br />
** LRADC<br />
** USB OTG<br />
<br />
* [[H6]]<br />
** [[Cedrus]]<br />
<br />
* multiple SoCs<br />
** [[Mali Open Source Driver|Lima]]<br />
** [[Mali Open Source Driver|Panfrost]]<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** Banana-Pi-M2-Zero<br />
<br />
New Devices Supported<br />
* [[H6]]<br />
** [[Beelink GS1]]<br />
** [[Xunlong Orange Pi 3]]<br />
<br />
== Merged into 5.1 ==<br />
* A10<br />
** Cedrus<br />
** PMU<br />
<br />
* A20<br />
** Audio Codec improvements<br />
<br />
* A23<br />
** Display pipeline<br />
** LCD enabled on Q8 A23 tablets<br />
<br />
* A64<br />
** ARM Architectural Timer errata workaround<br />
** PMU<br />
** CSI (BT656 and Parallel)<br />
<br />
* A80<br />
** GMAC support<br />
<br />
* CSI in general<br />
** RGR565 support<br />
** JPEG pass-through support<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** [[Banana Pi M2+]]<br />
** [[Banana Pi M2 Ultra]]<br />
<br />
* [[LCD]] enabled on [[A13]] [[Q8]] tablets<br />
<br />
== Merged into 5.0 ==<br />
* A64<br />
** Cedrus<br />
** DTS changes for audio codec<br />
<br />
* F1C100s<br />
** initial F1C100s support<br />
<br />
* H6<br />
** Ethernet<br />
** DE3/HDMI support<br />
** USB 2.0<br />
<br />
* H3 / H5<br />
** CSI (BT656 and Parallel) Support<br />
<br />
* H5<br />
** Cedrus<br />
<br />
* R40<br />
** RTC<br />
<br />
* T3<br />
** initial T3 support<ref>https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b7badd1d7aa61087010803affa19bb83fb5a0af1</ref><br />
<br />
* V3s<br />
** CSI (BT656 and Parallel) Support<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** [[Sinovoip Banana Pi M2 Magic | Banana Pi M2 Magic]]<br />
** [[Banana Pi M3]]<br />
** [[Banana Pi M64]]<br />
** [[Cubietruck]]<br />
** [[Cubietech_Cubietruck_Plus|Cubietruck Plus]]<br />
<br />
New Devices Supported<br />
* [[Xunlong Orange Pi Lite 2]]<br />
<br />
== Merged into 4.20 ==<br />
<br />
* A13 / A20 / A33 / H3<br />
** Cedrus driver<br />
<br />
* A83T<br />
** IR receiver<br />
<br />
* A64<br />
** Cleanup for device tree files<br />
** HDMI support<br />
** Audio codec support (DTS changes will be merged in 5.0)<br />
<br />
* H3 / H5<br />
** SID<br />
<br />
* R40<br />
** SATA<br />
<br />
New Devices Supported<br />
* [[Pine64]] LTS<br />
* [[Xunlong Orange Pi One Plus]]<br />
* [[Xunlong Orange Pi Zero Plus 2]] (H3 variant)<br />
* [[Sinovoip Banana Pi M2+]] (H5 variant)<br />
<br />
== Merged into 4.19 ==<br />
<br />
* A10 / A13 / A20 / A23 / A33<br />
** SRAM controller / system control<br />
<br />
* A64<br />
** SRAM controller / system control<br />
** Display clocks and bus<br />
** RTC clock output<br />
** PWM<br />
** R_I2C<br />
<br />
* H3<br />
** SRAM controller / system control<br />
<br />
* H6<br />
** MMC<br />
** PMIC<br />
<br />
* R40<br />
** HDMI support<br />
<br />
Board Changes<br />
* SPI flash node for [[Orange Pi PC 2]] and [[Pine64#Variants | Pine64 SoPINE]]<br />
* Use lid switch as wake-up source for A64 based laptops<br />
* LEDs added for [[PineH64]]<br />
<br />
New Devices<br />
* [[Pine Pinebook]]<br />
* Amarula A64-Relic<br />
<br />
== Changes merged up to 4.18 ==<br />
Changes up to 4.18 can be found on [[Linux mainlining history]] page.<br />
<br />
=References=<br />
<references /><br />
<br />
= See also =<br />
* [[Mainline Kernel Howto]]<br />
* [[Possible setups for hacking on mainline]]<br />
* [[Linux Kernel]]<br />
**[[Toolchain]]<br />
<br />
=External Links=<br />
* [http://www.kernel.org kernel.org] - Official website for the Linux Kernel<br />
** [http://github.com/torvalds/linux http://github.com/torvalds/linux] - Linus Torvalds' GitHub account with the upstream Linux kernel<br />
* [http://www.kernel.org/doc/ Linux Kernel documentation index]<br />
* [http://www.kernel.org/doc/man-pages/ Linux Kernel man pages]<br />
* [http://kernelnewbies.org/ Kernel Newbies Site - Excellent source of information for people new to kernel]<br />
* [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=summary Linus' kernel tree for 2.6]<br />
* [https://bugzilla.kernel.org/ Kernel bugzilla] - [https://bugzilla.kernel.org/show_bug.cgi?id=15790 Regressions for each of recent versions]<br />
* [http://www.fsfla.org/svnwiki/selibre/linux-libre/ Linux-libre project - Maintains and distributes fully free kernel]<br />
* [http://lingrok.org/ LinGrok, Linux kernel source code cross-reference]<br />
* [https://elixir.bootlin.com/linux/latest/source?a=arm Bootlin LXR (Linux Cross Reference)]<br />
* [http://lists.infradead.org/pipermail/linux-arm-kernel/ linux-arm-kernel - Mailing list archive]<br />
===How to upstream===<br />
* [http://www.elinux.org/images/a/ad/Arm-soc-checklist.pdf Your new ARM SoC Linux support check-list! by Thomas Petazzoni of Bootlin]<br />
*[http://www.cnx-software.com/2014/03/04/linux-kernel-upstreaming-how-to-linaro-connect-asia-2014/ Linux Kernel Upstreaming How-To (CNXSoft - Embedded Software Development)]<br />
**[http://www.youtube.com/watch?v=dY7fikYZ42c Matt Porter's YouTube video talk on “Upstreaming 101" (LCA14-111)]<br />
***[http://www.linaro.org/documents/download/65f888c674508efcf9bd5d90398a186a530d01c4c78db Matt Porter's presentation slides for “Upstreaming 101" (LCA14-111)]<br />
**[https://www.youtube.com/watch?v=FiQ5uV_Mm5c Matt Porter's YouTube video talk on “Upstreaming 201" (LCA14-112)]<br />
***[http://www.linaro.org/documents/download/7b9920fcc89589bad9063d87d9137f08530d020b71924 Matt Porter's presentation slides for “Upstreaming 201" (LCA14-112)]<br />
*[http://www.cnx-software.com/2011/08/19/how-to-write-and-submit-a-linux-kernel-patch/ How to Write and Submit a Linux Kernel Patch (CNXSoft - Embedded Software Development)]<br />
** [http://www.youtube.com/watch?v=LLBrBBImJt4 YouTube Video- Write and Submit your first Linux kernel Patch]<br />
** [http://www.cnx-software.com/pdf/kernel-tutorial/kernel_patch_tutorial.pdf Greg Kroah-Hartman Kernel Tutorial Write and Submit your first Linux Kernel Patch]<br />
*[http://www.linaro.org/connect-lca14/resources Linaro resources page from LCA (Linaro Connect Asia) 2014]<br />
<br />
=Notes=<br />
<references group=note /><br />
<br />
[[Category:Development]]</div>
Frozeus
https://linux-sunxi.org/index.php?title=Linux_mainlining_effort&diff=23264
Linux mainlining effort
2020-04-12T22:49:15Z
<p>Frozeus: /* Planned for 5.8 */</p>
<hr />
<div>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.<br />
<br />
=Overview=<br />
The idea is to submit the code needed to run the Linux kernel on Allwinner SoCs upstream, ie. to the official Linux kernel.<br />
<br />
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.<ref>http://www.elinux.org/images/a/ad/Arm-soc-checklist.pdf</ref><ref>[http://www.cnx-software.com/2013/01/16/your-new-arm-soc-linux-support-check-list-elce-2012/ Your New ARM SoC Linux Support Check-List – ELCE 2012]</ref><br />
<br />
Where relevant, I have attempted to include who is currently working on an item, mostly separate from any particular mainlining goal.<br />
<br />
=Status=<br />
<br />
The [[Mainline_Kernel_Howto|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|Mainline U-Boot howto]].<br />
<br />
The [[:Category:Mainline_Kernel | Mainline Kernel category ]] gives an overview of currently supported devices.<br />
<br />
== Status Matrix ==<br />
<br />
The goal of this matrix is to give an easy view of work on each SoC worked on by linux-sunxi.<br />
<br />
{| class="wikitable" style="text-align: center; width: 100%;"<br />
|-<br />
! style="width: 13%; text-align: left;" colspan="2" | Model<br />
! [[F1C100s|F1C-<br>100s]]<br />
! [[A10]]<br />
! [[A10s]]<br />
! [[A13]]<br>[[R8]]<br />
! [[A20]]<br>[[T2]]<br />
! [[A23]]<br />
! [[A31]]<br />
! [[A33]]<br>[[R16]]<br />
! [[A64]]<br />
! [[A80]]<br />
! [[A83T]]<br />
! [[GR8]]<br />
! [[H3]]<br />
! [[H5]]<br />
! [[H6]]<br />
! [[R40]]<br>[[T3]]<br />
! [[V3]]|[[V3s]]<br>[[S3]]|[[S3L]]<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | AC97<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[Audio Codec]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 5.0<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: red;" | NO<br />
<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" rowspan="3" | ADC<br />
| style="text-align: left;" | GPADC<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| N/A<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: lightgreen;" | 4.12<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | Thermal<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: darkgreen;" | ?<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.7<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | Touch<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.16<br />
| N/A<br />
| style="background: lightgreen;" | 4.0<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: lightgreen;" | 4.9<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| rowspan="4" style="text-align: left;" | [[CSI|Camera]]<br />
<br />
| style="text-align: left;" | BT656<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.0<br />
<br />
|-<br />
| style="text-align: left;" | ISP<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | MIPI CSI<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | Parallel<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.0<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Clocks<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.10<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.10<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | CPUFreq (DVFS)<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[Cryptographic_Hardware_Accelerators|Crypto]]<br />
| N/A<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: darkgreen;" | ?<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Display (SimpleFB)<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen" | 4.16<br />
| style="background: lightgreen" | 4.16<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| rowspan="8" style="text-align: left;" | Display<br />
([https://dri.freedesktop.org/wiki/DRM/ DRM])<br />
<br />
| style="text-align: left;" | CVBS<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.9 ?<br />
| style="background: lightgreen;" | 4.7<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | HDMI Audio<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | HDMI CEC<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.14<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.17<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: orange;" | WIP<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | HDMI Video<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.13<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.17<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.19<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | LVDS<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.7<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.16<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | MIPI DSI<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | RGB<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.7<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.9<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" | VGA<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | DMA<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" rowspan="2" | [[Ethernet]]<br />
| style="text-align: left;" | [[Ethernet#EMAC|EMAC]]<br />
| rowspan="2"| N/A<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.11<br />
| rowspan="2"| N/A<br />
| style="background: lightgreen;" | 3.11 <br />
| rowspan="2"| N/A<br />
| N/A<br />
| rowspan="2"| N/A<br />
| style="background: lightgreen;" rowspan="2" | 4.15<br />
| style="background: lightgreen;" rowspan="2" | 5.1<br />
| style="background: lightgreen;" rowspan="2" | 4.16<br />
| rowspan="2"| N/A<br />
| style="background: lightgreen;" rowspan="2" | 4.15<br />
| style="background: lightgreen;" rowspan="2" | 4.15<br />
| style="background: lightgreen;" rowspan="2" | 5.0<br />
| style="background: lightgreen;" rowspan="2" | 4.18<br />
| style="background: lightgreen;" rowspan="2" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" | [[Ethernet#GMAC|GMAC]]<br />
<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.17<br />
<br />
|-<br />
| style="text-align: left;" rowspan="2" | GPU(3D)<br />
| style="text-align: left;" | [[Mali]]<br />
| N/A<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | [[PowerVR]]<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | HW Spinlocks<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| N/A<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[I2C]]<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.13<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | I2S<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | IOMMU<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[IR]]<br />
| style="background: red" | NO<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 3.17<br />
| N/A<br />
| style="background: lightgreen;" | 4.0<br />
| N/A<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Keypad<br />
| N/A<br />
| style="background: orange;" | WIP<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | WIP<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | LRADC<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | MsgBox<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Core_Stuff|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Core_Stuff|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Core_Stuff|WIP]]<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: orange;" | [[Linux_mainlining_effort#Core_Stuff|WIP]]<br />
| style="background: lightgreen;" | 5.8<br />
| N/A<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: lightgreen;" | 5.8<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[NAND]]<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 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 [[MTD_Driver#Challenges|this page]] </ref><br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9 <ref name="mlc"/><br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9 <ref name="mlc" /><br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9 <ref name="mlc" /><br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: red;" | NO<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | PCIe<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<ref name="h6-pcie">Allwinner H6 has a quirky PCIe controller that doesn't map the PCIe address space properly to CPU,<br />
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/</ref><br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Pinctrl<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[PMU]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: grey; color: white;" | ?<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[PWM_Controller|PWM]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.12<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[RSB]]<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.4<br />
| N/A<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.14<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[RTC]]<br />
| N/A<br />
| style="background: lightgreen;" | 3.14<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.10<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SATA]]<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | SD/ [[eMMC|MMC]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | SMP<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.18<br />
| N/A<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SPDIF]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.7<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.7<br />
| N/A<br />
| style="background: lightgreen;" | 4.9<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SPIdev|SPI]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.7<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SRAM Controller|SRAM]]<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 4.19<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 5.0 <br />
| style="background: lightgreen;" | 5.1 <br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[USB]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[USB_OTG_Controller_Register_guide#USB_OTG|USB OTG]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | USB3<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.5<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[Video_Engine|VE]] | [[Sunxi-Cedrus]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.2 <br />
| style="background: red;" | NO<br />
| style="background: darkgreen;" | ?<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Watchdog<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
! style="text-align: left;" colspan="2" | Model<br />
! [[F1C100s|F1C-<br>100s]]<br />
! [[A10]]<br />
! [[A10s]]<br />
! [[A13]]<br />
[[R8]]<br />
! [[A20]]<br>[[T2]]<br />
! [[A23]]<br />
! [[A31]]<br />
! [[A33]]<br />
[[R16]]<br />
! [[A64]]<br />
! [[A80]]<br />
! [[A83T]]<br />
! [[GR8]]<br />
! [[H3]]<br />
! [[H5]]<br />
! [[H6]]<br />
! [[R40]]<br />
[[T3]]<br />
! [[V3]]|[[V3s]]<br>[[S3]]|[[S3L]]<br />
<br />
|}<br />
<br />
<br />
{| class="wikitable" style="text-align: center;"<br />
|-<br />
! Legend<br />
|-<br />
| style="background: lightgreen;" | In Linux mainline since version x<br />
|-<br />
| style="background: darkgreen;" | Nobody works on it, but it should be compatible with already done drivers<br />
|-<br />
| style="background: orange;" | Somebody works on it<br />
|-<br />
| style="background: red;" | No support, nobody works on it<br />
|-<br />
| style="background: black; color: white;" | support impossible<br />
|-<br />
| style="background: grey; color: white;" | Status is unknown/to be completed<br />
|}<br />
<br />
== Work In Progress ==<br />
<br />
=== Core Stuff ===<br />
*[[AR100]] firmware (WiP: Samuel Holland) [https://github.com/crust-firmware/crust ARISC firmware for sunxi SoCs ]<br />
<br />
* [[A13]] PSCI Suspend / Resume / CPUIdle (WiP: Antoine Tenart) [http://lists.denx.de/pipermail/u-boot/2016-September/265453.html patch-v1]<br />
<br />
=== Major drivers ===<br />
* [[H6]] IOMMU WIP Maxime Ripard [https://patchwork.kernel.org/cover/11394841/ iommu: Add Allwinner H6 IOMMU driver v2] <br />
<br />
*[[H6]] Hypervisor for PCIe [https://forum.armbian.com/topic/13529-a-try-on-utilizing-h6-pcie-with-virtualization/ A try on utilizing H6 PCIe with "Virtualization"]<br />
<br />
* HDMI Audio [[A64]] / [[H3]] / [[H5]] / [[H6]] WIP Jernej Škrabec (jernej) / LibreELEC<br />
<br />
* [[R40]] MIPI-DSI WIP Jagan Teki [https://patchwork.kernel.org/cover/11314031/ drm/sun4i: Allwinner R40 MIPI-DSI support v3] <br />
<br />
* [[AC100]] Audio codec WiP Ondrej Jirman [https://megous.com/git/linux/commit/?h=orange-pi-5.5&id=170d38d650f67657600d4e0e868e0e7110b89ee1 digital part] [https://megous.com/git/linux/commit/?h=orange-pi-5.5&id=ee424255a6fb9280ac27c1953019b768ca973ca7 analog part]<br />
<br />
* [[F1C100s]] USB WIP George Hilliard [https://lore.kernel.org/patchwork/cover/1206936/ Support the Allwinner F1C100s USB stack]<br />
<br />
=== Minor drivers ===<br />
<!-- Please move the newest entry to the top --><br />
* [[A64]] hwspinlock WIP Nikolay Borisov [https://patchwork.kernel.org/cover/11373645/ Add support for hwspinlock on A64 SoC] <br />
* [[A83T]] / [[A64]] / [[H3]] hwspinlock WIP Corentin Labbe (montjoie) [https://lore.kernel.org/patchwork/patch/706512/ RFC,1/3][https://lore.kernel.org/patchwork/patch/706511/ RFC,2/3][https://lore.kernel.org/patchwork/patch/706513/ RFC,3/3]<br />
* [[A10]] / [[A20]] / [[A31]] HDMI Audio WIP Stefan Mavrodiev [https://lore.kernel.org/patchwork/cover/1177803/ Add support for sun4i HDMI audio]<br />
* [[H6]] Cpufreq (DVFS) Clément Péron [https://lore.kernel.org/patchwork/cover/1220505/ Add support for Allwinner H6 DVFS v1]<br />
* [[A80]] Thermal sensor WIP Philipp Rossak (embed-3d): https://github.com/embed-3d/linux/branches/all<br />
* [[H5]] Cpufreq (DVFS) WIP Chen-Yu Tsai [https://patchwork.kernel.org/cover/10787869/ arm64: dts: allwinner: h5: Enable CPU DVFS (cpufreq)]<br />
* [[R40]] PWM (WIP Hao Zhang [https://www.spinics.net/lists/kernel/msg2731498.html patch-v2])<br />
* [[A31]]/[[A31s]] PWM support (WiP: Siarhei Volkau [http://lists.infradead.org/pipermail/linux-arm-kernel/2017-February/486405.html patch-v1])<br />
* [[A20]] Keypad (WiP: Yassin Jaffer (ddc) [http://lists.infradead.org/pipermail/linux-arm-kernel/2015-September/370079.html patch])<br />
<br />
=== Drivers that can still be improved/added ===<br />
<br />
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.<br />
<br />
* sunxi-musb driver lacks DMA support (with current driver, USB gadgets are limited to PIO, limiting speed to 10MiB/s and causing large CPU)<br />
* DE2 driver has buggy layer support, see [https://patchwork.kernel.org/patch/11145803/]<br />
* DE1/DE2/DE3 writeback support<br />
* A64 audiocodec driver components (sun8i-codec and sun50i-codec-analog) lack support for jack detection<br />
<br />
== Planned for 5.9 ==<br />
<br />
== Planned for 5.8 ==<br />
* [[A63]]/[[A83T]]/[[H3]]/[[H5]]/[[H6]]<br />
** Message Box<br />
<br />
== Planned for 5.7 ==<br />
*[[A20]]<br />
** LVDS<br />
<br />
*[[A83T]] and [[A64]]<br />
** Rotate driver<br />
<br />
*[[H6]]<br />
** SPI<br />
<br />
*[[R40]]<br />
** Thermal<br />
<br />
New Devices Supported<br />
*[[A13]]<br />
** [[PocketBook Touch Lux 3]]<br />
*[[A64]]<br />
** [[PineTab]]<br />
** [[PinePhone]]<br />
*[[A20]]<br />
** Linutronix Testbox v2<br />
<br />
== Merged into 5.6 ==<br />
* [[A10]]<br />
** CSI (BT656 and Parallel)<br />
<br />
*[[A64]]<br />
** MIPI DSI<br />
** DVFS<br />
<br />
*[[A64]] / [[A83T]] / [[H3]] / [[H5]] / [[H6]]<br />
** Thermal<br />
<br />
*[[H6]]<br />
** PWM<br />
<br />
*[[H3]] / [[H5]] / [[H6]] / [[R40]]<br />
**PMU<br />
<br />
*[[R40]]<br />
** CSI (BT656 and Parallel)<br />
** SPI<br />
<br />
New Devices Supported<br />
* [[H5]]<br />
** ALL-H3-IT H5 board<br />
** ALL-H5-CC H5 board<br />
* [[H6]]<br />
** [[PineH64]] Model A<br />
<br />
== Merged into 5.5 ==<br />
*[[H3]]<br />
** Deinterlace driver<br />
<br />
*[[H6]]<br />
**Crypto<br />
**GPU(3D) Mali<br />
**USB3 PHY (for boards not needing vbus switching)<br />
<br />
*[[A64]] / [[A80]] / [[A83T]] / [[H3]] / [[H5]] / [[R40]] <br />
**Crypto<br />
<br />
* multiple SoCs<br />
** [[Cedrus]] HEVC/H.265<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** Emlid Neutis<br />
<br />
New Devices Supported<br />
* [[H3]]<br />
** [[FriendlyARM_NanoPi_Duo2]]<br />
<br />
== Merged into 5.4 ==<br />
* [[A20]]<br />
** CSI (BT656 and Parallel)<br />
* [[A64]]<br />
** IR<br />
* [[H6]]<br />
** IR<br />
** RTC<br />
** SPDIF<br />
New Devices Supported<br />
* [[A64]]<br />
** [[Olimex A64-OLinuXino]] eMMC<br />
* [[H6]]<br />
** [[Tanix TX6]]<br />
* [[S3]]<br />
** [[Lichee Zero Plus]]<br />
<br />
== Merged into 5.3 ==<br />
* [[A64]]<br />
** LRADC<br />
** RGB LCD<br />
* [[A83T]]<br />
** CSI (BT656 and Parallel)<br />
* [[H6]]<br />
** DMA<br />
** Watchdog<br />
* multiple SoCs<br />
** [[Cedrus]] h264<br />
<br />
== Merged into 5.2 ==<br />
* [[A83T]]<br />
** LRADC<br />
** USB OTG<br />
<br />
* [[H6]]<br />
** [[Cedrus]]<br />
<br />
* multiple SoCs<br />
** [[Mali Open Source Driver|Lima]]<br />
** [[Mali Open Source Driver|Panfrost]]<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** Banana-Pi-M2-Zero<br />
<br />
New Devices Supported<br />
* [[H6]]<br />
** [[Beelink GS1]]<br />
** [[Xunlong Orange Pi 3]]<br />
<br />
== Merged into 5.1 ==<br />
* A10<br />
** Cedrus<br />
** PMU<br />
<br />
* A20<br />
** Audio Codec improvements<br />
<br />
* A23<br />
** Display pipeline<br />
** LCD enabled on Q8 A23 tablets<br />
<br />
* A64<br />
** ARM Architectural Timer errata workaround<br />
** PMU<br />
** CSI (BT656 and Parallel)<br />
<br />
* A80<br />
** GMAC support<br />
<br />
* CSI in general<br />
** RGR565 support<br />
** JPEG pass-through support<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** [[Banana Pi M2+]]<br />
** [[Banana Pi M2 Ultra]]<br />
<br />
* [[LCD]] enabled on [[A13]] [[Q8]] tablets<br />
<br />
== Merged into 5.0 ==<br />
* A64<br />
** Cedrus<br />
** DTS changes for audio codec<br />
<br />
* F1C100s<br />
** initial F1C100s support<br />
<br />
* H6<br />
** Ethernet<br />
** DE3/HDMI support<br />
** USB 2.0<br />
<br />
* H3 / H5<br />
** CSI (BT656 and Parallel) Support<br />
<br />
* H5<br />
** Cedrus<br />
<br />
* R40<br />
** RTC<br />
<br />
* T3<br />
** initial T3 support<ref>https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b7badd1d7aa61087010803affa19bb83fb5a0af1</ref><br />
<br />
* V3s<br />
** CSI (BT656 and Parallel) Support<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** [[Sinovoip Banana Pi M2 Magic | Banana Pi M2 Magic]]<br />
** [[Banana Pi M3]]<br />
** [[Banana Pi M64]]<br />
** [[Cubietruck]]<br />
** [[Cubietech_Cubietruck_Plus|Cubietruck Plus]]<br />
<br />
New Devices Supported<br />
* [[Xunlong Orange Pi Lite 2]]<br />
<br />
== Merged into 4.20 ==<br />
<br />
* A13 / A20 / A33 / H3<br />
** Cedrus driver<br />
<br />
* A83T<br />
** IR receiver<br />
<br />
* A64<br />
** Cleanup for device tree files<br />
** HDMI support<br />
** Audio codec support (DTS changes will be merged in 5.0)<br />
<br />
* H3 / H5<br />
** SID<br />
<br />
* R40<br />
** SATA<br />
<br />
New Devices Supported<br />
* [[Pine64]] LTS<br />
* [[Xunlong Orange Pi One Plus]]<br />
* [[Xunlong Orange Pi Zero Plus 2]] (H3 variant)<br />
* [[Sinovoip Banana Pi M2+]] (H5 variant)<br />
<br />
== Merged into 4.19 ==<br />
<br />
* A10 / A13 / A20 / A23 / A33<br />
** SRAM controller / system control<br />
<br />
* A64<br />
** SRAM controller / system control<br />
** Display clocks and bus<br />
** RTC clock output<br />
** PWM<br />
** R_I2C<br />
<br />
* H3<br />
** SRAM controller / system control<br />
<br />
* H6<br />
** MMC<br />
** PMIC<br />
<br />
* R40<br />
** HDMI support<br />
<br />
Board Changes<br />
* SPI flash node for [[Orange Pi PC 2]] and [[Pine64#Variants | Pine64 SoPINE]]<br />
* Use lid switch as wake-up source for A64 based laptops<br />
* LEDs added for [[PineH64]]<br />
<br />
New Devices<br />
* [[Pine Pinebook]]<br />
* Amarula A64-Relic<br />
<br />
== Changes merged up to 4.18 ==<br />
Changes up to 4.18 can be found on [[Linux mainlining history]] page.<br />
<br />
=References=<br />
<references /><br />
<br />
= See also =<br />
* [[Mainline Kernel Howto]]<br />
* [[Possible setups for hacking on mainline]]<br />
* [[Linux Kernel]]<br />
**[[Toolchain]]<br />
<br />
=External Links=<br />
* [http://www.kernel.org kernel.org] - Official website for the Linux Kernel<br />
** [http://github.com/torvalds/linux http://github.com/torvalds/linux] - Linus Torvalds' GitHub account with the upstream Linux kernel<br />
* [http://www.kernel.org/doc/ Linux Kernel documentation index]<br />
* [http://www.kernel.org/doc/man-pages/ Linux Kernel man pages]<br />
* [http://kernelnewbies.org/ Kernel Newbies Site - Excellent source of information for people new to kernel]<br />
* [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=summary Linus' kernel tree for 2.6]<br />
* [https://bugzilla.kernel.org/ Kernel bugzilla] - [https://bugzilla.kernel.org/show_bug.cgi?id=15790 Regressions for each of recent versions]<br />
* [http://www.fsfla.org/svnwiki/selibre/linux-libre/ Linux-libre project - Maintains and distributes fully free kernel]<br />
* [http://lingrok.org/ LinGrok, Linux kernel source code cross-reference]<br />
* [https://elixir.bootlin.com/linux/latest/source?a=arm Bootlin LXR (Linux Cross Reference)]<br />
* [http://lists.infradead.org/pipermail/linux-arm-kernel/ linux-arm-kernel - Mailing list archive]<br />
===How to upstream===<br />
* [http://www.elinux.org/images/a/ad/Arm-soc-checklist.pdf Your new ARM SoC Linux support check-list! by Thomas Petazzoni of Bootlin]<br />
*[http://www.cnx-software.com/2014/03/04/linux-kernel-upstreaming-how-to-linaro-connect-asia-2014/ Linux Kernel Upstreaming How-To (CNXSoft - Embedded Software Development)]<br />
**[http://www.youtube.com/watch?v=dY7fikYZ42c Matt Porter's YouTube video talk on “Upstreaming 101" (LCA14-111)]<br />
***[http://www.linaro.org/documents/download/65f888c674508efcf9bd5d90398a186a530d01c4c78db Matt Porter's presentation slides for “Upstreaming 101" (LCA14-111)]<br />
**[https://www.youtube.com/watch?v=FiQ5uV_Mm5c Matt Porter's YouTube video talk on “Upstreaming 201" (LCA14-112)]<br />
***[http://www.linaro.org/documents/download/7b9920fcc89589bad9063d87d9137f08530d020b71924 Matt Porter's presentation slides for “Upstreaming 201" (LCA14-112)]<br />
*[http://www.cnx-software.com/2011/08/19/how-to-write-and-submit-a-linux-kernel-patch/ How to Write and Submit a Linux Kernel Patch (CNXSoft - Embedded Software Development)]<br />
** [http://www.youtube.com/watch?v=LLBrBBImJt4 YouTube Video- Write and Submit your first Linux kernel Patch]<br />
** [http://www.cnx-software.com/pdf/kernel-tutorial/kernel_patch_tutorial.pdf Greg Kroah-Hartman Kernel Tutorial Write and Submit your first Linux Kernel Patch]<br />
*[http://www.linaro.org/connect-lca14/resources Linaro resources page from LCA (Linaro Connect Asia) 2014]<br />
<br />
=Notes=<br />
<references group=note /><br />
<br />
[[Category:Development]]</div>
Frozeus
https://linux-sunxi.org/index.php?title=Linux_mainlining_effort&diff=23263
Linux mainlining effort
2020-04-12T22:48:28Z
<p>Frozeus: msgbox for 5.8</p>
<hr />
<div>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.<br />
<br />
=Overview=<br />
The idea is to submit the code needed to run the Linux kernel on Allwinner SoCs upstream, ie. to the official Linux kernel.<br />
<br />
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.<ref>http://www.elinux.org/images/a/ad/Arm-soc-checklist.pdf</ref><ref>[http://www.cnx-software.com/2013/01/16/your-new-arm-soc-linux-support-check-list-elce-2012/ Your New ARM SoC Linux Support Check-List – ELCE 2012]</ref><br />
<br />
Where relevant, I have attempted to include who is currently working on an item, mostly separate from any particular mainlining goal.<br />
<br />
=Status=<br />
<br />
The [[Mainline_Kernel_Howto|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|Mainline U-Boot howto]].<br />
<br />
The [[:Category:Mainline_Kernel | Mainline Kernel category ]] gives an overview of currently supported devices.<br />
<br />
== Status Matrix ==<br />
<br />
The goal of this matrix is to give an easy view of work on each SoC worked on by linux-sunxi.<br />
<br />
{| class="wikitable" style="text-align: center; width: 100%;"<br />
|-<br />
! style="width: 13%; text-align: left;" colspan="2" | Model<br />
! [[F1C100s|F1C-<br>100s]]<br />
! [[A10]]<br />
! [[A10s]]<br />
! [[A13]]<br>[[R8]]<br />
! [[A20]]<br>[[T2]]<br />
! [[A23]]<br />
! [[A31]]<br />
! [[A33]]<br>[[R16]]<br />
! [[A64]]<br />
! [[A80]]<br />
! [[A83T]]<br />
! [[GR8]]<br />
! [[H3]]<br />
! [[H5]]<br />
! [[H6]]<br />
! [[R40]]<br>[[T3]]<br />
! [[V3]]|[[V3s]]<br>[[S3]]|[[S3L]]<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | AC97<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[Audio Codec]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 5.0<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: red;" | NO<br />
<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" rowspan="3" | ADC<br />
| style="text-align: left;" | GPADC<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| N/A<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: lightgreen;" | 4.12<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | Thermal<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: darkgreen;" | ?<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.7<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | Touch<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.16<br />
| N/A<br />
| style="background: lightgreen;" | 4.0<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: lightgreen;" | 4.9<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| rowspan="4" style="text-align: left;" | [[CSI|Camera]]<br />
<br />
| style="text-align: left;" | BT656<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.0<br />
<br />
|-<br />
| style="text-align: left;" | ISP<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | MIPI CSI<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | Parallel<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.0<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Clocks<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.10<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.10<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | CPUFreq (DVFS)<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[Cryptographic_Hardware_Accelerators|Crypto]]<br />
| N/A<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: darkgreen;" | ?<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Display (SimpleFB)<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen" | 4.16<br />
| style="background: lightgreen" | 4.16<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| rowspan="8" style="text-align: left;" | Display<br />
([https://dri.freedesktop.org/wiki/DRM/ DRM])<br />
<br />
| style="text-align: left;" | CVBS<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.9 ?<br />
| style="background: lightgreen;" | 4.7<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | HDMI Audio<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | HDMI CEC<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.14<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.17<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: orange;" | WIP<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | HDMI Video<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.13<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.17<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.19<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | LVDS<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.7<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.16<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | MIPI DSI<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | RGB<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.7<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.9<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" | VGA<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | DMA<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" rowspan="2" | [[Ethernet]]<br />
| style="text-align: left;" | [[Ethernet#EMAC|EMAC]]<br />
| rowspan="2"| N/A<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.11<br />
| rowspan="2"| N/A<br />
| style="background: lightgreen;" | 3.11 <br />
| rowspan="2"| N/A<br />
| N/A<br />
| rowspan="2"| N/A<br />
| style="background: lightgreen;" rowspan="2" | 4.15<br />
| style="background: lightgreen;" rowspan="2" | 5.1<br />
| style="background: lightgreen;" rowspan="2" | 4.16<br />
| rowspan="2"| N/A<br />
| style="background: lightgreen;" rowspan="2" | 4.15<br />
| style="background: lightgreen;" rowspan="2" | 4.15<br />
| style="background: lightgreen;" rowspan="2" | 5.0<br />
| style="background: lightgreen;" rowspan="2" | 4.18<br />
| style="background: lightgreen;" rowspan="2" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" | [[Ethernet#GMAC|GMAC]]<br />
<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.17<br />
<br />
|-<br />
| style="text-align: left;" rowspan="2" | GPU(3D)<br />
| style="text-align: left;" | [[Mali]]<br />
| N/A<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | [[PowerVR]]<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | HW Spinlocks<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| N/A<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[I2C]]<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.13<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | I2S<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | IOMMU<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[IR]]<br />
| style="background: red" | NO<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 3.17<br />
| N/A<br />
| style="background: lightgreen;" | 4.0<br />
| N/A<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Keypad<br />
| N/A<br />
| style="background: orange;" | WIP<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | WIP<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | LRADC<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | MsgBox<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Core_Stuff|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Core_Stuff|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Core_Stuff|WIP]]<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: orange;" | [[Linux_mainlining_effort#Core_Stuff|WIP]]<br />
| style="background: lightgreen;" | 5.8<br />
| N/A<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: lightgreen;" | 5.8<br />
| style="background: lightgreen;" | 5.8<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[NAND]]<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 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 [[MTD_Driver#Challenges|this page]] </ref><br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9 <ref name="mlc"/><br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9 <ref name="mlc" /><br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9 <ref name="mlc" /><br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: red;" | NO<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | PCIe<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<ref name="h6-pcie">Allwinner H6 has a quirky PCIe controller that doesn't map the PCIe address space properly to CPU,<br />
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/</ref><br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Pinctrl<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[PMU]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: grey; color: white;" | ?<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[PWM_Controller|PWM]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.12<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[RSB]]<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.4<br />
| N/A<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.14<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[RTC]]<br />
| N/A<br />
| style="background: lightgreen;" | 3.14<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.10<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SATA]]<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | SD/ [[eMMC|MMC]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | SMP<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.18<br />
| N/A<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SPDIF]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.7<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.7<br />
| N/A<br />
| style="background: lightgreen;" | 4.9<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SPIdev|SPI]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.7<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SRAM Controller|SRAM]]<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 4.19<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 5.0 <br />
| style="background: lightgreen;" | 5.1 <br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[USB]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[USB_OTG_Controller_Register_guide#USB_OTG|USB OTG]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | USB3<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.5<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[Video_Engine|VE]] | [[Sunxi-Cedrus]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.2 <br />
| style="background: red;" | NO<br />
| style="background: darkgreen;" | ?<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Watchdog<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
! style="text-align: left;" colspan="2" | Model<br />
! [[F1C100s|F1C-<br>100s]]<br />
! [[A10]]<br />
! [[A10s]]<br />
! [[A13]]<br />
[[R8]]<br />
! [[A20]]<br>[[T2]]<br />
! [[A23]]<br />
! [[A31]]<br />
! [[A33]]<br />
[[R16]]<br />
! [[A64]]<br />
! [[A80]]<br />
! [[A83T]]<br />
! [[GR8]]<br />
! [[H3]]<br />
! [[H5]]<br />
! [[H6]]<br />
! [[R40]]<br />
[[T3]]<br />
! [[V3]]|[[V3s]]<br>[[S3]]|[[S3L]]<br />
<br />
|}<br />
<br />
<br />
{| class="wikitable" style="text-align: center;"<br />
|-<br />
! Legend<br />
|-<br />
| style="background: lightgreen;" | In Linux mainline since version x<br />
|-<br />
| style="background: darkgreen;" | Nobody works on it, but it should be compatible with already done drivers<br />
|-<br />
| style="background: orange;" | Somebody works on it<br />
|-<br />
| style="background: red;" | No support, nobody works on it<br />
|-<br />
| style="background: black; color: white;" | support impossible<br />
|-<br />
| style="background: grey; color: white;" | Status is unknown/to be completed<br />
|}<br />
<br />
== Work In Progress ==<br />
<br />
=== Core Stuff ===<br />
*[[AR100]] firmware (WiP: Samuel Holland) [https://github.com/crust-firmware/crust ARISC firmware for sunxi SoCs ]<br />
<br />
* [[A13]] PSCI Suspend / Resume / CPUIdle (WiP: Antoine Tenart) [http://lists.denx.de/pipermail/u-boot/2016-September/265453.html patch-v1]<br />
<br />
=== Major drivers ===<br />
* [[H6]] IOMMU WIP Maxime Ripard [https://patchwork.kernel.org/cover/11394841/ iommu: Add Allwinner H6 IOMMU driver v2] <br />
<br />
*[[H6]] Hypervisor for PCIe [https://forum.armbian.com/topic/13529-a-try-on-utilizing-h6-pcie-with-virtualization/ A try on utilizing H6 PCIe with "Virtualization"]<br />
<br />
* HDMI Audio [[A64]] / [[H3]] / [[H5]] / [[H6]] WIP Jernej Škrabec (jernej) / LibreELEC<br />
<br />
* [[R40]] MIPI-DSI WIP Jagan Teki [https://patchwork.kernel.org/cover/11314031/ drm/sun4i: Allwinner R40 MIPI-DSI support v3] <br />
<br />
* [[AC100]] Audio codec WiP Ondrej Jirman [https://megous.com/git/linux/commit/?h=orange-pi-5.5&id=170d38d650f67657600d4e0e868e0e7110b89ee1 digital part] [https://megous.com/git/linux/commit/?h=orange-pi-5.5&id=ee424255a6fb9280ac27c1953019b768ca973ca7 analog part]<br />
<br />
* [[F1C100s]] USB WIP George Hilliard [https://lore.kernel.org/patchwork/cover/1206936/ Support the Allwinner F1C100s USB stack]<br />
<br />
=== Minor drivers ===<br />
<!-- Please move the newest entry to the top --><br />
* [[A64]] hwspinlock WIP Nikolay Borisov [https://patchwork.kernel.org/cover/11373645/ Add support for hwspinlock on A64 SoC] <br />
* [[A83T]] / [[A64]] / [[H3]] hwspinlock WIP Corentin Labbe (montjoie) [https://lore.kernel.org/patchwork/patch/706512/ RFC,1/3][https://lore.kernel.org/patchwork/patch/706511/ RFC,2/3][https://lore.kernel.org/patchwork/patch/706513/ RFC,3/3]<br />
* [[A10]] / [[A20]] / [[A31]] HDMI Audio WIP Stefan Mavrodiev [https://lore.kernel.org/patchwork/cover/1177803/ Add support for sun4i HDMI audio]<br />
* [[H6]] Cpufreq (DVFS) Clément Péron [https://lore.kernel.org/patchwork/cover/1220505/ Add support for Allwinner H6 DVFS v1]<br />
* [[A80]] Thermal sensor WIP Philipp Rossak (embed-3d): https://github.com/embed-3d/linux/branches/all<br />
* [[H5]] Cpufreq (DVFS) WIP Chen-Yu Tsai [https://patchwork.kernel.org/cover/10787869/ arm64: dts: allwinner: h5: Enable CPU DVFS (cpufreq)]<br />
* [[R40]] PWM (WIP Hao Zhang [https://www.spinics.net/lists/kernel/msg2731498.html patch-v2])<br />
* [[A31]]/[[A31s]] PWM support (WiP: Siarhei Volkau [http://lists.infradead.org/pipermail/linux-arm-kernel/2017-February/486405.html patch-v1])<br />
* [[A20]] Keypad (WiP: Yassin Jaffer (ddc) [http://lists.infradead.org/pipermail/linux-arm-kernel/2015-September/370079.html patch])<br />
<br />
=== Drivers that can still be improved/added ===<br />
<br />
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.<br />
<br />
* sunxi-musb driver lacks DMA support (with current driver, USB gadgets are limited to PIO, limiting speed to 10MiB/s and causing large CPU)<br />
* DE2 driver has buggy layer support, see [https://patchwork.kernel.org/patch/11145803/]<br />
* DE1/DE2/DE3 writeback support<br />
* A64 audiocodec driver components (sun8i-codec and sun50i-codec-analog) lack support for jack detection<br />
<br />
== Planned for 5.9 ==<br />
<br />
== Planned for 5.8 ==<br />
*[[A63]]/[[A83T]]/[[H3]]/[[H5]]/[[H6]]<br />
** Message Box<br />
<br />
== Planned for 5.7 ==<br />
*[[A20]]<br />
** LVDS<br />
<br />
*[[A83T]] and [[A64]]<br />
** Rotate driver<br />
<br />
*[[H6]]<br />
** SPI<br />
<br />
*[[R40]]<br />
** Thermal<br />
<br />
New Devices Supported<br />
*[[A13]]<br />
** [[PocketBook Touch Lux 3]]<br />
*[[A64]]<br />
** [[PineTab]]<br />
** [[PinePhone]]<br />
*[[A20]]<br />
** Linutronix Testbox v2<br />
<br />
== Merged into 5.6 ==<br />
* [[A10]]<br />
** CSI (BT656 and Parallel)<br />
<br />
*[[A64]]<br />
** MIPI DSI<br />
** DVFS<br />
<br />
*[[A64]] / [[A83T]] / [[H3]] / [[H5]] / [[H6]]<br />
** Thermal<br />
<br />
*[[H6]]<br />
** PWM<br />
<br />
*[[H3]] / [[H5]] / [[H6]] / [[R40]]<br />
**PMU<br />
<br />
*[[R40]]<br />
** CSI (BT656 and Parallel)<br />
** SPI<br />
<br />
New Devices Supported<br />
* [[H5]]<br />
** ALL-H3-IT H5 board<br />
** ALL-H5-CC H5 board<br />
* [[H6]]<br />
** [[PineH64]] Model A<br />
<br />
== Merged into 5.5 ==<br />
*[[H3]]<br />
** Deinterlace driver<br />
<br />
*[[H6]]<br />
**Crypto<br />
**GPU(3D) Mali<br />
**USB3 PHY (for boards not needing vbus switching)<br />
<br />
*[[A64]] / [[A80]] / [[A83T]] / [[H3]] / [[H5]] / [[R40]] <br />
**Crypto<br />
<br />
* multiple SoCs<br />
** [[Cedrus]] HEVC/H.265<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** Emlid Neutis<br />
<br />
New Devices Supported<br />
* [[H3]]<br />
** [[FriendlyARM_NanoPi_Duo2]]<br />
<br />
== Merged into 5.4 ==<br />
* [[A20]]<br />
** CSI (BT656 and Parallel)<br />
* [[A64]]<br />
** IR<br />
* [[H6]]<br />
** IR<br />
** RTC<br />
** SPDIF<br />
New Devices Supported<br />
* [[A64]]<br />
** [[Olimex A64-OLinuXino]] eMMC<br />
* [[H6]]<br />
** [[Tanix TX6]]<br />
* [[S3]]<br />
** [[Lichee Zero Plus]]<br />
<br />
== Merged into 5.3 ==<br />
* [[A64]]<br />
** LRADC<br />
** RGB LCD<br />
* [[A83T]]<br />
** CSI (BT656 and Parallel)<br />
* [[H6]]<br />
** DMA<br />
** Watchdog<br />
* multiple SoCs<br />
** [[Cedrus]] h264<br />
<br />
== Merged into 5.2 ==<br />
* [[A83T]]<br />
** LRADC<br />
** USB OTG<br />
<br />
* [[H6]]<br />
** [[Cedrus]]<br />
<br />
* multiple SoCs<br />
** [[Mali Open Source Driver|Lima]]<br />
** [[Mali Open Source Driver|Panfrost]]<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** Banana-Pi-M2-Zero<br />
<br />
New Devices Supported<br />
* [[H6]]<br />
** [[Beelink GS1]]<br />
** [[Xunlong Orange Pi 3]]<br />
<br />
== Merged into 5.1 ==<br />
* A10<br />
** Cedrus<br />
** PMU<br />
<br />
* A20<br />
** Audio Codec improvements<br />
<br />
* A23<br />
** Display pipeline<br />
** LCD enabled on Q8 A23 tablets<br />
<br />
* A64<br />
** ARM Architectural Timer errata workaround<br />
** PMU<br />
** CSI (BT656 and Parallel)<br />
<br />
* A80<br />
** GMAC support<br />
<br />
* CSI in general<br />
** RGR565 support<br />
** JPEG pass-through support<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** [[Banana Pi M2+]]<br />
** [[Banana Pi M2 Ultra]]<br />
<br />
* [[LCD]] enabled on [[A13]] [[Q8]] tablets<br />
<br />
== Merged into 5.0 ==<br />
* A64<br />
** Cedrus<br />
** DTS changes for audio codec<br />
<br />
* F1C100s<br />
** initial F1C100s support<br />
<br />
* H6<br />
** Ethernet<br />
** DE3/HDMI support<br />
** USB 2.0<br />
<br />
* H3 / H5<br />
** CSI (BT656 and Parallel) Support<br />
<br />
* H5<br />
** Cedrus<br />
<br />
* R40<br />
** RTC<br />
<br />
* T3<br />
** initial T3 support<ref>https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b7badd1d7aa61087010803affa19bb83fb5a0af1</ref><br />
<br />
* V3s<br />
** CSI (BT656 and Parallel) Support<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** [[Sinovoip Banana Pi M2 Magic | Banana Pi M2 Magic]]<br />
** [[Banana Pi M3]]<br />
** [[Banana Pi M64]]<br />
** [[Cubietruck]]<br />
** [[Cubietech_Cubietruck_Plus|Cubietruck Plus]]<br />
<br />
New Devices Supported<br />
* [[Xunlong Orange Pi Lite 2]]<br />
<br />
== Merged into 4.20 ==<br />
<br />
* A13 / A20 / A33 / H3<br />
** Cedrus driver<br />
<br />
* A83T<br />
** IR receiver<br />
<br />
* A64<br />
** Cleanup for device tree files<br />
** HDMI support<br />
** Audio codec support (DTS changes will be merged in 5.0)<br />
<br />
* H3 / H5<br />
** SID<br />
<br />
* R40<br />
** SATA<br />
<br />
New Devices Supported<br />
* [[Pine64]] LTS<br />
* [[Xunlong Orange Pi One Plus]]<br />
* [[Xunlong Orange Pi Zero Plus 2]] (H3 variant)<br />
* [[Sinovoip Banana Pi M2+]] (H5 variant)<br />
<br />
== Merged into 4.19 ==<br />
<br />
* A10 / A13 / A20 / A23 / A33<br />
** SRAM controller / system control<br />
<br />
* A64<br />
** SRAM controller / system control<br />
** Display clocks and bus<br />
** RTC clock output<br />
** PWM<br />
** R_I2C<br />
<br />
* H3<br />
** SRAM controller / system control<br />
<br />
* H6<br />
** MMC<br />
** PMIC<br />
<br />
* R40<br />
** HDMI support<br />
<br />
Board Changes<br />
* SPI flash node for [[Orange Pi PC 2]] and [[Pine64#Variants | Pine64 SoPINE]]<br />
* Use lid switch as wake-up source for A64 based laptops<br />
* LEDs added for [[PineH64]]<br />
<br />
New Devices<br />
* [[Pine Pinebook]]<br />
* Amarula A64-Relic<br />
<br />
== Changes merged up to 4.18 ==<br />
Changes up to 4.18 can be found on [[Linux mainlining history]] page.<br />
<br />
=References=<br />
<references /><br />
<br />
= See also =<br />
* [[Mainline Kernel Howto]]<br />
* [[Possible setups for hacking on mainline]]<br />
* [[Linux Kernel]]<br />
**[[Toolchain]]<br />
<br />
=External Links=<br />
* [http://www.kernel.org kernel.org] - Official website for the Linux Kernel<br />
** [http://github.com/torvalds/linux http://github.com/torvalds/linux] - Linus Torvalds' GitHub account with the upstream Linux kernel<br />
* [http://www.kernel.org/doc/ Linux Kernel documentation index]<br />
* [http://www.kernel.org/doc/man-pages/ Linux Kernel man pages]<br />
* [http://kernelnewbies.org/ Kernel Newbies Site - Excellent source of information for people new to kernel]<br />
* [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=summary Linus' kernel tree for 2.6]<br />
* [https://bugzilla.kernel.org/ Kernel bugzilla] - [https://bugzilla.kernel.org/show_bug.cgi?id=15790 Regressions for each of recent versions]<br />
* [http://www.fsfla.org/svnwiki/selibre/linux-libre/ Linux-libre project - Maintains and distributes fully free kernel]<br />
* [http://lingrok.org/ LinGrok, Linux kernel source code cross-reference]<br />
* [https://elixir.bootlin.com/linux/latest/source?a=arm Bootlin LXR (Linux Cross Reference)]<br />
* [http://lists.infradead.org/pipermail/linux-arm-kernel/ linux-arm-kernel - Mailing list archive]<br />
===How to upstream===<br />
* [http://www.elinux.org/images/a/ad/Arm-soc-checklist.pdf Your new ARM SoC Linux support check-list! by Thomas Petazzoni of Bootlin]<br />
*[http://www.cnx-software.com/2014/03/04/linux-kernel-upstreaming-how-to-linaro-connect-asia-2014/ Linux Kernel Upstreaming How-To (CNXSoft - Embedded Software Development)]<br />
**[http://www.youtube.com/watch?v=dY7fikYZ42c Matt Porter's YouTube video talk on “Upstreaming 101" (LCA14-111)]<br />
***[http://www.linaro.org/documents/download/65f888c674508efcf9bd5d90398a186a530d01c4c78db Matt Porter's presentation slides for “Upstreaming 101" (LCA14-111)]<br />
**[https://www.youtube.com/watch?v=FiQ5uV_Mm5c Matt Porter's YouTube video talk on “Upstreaming 201" (LCA14-112)]<br />
***[http://www.linaro.org/documents/download/7b9920fcc89589bad9063d87d9137f08530d020b71924 Matt Porter's presentation slides for “Upstreaming 201" (LCA14-112)]<br />
*[http://www.cnx-software.com/2011/08/19/how-to-write-and-submit-a-linux-kernel-patch/ How to Write and Submit a Linux Kernel Patch (CNXSoft - Embedded Software Development)]<br />
** [http://www.youtube.com/watch?v=LLBrBBImJt4 YouTube Video- Write and Submit your first Linux kernel Patch]<br />
** [http://www.cnx-software.com/pdf/kernel-tutorial/kernel_patch_tutorial.pdf Greg Kroah-Hartman Kernel Tutorial Write and Submit your first Linux Kernel Patch]<br />
*[http://www.linaro.org/connect-lca14/resources Linaro resources page from LCA (Linaro Connect Asia) 2014]<br />
<br />
=Notes=<br />
<references group=note /><br />
<br />
[[Category:Development]]</div>
Frozeus
https://linux-sunxi.org/index.php?title=Linux_mainlining_effort&diff=23254
Linux mainlining effort
2020-04-05T11:21:45Z
<p>Frozeus: DE2 rotate driver is merged</p>
<hr />
<div>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.<br />
<br />
=Overview=<br />
The idea is to submit the code needed to run the Linux kernel on Allwinner SoCs upstream, ie. to the official Linux kernel.<br />
<br />
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.<ref>http://www.elinux.org/images/a/ad/Arm-soc-checklist.pdf</ref><ref>[http://www.cnx-software.com/2013/01/16/your-new-arm-soc-linux-support-check-list-elce-2012/ Your New ARM SoC Linux Support Check-List – ELCE 2012]</ref><br />
<br />
Where relevant, I have attempted to include who is currently working on an item, mostly separate from any particular mainlining goal.<br />
<br />
=Status=<br />
<br />
The [[Mainline_Kernel_Howto|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|Mainline U-Boot howto]].<br />
<br />
The [[:Category:Mainline_Kernel | Mainline Kernel category ]] gives an overview of currently supported devices.<br />
<br />
== Status Matrix ==<br />
<br />
The goal of this matrix is to give an easy view of work on each SoC worked on by linux-sunxi.<br />
<br />
{| class="wikitable" style="text-align: center; width: 100%;"<br />
|-<br />
! style="width: 13%; text-align: left;" colspan="2" | Model<br />
! [[F1C100s|F1C-<br>100s]]<br />
! [[A10]]<br />
! [[A10s]]<br />
! [[A13]]<br>[[R8]]<br />
! [[A20]]<br>[[T2]]<br />
! [[A23]]<br />
! [[A31]]<br />
! [[A33]]<br>[[R16]]<br />
! [[A64]]<br />
! [[A80]]<br />
! [[A83T]]<br />
! [[GR8]]<br />
! [[H3]]<br />
! [[H5]]<br />
! [[H6]]<br />
! [[R40]]<br>[[T3]]<br />
! [[V3]]|[[V3s]]<br>[[S3]]|[[S3L]]<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | AC97<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[Audio Codec]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 5.0<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: red;" | NO<br />
<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" rowspan="3" | ADC<br />
| style="text-align: left;" | GPADC<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| N/A<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: lightgreen;" | 4.12<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | Thermal<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: darkgreen;" | ?<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.7<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | Touch<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.16<br />
| N/A<br />
| style="background: lightgreen;" | 4.0<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: lightgreen;" | 4.9<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| rowspan="4" style="text-align: left;" | [[CSI|Camera]]<br />
<br />
| style="text-align: left;" | BT656<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.0<br />
<br />
|-<br />
| style="text-align: left;" | ISP<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | MIPI CSI<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" | Parallel<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.0<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Clocks<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.10<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.10<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | CPUFreq (DVFS)<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[Cryptographic_Hardware_Accelerators|Crypto]]<br />
| N/A<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: darkgreen;" | ?<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Display (SimpleFB)<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen" | 4.16<br />
| style="background: lightgreen" | 4.16<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| rowspan="8" style="text-align: left;" | Display<br />
([https://dri.freedesktop.org/wiki/DRM/ DRM])<br />
<br />
| style="text-align: left;" | CVBS<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.9 ?<br />
| style="background: lightgreen;" | 4.7<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | HDMI Audio<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | HDMI CEC<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.14<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.17<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: orange;" | WIP<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | HDMI Video<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.13<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| style="background: lightgreen;" | 4.15<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.17<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.19<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | LVDS<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.7<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.16<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | MIPI DSI<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.18<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | RGB<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.7<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.9<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" | VGA<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | DMA<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" rowspan="2" | [[Ethernet]]<br />
| style="text-align: left;" | [[Ethernet#EMAC|EMAC]]<br />
| rowspan="2"| N/A<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.11<br />
| rowspan="2"| N/A<br />
| style="background: lightgreen;" | 3.11 <br />
| rowspan="2"| N/A<br />
| N/A<br />
| rowspan="2"| N/A<br />
| style="background: lightgreen;" rowspan="2" | 4.15<br />
| style="background: lightgreen;" rowspan="2" | 5.1<br />
| style="background: lightgreen;" rowspan="2" | 4.16<br />
| rowspan="2"| N/A<br />
| style="background: lightgreen;" rowspan="2" | 4.15<br />
| style="background: lightgreen;" rowspan="2" | 4.15<br />
| style="background: lightgreen;" rowspan="2" | 5.0<br />
| style="background: lightgreen;" rowspan="2" | 4.18<br />
| style="background: lightgreen;" rowspan="2" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" | [[Ethernet#GMAC|GMAC]]<br />
<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.17<br />
<br />
|-<br />
| style="text-align: left;" rowspan="2" | GPU(3D)<br />
| style="text-align: left;" | [[Mali]]<br />
| N/A<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| N/A<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" | [[PowerVR]]<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | HW Spinlocks<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| N/A<br />
| style="background: orange;" | [[Linux mainlining effort#Minor_drivers|WIP]]<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[I2C]]<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.11<br />
| style="background: lightgreen;" | 3.13<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | I2S<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | IOMMU<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[IR]]<br />
| style="background: red" | NO<br />
| style="background: lightgreen;" | 3.17<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 3.17<br />
| N/A<br />
| style="background: lightgreen;" | 4.0<br />
| N/A<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Keypad<br />
| N/A<br />
| style="background: orange;" | WIP<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | WIP<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red;" | NO<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | LRADC<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | MsgBox<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Core_Stuff|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Core_Stuff|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Core_Stuff|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Core_Stuff|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Core_Stuff|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Core_Stuff|WIP]]<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Core_Stuff|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Core_Stuff|WIP]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Core_Stuff|WIP]]<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[NAND]]<br />
| N/A<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 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 [[MTD_Driver#Challenges|this page]] </ref><br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9 <ref name="mlc"/><br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9 <ref name="mlc" /><br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9 <ref name="mlc" /><br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: red;" | NO<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | PCIe<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<ref name="h6-pcie">Allwinner H6 has a quirky PCIe controller that doesn't map the PCIe address space properly to CPU,<br />
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/</ref><br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Pinctrl<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 3.9<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[PMU]]<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.5<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: grey; color: white;" | ?<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[PWM_Controller|PWM]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.16<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: orange;" | [[Linux_mainlining_effort#Minor_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.12<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[RSB]]<br />
| style="background: red;" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.4<br />
| N/A<br />
| style="background: lightgreen;" | 4.4<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.14<br />
| N/A<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| style="background: grey; color: white;" | ?<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[RTC]]<br />
| N/A<br />
| style="background: lightgreen;" | 3.14<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.14<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.10<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SATA]]<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 3.15<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.20<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | SD/ [[eMMC|MMC]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.0<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | SMP<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 4.18<br />
| N/A<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| style="background: lightgreen" | PSCI<br />
| style="background: lightgreen;" | PSCI<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SPDIF]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.7<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.7<br />
| N/A<br />
| style="background: lightgreen;" | 4.9<br />
| N/A<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.13<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.4<br />
| style="background: darkgreen;" | ?<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SPIdev|SPI]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.10<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.7<br />
| style="background: lightgreen;" | 5.6<br />
| style="background: lightgreen;" | 4.13<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[SRAM Controller|SRAM]]<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 4.19<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.19<br />
| style="background: lightgreen;" | 5.0 <br />
| style="background: lightgreen;" | 5.1 <br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[USB]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 3.15<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 3.16<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.14<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[USB_OTG_Controller_Register_guide#USB_OTG|USB OTG]]<br />
| style="background: orange;" | [[Linux_mainlining_effort#Major_drivers|WIP]]<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.3<br />
| style="background: lightgreen;" | 4.8<br />
| style="background: lightgreen;" | 4.11<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.2<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | USB3<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: red" | NO<br />
| N/A<br />
| N/A<br />
| N/A<br />
| N/A<br />
| style="background: lightgreen;" | 5.5<br />
| N/A<br />
| N/A<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | [[Video_Engine|VE]] | [[Sunxi-Cedrus]]<br />
| style="background: red;" | NO<br />
| style="background: lightgreen;" | 5.1<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: darkgreen;" | ?<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: red;" | NO<br />
| style="background: red;" | NO<br />
| style="background: darkgreen;" | ?<br />
| style="background: lightgreen;" | 4.20<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 5.2 <br />
| style="background: red;" | NO<br />
| style="background: darkgreen;" | ?<br />
<br />
|-<br />
| style="text-align: left;" colspan="2" | Watchdog<br />
| style="background: lightgreen;" | 5.0<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.12<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 3.18<br />
| style="background: lightgreen;" | 4.2<br />
| style="background: lightgreen;" | 4.17<br />
| style="background: lightgreen;" | 3.19<br />
| style="background: lightgreen;" | 4.6<br />
| style="background: lightgreen;" | 4.9<br />
| style="background: lightgreen;" | 4.5<br />
| style="background: lightgreen;" | 4.12<br />
| style="background: lightgreen;" | 5.3<br />
| style="background: lightgreen;" | 4.15<br />
| style="background: lightgreen;" | 4.11<br />
<br />
|-<br />
! style="text-align: left;" colspan="2" | Model<br />
! [[F1C100s|F1C-<br>100s]]<br />
! [[A10]]<br />
! [[A10s]]<br />
! [[A13]]<br />
[[R8]]<br />
! [[A20]]<br>[[T2]]<br />
! [[A23]]<br />
! [[A31]]<br />
! [[A33]]<br />
[[R16]]<br />
! [[A64]]<br />
! [[A80]]<br />
! [[A83T]]<br />
! [[GR8]]<br />
! [[H3]]<br />
! [[H5]]<br />
! [[H6]]<br />
! [[R40]]<br />
[[T3]]<br />
! [[V3]]|[[V3s]]<br>[[S3]]|[[S3L]]<br />
<br />
|}<br />
<br />
<br />
{| class="wikitable" style="text-align: center;"<br />
|-<br />
! Legend<br />
|-<br />
| style="background: lightgreen;" | In Linux mainline since version x<br />
|-<br />
| style="background: darkgreen;" | Nobody works on it, but it should be compatible with already done drivers<br />
|-<br />
| style="background: orange;" | Somebody works on it<br />
|-<br />
| style="background: red;" | No support, nobody works on it<br />
|-<br />
| style="background: black; color: white;" | support impossible<br />
|-<br />
| style="background: grey; color: white;" | Status is unknown/to be completed<br />
|}<br />
<br />
== Work In Progress ==<br />
<br />
=== Core Stuff ===<br />
*[[AR100]] firmware (WiP: Samuel Holland) [https://github.com/crust-firmware/crust ARISC firmware for sunxi SoCs ]<br />
<br />
* Message box (WiP: Samuel Holland) [https://lore.kernel.org/patchwork/cover/1199086/ Allwinner sunxi message box support patch-v7]<br />
<br />
* [[A13]] PSCI Suspend / Resume / CPUIdle (WiP: Antoine Tenart) [http://lists.denx.de/pipermail/u-boot/2016-September/265453.html patch-v1]<br />
<br />
=== Major drivers ===<br />
* [[H6]] IOMMU WIP Maxime Ripard [https://patchwork.kernel.org/cover/11394841/ iommu: Add Allwinner H6 IOMMU driver v2] <br />
<br />
*[[H6]] Hypervisor for PCIe [https://forum.armbian.com/topic/13529-a-try-on-utilizing-h6-pcie-with-virtualization/ A try on utilizing H6 PCIe with "Virtualization"]<br />
<br />
* HDMI Audio [[A64]] / [[H3]] / [[H5]] / [[H6]] WIP Jernej Škrabec (jernej) / LibreELEC<br />
<br />
* [[R40]] MIPI-DSI WIP Jagan Teki [https://patchwork.kernel.org/cover/11314031/ drm/sun4i: Allwinner R40 MIPI-DSI support v3] <br />
<br />
* [[AC100]] Audio codec WiP Ondrej Jirman [https://megous.com/git/linux/commit/?h=orange-pi-5.5&id=170d38d650f67657600d4e0e868e0e7110b89ee1 digital part] [https://megous.com/git/linux/commit/?h=orange-pi-5.5&id=ee424255a6fb9280ac27c1953019b768ca973ca7 analog part]<br />
<br />
* [[F1C100s]] USB WIP George Hilliard [https://lore.kernel.org/patchwork/cover/1206936/ Support the Allwinner F1C100s USB stack]<br />
<br />
=== Minor drivers ===<br />
<!-- Please move the newest entry to the top --><br />
* [[A64]] hwspinlock WIP Nikolay Borisov [https://patchwork.kernel.org/cover/11373645/ Add support for hwspinlock on A64 SoC] <br />
* [[A83T]] / [[A64]] / [[H3]] hwspinlock WIP Corentin Labbe (montjoie) [https://lore.kernel.org/patchwork/patch/706512/ RFC,1/3][https://lore.kernel.org/patchwork/patch/706511/ RFC,2/3][https://lore.kernel.org/patchwork/patch/706513/ RFC,3/3]<br />
* [[A10]] / [[A20]] / [[A31]] HDMI Audio WIP Stefan Mavrodiev [https://lore.kernel.org/patchwork/cover/1177803/ Add support for sun4i HDMI audio]<br />
* [[H6]] Cpufreq (DVFS) Clément Péron [https://lore.kernel.org/patchwork/cover/1220505/ Add support for Allwinner H6 DVFS v1]<br />
* [[A80]] Thermal sensor WIP Philipp Rossak (embed-3d): https://github.com/embed-3d/linux/branches/all<br />
* [[H5]] Cpufreq (DVFS) WIP Chen-Yu Tsai [https://patchwork.kernel.org/cover/10787869/ arm64: dts: allwinner: h5: Enable CPU DVFS (cpufreq)]<br />
* [[R40]] PWM (WIP Hao Zhang [https://www.spinics.net/lists/kernel/msg2731498.html patch-v2])<br />
* [[A31]]/[[A31s]] PWM support (WiP: Siarhei Volkau [http://lists.infradead.org/pipermail/linux-arm-kernel/2017-February/486405.html patch-v1])<br />
* [[A20]] Keypad (WiP: Yassin Jaffer (ddc) [http://lists.infradead.org/pipermail/linux-arm-kernel/2015-September/370079.html patch])<br />
<br />
=== Drivers that can still be improved/added ===<br />
<br />
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.<br />
<br />
* sunxi-musb driver lacks DMA support (with current driver, USB gadgets are limited to PIO, limiting speed to 10MiB/s and causing large CPU)<br />
* DE2 driver has buggy layer support, see [https://patchwork.kernel.org/patch/11145803/]<br />
* DE1/DE2/DE3 writeback support<br />
* A64 audiocodec driver components (sun8i-codec and sun50i-codec-analog) lack support for jack detection<br />
<br />
== Planned for 5.9 ==<br />
<br />
== Planned for 5.8 ==<br />
<br />
== Planned for 5.7 ==<br />
*[[A20]]<br />
** LVDS<br />
<br />
*[[A83T]] and [[A64]]<br />
** Rotate driver<br />
<br />
*[[H6]]<br />
** SPI<br />
<br />
*[[R40]]<br />
** Thermal<br />
<br />
New Devices Supported<br />
*[[A13]]<br />
** [[PocketBook Touch Lux 3]]<br />
*[[A64]]<br />
** [[PineTab]]<br />
** [[PinePhone]]<br />
*[[A20]]<br />
** Linutronix Testbox v2<br />
<br />
== Merged into 5.6 ==<br />
* [[A10]]<br />
** CSI (BT656 and Parallel)<br />
<br />
*[[A64]]<br />
** MIPI DSI<br />
** DVFS<br />
<br />
*[[A64]] / [[A83T]] / [[H3]] / [[H5]] / [[H6]]<br />
** Thermal<br />
<br />
*[[H6]]<br />
** PWM<br />
<br />
*[[H3]] / [[H5]] / [[H6]] / [[R40]]<br />
**PMU<br />
<br />
*[[R40]]<br />
** CSI (BT656 and Parallel)<br />
** SPI<br />
<br />
New Devices Supported<br />
* [[H5]]<br />
** ALL-H3-IT H5 board<br />
** ALL-H5-CC H5 board<br />
* [[H6]]<br />
** [[PineH64]] Model A<br />
<br />
== Merged into 5.5 ==<br />
*[[H3]]<br />
** Deinterlace driver<br />
<br />
*[[H6]]<br />
**Crypto<br />
**GPU(3D) Mali<br />
**USB3 PHY (for boards not needing vbus switching)<br />
<br />
*[[A64]] / [[A80]] / [[A83T]] / [[H3]] / [[H5]] / [[R40]] <br />
**Crypto<br />
<br />
* multiple SoCs<br />
** [[Cedrus]] HEVC/H.265<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** Emlid Neutis<br />
<br />
New Devices Supported<br />
* [[H3]]<br />
** [[FriendlyARM_NanoPi_Duo2]]<br />
<br />
== Merged into 5.4 ==<br />
* [[A20]]<br />
** CSI (BT656 and Parallel)<br />
* [[A64]]<br />
** IR<br />
* [[H6]]<br />
** IR<br />
** RTC<br />
** SPDIF<br />
New Devices Supported<br />
* [[A64]]<br />
** [[Olimex A64-OLinuXino]] eMMC<br />
* [[H6]]<br />
** [[Tanix TX6]]<br />
* [[S3]]<br />
** [[Lichee Zero Plus]]<br />
<br />
== Merged into 5.3 ==<br />
* [[A64]]<br />
** LRADC<br />
** RGB LCD<br />
* [[A83T]]<br />
** CSI (BT656 and Parallel)<br />
* [[H6]]<br />
** DMA<br />
** Watchdog<br />
* multiple SoCs<br />
** [[Cedrus]] h264<br />
<br />
== Merged into 5.2 ==<br />
* [[A83T]]<br />
** LRADC<br />
** USB OTG<br />
<br />
* [[H6]]<br />
** [[Cedrus]]<br />
<br />
* multiple SoCs<br />
** [[Mali Open Source Driver|Lima]]<br />
** [[Mali Open Source Driver|Panfrost]]<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** Banana-Pi-M2-Zero<br />
<br />
New Devices Supported<br />
* [[H6]]<br />
** [[Beelink GS1]]<br />
** [[Xunlong Orange Pi 3]]<br />
<br />
== Merged into 5.1 ==<br />
* A10<br />
** Cedrus<br />
** PMU<br />
<br />
* A20<br />
** Audio Codec improvements<br />
<br />
* A23<br />
** Display pipeline<br />
** LCD enabled on Q8 A23 tablets<br />
<br />
* A64<br />
** ARM Architectural Timer errata workaround<br />
** PMU<br />
** CSI (BT656 and Parallel)<br />
<br />
* A80<br />
** GMAC support<br />
<br />
* CSI in general<br />
** RGR565 support<br />
** JPEG pass-through support<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** [[Banana Pi M2+]]<br />
** [[Banana Pi M2 Ultra]]<br />
<br />
* [[LCD]] enabled on [[A13]] [[Q8]] tablets<br />
<br />
== Merged into 5.0 ==<br />
* A64<br />
** Cedrus<br />
** DTS changes for audio codec<br />
<br />
* F1C100s<br />
** initial F1C100s support<br />
<br />
* H6<br />
** Ethernet<br />
** DE3/HDMI support<br />
** USB 2.0<br />
<br />
* H3 / H5<br />
** CSI (BT656 and Parallel) Support<br />
<br />
* H5<br />
** Cedrus<br />
<br />
* R40<br />
** RTC<br />
<br />
* T3<br />
** initial T3 support<ref>https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b7badd1d7aa61087010803affa19bb83fb5a0af1</ref><br />
<br />
* V3s<br />
** CSI (BT656 and Parallel) Support<br />
<br />
* [[Bluetooth#AMPAK|Broadcom-based (AMPAK modules) Bluetooth]] support on<br />
** [[Sinovoip Banana Pi M2 Magic | Banana Pi M2 Magic]]<br />
** [[Banana Pi M3]]<br />
** [[Banana Pi M64]]<br />
** [[Cubietruck]]<br />
** [[Cubietech_Cubietruck_Plus|Cubietruck Plus]]<br />
<br />
New Devices Supported<br />
* [[Xunlong Orange Pi Lite 2]]<br />
<br />
== Merged into 4.20 ==<br />
<br />
* A13 / A20 / A33 / H3<br />
** Cedrus driver<br />
<br />
* A83T<br />
** IR receiver<br />
<br />
* A64<br />
** Cleanup for device tree files<br />
** HDMI support<br />
** Audio codec support (DTS changes will be merged in 5.0)<br />
<br />
* H3 / H5<br />
** SID<br />
<br />
* R40<br />
** SATA<br />
<br />
New Devices Supported<br />
* [[Pine64]] LTS<br />
* [[Xunlong Orange Pi One Plus]]<br />
* [[Xunlong Orange Pi Zero Plus 2]] (H3 variant)<br />
* [[Sinovoip Banana Pi M2+]] (H5 variant)<br />
<br />
== Merged into 4.19 ==<br />
<br />
* A10 / A13 / A20 / A23 / A33<br />
** SRAM controller / system control<br />
<br />
* A64<br />
** SRAM controller / system control<br />
** Display clocks and bus<br />
** RTC clock output<br />
** PWM<br />
** R_I2C<br />
<br />
* H3<br />
** SRAM controller / system control<br />
<br />
* H6<br />
** MMC<br />
** PMIC<br />
<br />
* R40<br />
** HDMI support<br />
<br />
Board Changes<br />
* SPI flash node for [[Orange Pi PC 2]] and [[Pine64#Variants | Pine64 SoPINE]]<br />
* Use lid switch as wake-up source for A64 based laptops<br />
* LEDs added for [[PineH64]]<br />
<br />
New Devices<br />
* [[Pine Pinebook]]<br />
* Amarula A64-Relic<br />
<br />
== Changes merged up to 4.18 ==<br />
Changes up to 4.18 can be found on [[Linux mainlining history]] page.<br />
<br />
=References=<br />
<references /><br />
<br />
= See also =<br />
* [[Mainline Kernel Howto]]<br />
* [[Possible setups for hacking on mainline]]<br />
* [[Linux Kernel]]<br />
**[[Toolchain]]<br />
<br />
=External Links=<br />
* [http://www.kernel.org kernel.org] - Official website for the Linux Kernel<br />
** [http://github.com/torvalds/linux http://github.com/torvalds/linux] - Linus Torvalds' GitHub account with the upstream Linux kernel<br />
* [http://www.kernel.org/doc/ Linux Kernel documentation index]<br />
* [http://www.kernel.org/doc/man-pages/ Linux Kernel man pages]<br />
* [http://kernelnewbies.org/ Kernel Newbies Site - Excellent source of information for people new to kernel]<br />
* [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=summary Linus' kernel tree for 2.6]<br />
* [https://bugzilla.kernel.org/ Kernel bugzilla] - [https://bugzilla.kernel.org/show_bug.cgi?id=15790 Regressions for each of recent versions]<br />
* [http://www.fsfla.org/svnwiki/selibre/linux-libre/ Linux-libre project - Maintains and distributes fully free kernel]<br />
* [http://lingrok.org/ LinGrok, Linux kernel source code cross-reference]<br />
* [https://elixir.bootlin.com/linux/latest/source?a=arm Bootlin LXR (Linux Cross Reference)]<br />
* [http://lists.infradead.org/pipermail/linux-arm-kernel/ linux-arm-kernel - Mailing list archive]<br />
===How to upstream===<br />
* [http://www.elinux.org/images/a/ad/Arm-soc-checklist.pdf Your new ARM SoC Linux support check-list! by Thomas Petazzoni of Bootlin]<br />
*[http://www.cnx-software.com/2014/03/04/linux-kernel-upstreaming-how-to-linaro-connect-asia-2014/ Linux Kernel Upstreaming How-To (CNXSoft - Embedded Software Development)]<br />
**[http://www.youtube.com/watch?v=dY7fikYZ42c Matt Porter's YouTube video talk on “Upstreaming 101" (LCA14-111)]<br />
***[http://www.linaro.org/documents/download/65f888c674508efcf9bd5d90398a186a530d01c4c78db Matt Porter's presentation slides for “Upstreaming 101" (LCA14-111)]<br />
**[https://www.youtube.com/watch?v=FiQ5uV_Mm5c Matt Porter's YouTube video talk on “Upstreaming 201" (LCA14-112)]<br />
***[http://www.linaro.org/documents/download/7b9920fcc89589bad9063d87d9137f08530d020b71924 Matt Porter's presentation slides for “Upstreaming 201" (LCA14-112)]<br />
*[http://www.cnx-software.com/2011/08/19/how-to-write-and-submit-a-linux-kernel-patch/ How to Write and Submit a Linux Kernel Patch (CNXSoft - Embedded Software Development)]<br />
** [http://www.youtube.com/watch?v=LLBrBBImJt4 YouTube Video- Write and Submit your first Linux kernel Patch]<br />
** [http://www.cnx-software.com/pdf/kernel-tutorial/kernel_patch_tutorial.pdf Greg Kroah-Hartman Kernel Tutorial Write and Submit your first Linux Kernel Patch]<br />
*[http://www.linaro.org/connect-lca14/resources Linaro resources page from LCA (Linaro Connect Asia) 2014]<br />
<br />
=Notes=<br />
<references group=note /><br />
<br />
[[Category:Development]]</div>
Frozeus