Skip to content

Commit 941776e

Browse files
davide125Conan-Kudo
authored andcommitted
Add feature support page for M4
Fixes: #154 Signed-off-by: Davide Cavalca <[email protected]>
1 parent 5db311a commit 941776e

3 files changed

Lines changed: 123 additions & 0 deletions

File tree

docs/Feature-Support.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,6 @@ page. Each page below follows the same format as the old unified page.
44
- [M1 Series (M1, M1 Pro, M1 Max, M1 Ultra) Feature Support](M1-Series-Feature-Support.md)
55
- [M2 Series (M2, M2 Pro, M2 Max, M2 Ultra) Feature Support](M2-Series-Feature-Support.md)
66
- [M3 Series (M3, M3 Pro, M3 Max) Feature Support](M3-Series-Feature-Support.md)
7+
- [M4 Series (M4, M4 Pro, M4 Max) Feature Support](M4-Series-Feature-Support.md)
78

89
A condensed feature overview for the Fedora Asahi Remix is available at [https://asahilinux.org/fedora/#device-support](https://asahilinux.org/fedora/#device-support).

docs/M4-Series-Feature-Support.md

Lines changed: 121 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
1+
This page details currently supported features on all M4 series (M4, M4 Pro, M4 Max) Apple Silicon Macs, as well as
2+
their progress towards being upstreamed. The tables herein can be interpreted as follows:
3+
4+
* **Kernel release, *e.g.* 6.0:** the feature was incorporated upstream as of this release
5+
* **linux-asahi (kernel release):** the feature is stable, available for use in `linux-asahi`, and should be upstream by the release indicated
6+
* **linux-asahi**: the feature is (mostly) stable and available for use in Fedora Asahi Remix and in `linux-asahi`
7+
* **asahi-edge**: the feature is (mostly) stable and available for use in Fedora Asahi Remix. For historical reason it is available in the `linux-asahi-edge` package in the linux-asahi Linux distribution
8+
* **WIP**: Development work on the feature is actively progressing, however is not yet ready for wider testing, use or distribution
9+
* **TBA**: Active work on this feature is not being undertaken at this time
10+
11+
If a feature is not ready, then there is no estimation on when it will be ready. [Please do not ask for estimations in support channels (e.g. IRC)](When-will-Asahi-Linux-be-done.md).
12+
13+
## Table of Contents
14+
- [SoC blocks](#soc-blocks)
15+
- [M4 devices](#m4-devices)
16+
- [M4 Pro/Max devices](#m4-promax-devices)
17+
- [Notes](#notes)
18+
19+
Note that as these machines have not been released for general availability yet, supported and missing features are predictions based on what Apple has changed
20+
on a per-SoC and per-machine basis in the past. This page will change rapidly once work begins on support for these machines.
21+
22+
## SoC blocks
23+
These are features/hardware blocks that are present on all devices with the given SoC.
24+
25+
| | M4<br>(T8132) | M4 Pro/Max<br>(T604x) |
26+
|------------------|:--------------------:|:---------------------------:|
27+
| DCP | TBA | TBA |
28+
| USB2 (TB ports) | linux-asahi | linux-asahi |
29+
| USB3 (TB ports) | linux-asahi | linux-asahi |
30+
| Thunderbolt | TBA | TBA |
31+
| DP Alt Mode | WIP | WIP |
32+
| GPU | TBA | TBA |
33+
| Video Decoder | TBA | TBA |
34+
| NVMe | 5.19 | 5.19 |
35+
| PCIe | TBA | TBA |
36+
| PCIe (GE) | - | - |
37+
| cpufreq | 6.2 | 6.2 |
38+
| cpuidle | linux-asahi ([notes](#cpuidle-situation)) | linux-asahi ([notes](#cpuidle-situation)) |
39+
| Suspend/sleep | asahi-edge | asahi-edge |
40+
| Video Encoder | TBA | TBA |
41+
| ProRes Codec | TBA | TBA |
42+
| AICv3 | TBA | TBA |
43+
| DART | TBA | TBA |
44+
| PMU | TBA | TBA |
45+
| UART | 5.13 | 5.13 |
46+
| Watchdog | 5.17 | 5.17 |
47+
| I<sup>2</sup>C | 5.16 | 5.16 |
48+
| GPIO | 5.16 | 5.16 |
49+
| USB-PD | 5.16 | 5.16 |
50+
| MCA | 6.1 / 6.4 (dts) | linux-asahi |
51+
| SPI | linux-asahi | linux-asahi |
52+
| SPI NOR | linux-asahi | linux-asahi |
53+
| SMC | linux-asahi | linux-asahi |
54+
| SPMI | linux-asahi | linux-asahi |
55+
| RTC | linux-asahi | linux-asahi |
56+
| SEP | WIP | WIP |
57+
| Neural Engine | out of tree ([notes](#ane-driver)) | out of tree ([notes](#ane-driver)) |
58+
59+
60+
## M4 devices
61+
| | MacBook Pro<br>(14-inch, Nov 2024) | MacBook Pro<br>(16-inch, Nov 2024) |
62+
|--------------------|:-----------------------------------:|:----------------------------------:|
63+
| Installer | no | no |
64+
| Devicetree | TBA | TBA |
65+
| Main display | TBA | TBA |
66+
| Keyboard | TBA | TBA |
67+
| KB backlight | TBA | TBA |
68+
| Touchpad | TBA | TBA |
69+
| Brightness | TBA | TBA |
70+
| Battery info | TBA | TBA |
71+
| WiFi | TBA | TBA |
72+
| Bluetooth | TBA | TBA |
73+
| HDMI Out | TBA | TBA |
74+
| 3.5mm jack | TBA | TBA |
75+
| Speakers | TBA | TBA |
76+
| Microphones | TBA | TBA |
77+
| Webcam | TBA | TBA |
78+
| SD card slot | TBA | TBA |
79+
| TouchID | TBA | TBA |
80+
81+
## M4 Pro/Max devices
82+
| | Mac mini<br>(2024) | MacBook Pro<br>(14-inch, Nov 2024) | MacBook Pro<br>(16-inch, Nov 2024) |
83+
|--------------------|:------------------:|:-----------------------------------:|:----------------------------------:|
84+
| Installer | no | no | no |
85+
| Devicetree | TBA | TBA | TBA |
86+
| Main display | TBA | TBA | TBA |
87+
| Keyboard | - | TBA | TBA |
88+
| KB backlight | - | TBA | TBA |
89+
| Touchpad | - | TBA | TBA |
90+
| Brightness | TBA | TBA | TBA |
91+
| Battery info | - | TBA | TBA |
92+
| WiFi | TBA | TBA | TBA |
93+
| Bluetooth | TBA | TBA | TBA |
94+
| HDMI Out | - | TBA | - |
95+
| 3.5mm jack | TBA | TBA | TBA |
96+
| Speakers | TBA | TBA | TBA |
97+
| Microphones | TBA | TBA | TBA |
98+
| Webcam | TBA | TBA | TBA |
99+
| SD card slot | - | TBA | - |
100+
| 1Gbps Ethernet | TBA | - | - |
101+
| 10Gbps Ethernet | - | - | - |
102+
| TouchID | - | TBA | TBA |
103+
104+
Note: Many peripherals depend on DART and PCIe support.
105+
106+
107+
## Notes
108+
109+
### cpuidle situation
110+
Some power management functionality on ARM machines is controlled via the PSCI interface. The
111+
kernel has a specific way of talking to PSCI that is not compatible with Apple Silicon, and a
112+
discussion is required with upstream maintainers in order to figure out the best way forward. Given
113+
that this discussion has failed to materialise for two years, the decision has been
114+
made to hack together a driver that directly calls WFI/WFE instructions in order to bring
115+
this functionality to Asahi Linux. This greatly improves the UX on laptops when coupled with
116+
energy-aware scheduling, as it resolves the issue of the machines running warm to the touch
117+
and significantly improves battery life. This can never be upstreamed, however the hope is
118+
that this hacked together driver becomes unnecessary at some point in the near future.
119+
120+
### ANE driver
121+
An out of tree [kernel module](https://github.com/eiln/ane/tree/main) is available. It will be merged into linux-asahi.

mkdocs.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ nav:
99
- M1 Series Feature Support: M1-Series-Feature-Support.md
1010
- M2 Series Feature Support: M2-Series-Feature-Support.md
1111
- M3 Series Feature Support: M3-Series-Feature-Support.md
12+
- M4 Series Feature Support: M4-Series-Feature-Support.md
1213
- Project related:
1314
- Glossary: Glossary.md
1415
- FAQ: FAQ.md

0 commit comments

Comments
 (0)