Linux kernel 5.13 will have initial support for the Apple M1 CPU

Hector Martin proposed to include the first set of patches in the Linux kernel prepared by the Asahi Linux project, which is working on adapting Linux for Macs equipped with the Apple M1 ARM chip. These patches have already been approved by the maintainer of the Linux SoC branch and accepted into the Linux-next codebase, on the basis of which the functionality of the 5.13 kernel is formed. Technically, Linus Torvalds could block the delivery of the proposed changes, but such a development is considered unlikely.

The patches include support for non-GPU SoC M1 components such as interrupt controller, timer, UART, SMP, I/O and MMIO functions. The reverse engineering of the GPU is not yet complete, for the organization of output in patches, support for the framebuffer and console via the serial port is provided. Of the devices, support for the Apple Mac mini computer is declared, which is used as a reference platform in the Asahi Linux project (detailed installation instructions are available).

Separately, an open hardware adapter is being developed, recognized to simplify connecting to the console via a serial port and debugging. In its current form, due to the use of non-standard USB-PD commands by Apple in its equipment, the easiest way to access the console is to connect to another computer based on the Apple M1 chip using a USB C cable. Arduino microcontroller, FUSB30 chip and UART-TTL adapter.

The project also prepared the m1n1 bootloader, which makes it possible to boot the Linux kernel and minimal system environment on Mac computers with an Apple M1 CPU. Apple on computers with an M1 CPU in the normal mode allows loading unsigned kernels without the need for a jailbreak. This feature allows developers to experiment with new XNU kernels, but when trying to boot other systems, it becomes difficult because Apple uses its own boot protocol and a different Device Tree format. The m1n1 bootloader proposed by the Asahi Linux project acts as a layer that makes it possible to use the standard Device Tree and the standard boot protocol used in the Linux kernel for ARM64. In the future, it is planned to add the ability to call U-Boot and GRUB in m1n1 to organize a typical boot process similar to that used on other ARM64 platforms.

Source: opennet.ru

Add a comment