The Forgetful CPU (Linux on M4)
Попытка запустить Linux на Mac mini с чипом M4 столкнулась с неожиданными трудностями из-за новой технологии SPTM — механизма защиты, который блокирует прямой доступ к аппаратным ресурсам, использовавшийся в ранних версиях Asahi Linux. В отличие от M1–M3, где можно было анализировать MMIO-трафик macOS, здесь требовалась глубокая модификация гипервизора m1n1, что вышло за рамки возможностей новичка. Однако автору удалось обойти проблему: отключив строгую безопасность загрузки, установив m1n1 через восстановление macOS и получив доступ к последовательному порту, он начал эксперименты с загрузкой ядра.
Первым барьером оказался заблокированный GXF — компонент, отвечающий за безопасность исключений, который на M4 отключён в режиме raw boot. Затем выяснилось, что регистр RVBAR, задающий точку входа для ядра, уже содержит корректное значение — попытки его перезаписать вызывали сбой. После долгого перерыва автор добился первого вывода через debug_putc, внедрив минимальное устройство дерева и включив earlycon. Ключевым прорывом стало обнаружение, что процессоры M4 теряют состояние при выполнении команды WFI (Wait For Interrupt), что приводило к зависанию. Исправление потребовало патча для m1n1 и ядра Linux, отключающего WFI в ранней стадии загрузки — после этого система начала выводить логи, и Linux наконец заработал.