The first support code for Apple’s ARM-CPU M1 has been added to the SoC branch of the Linux kernel. This means that the initial support for the so-called Apple Silicon could appear with Linux kernel version 5.13. This is reported by the Asahi Linux project responsible for the port and most of the upstream work on Twitter.
The implemented code so far only includes support for a serial console and for the use of the frame buffer. According to Asahi Linux, other drivers are still missing. This is justified with the self-selected upstream-first guideline, which is described as unusual for the otherwise common Linux ports to new SoCs.
In concrete terms, this means that the main developer Hector Martin and his colleagues do not have to complete the port code in their own fork. Rather, the work should be integrated into the main branch of the Linux kernel as early as possible.
This improves the code quality and reduces the total amount of work required since the individual parts can be more easily integrated into the main branch from the start.
According to Asahi Linux, the code that has now been added was relatively extensive and is described as a “pipeline blocker.” Future work, however, could be divided into smaller parts much more easily and fed into the main branch parallel to one another so that development could go faster.
Main developer Martin describes the now completed step as probably the most difficult of the entire development, apart from the reverse engineering of the GPU.