Энтузиаст запустил Linux на M4 Mac mini, обойдя «забывчивый» WFI

The Forgetful CPU (Linux on M4)

Энтузиаст запустил Linux на M4 Mac mini, обойдя «забывчивый» WFI

Автор рассказывает, как он заставил Linux загрузиться на M4 Mac mini, несмотря на обязательный SPTM и заблокированные регистры. Главная проблема оказалась в инструкции WFI: на M4 она обнуляет регистры x0–x31, нарушая спецификацию ARM64. Решение — заменить WFI и WFIT на NOP — уже вошло в mainline Linux и m1n1, так что последние релизы загружаются на всех ядрах M4, M4 Pro, M4 Max и M5.

Похоже, этот chicken bit либо заблокирован, либо удалён на M4, и поведение по умолчанию не соответствует спецификации ARM64 (в частности: «Если система сконфигурирована так, что инструкция WFI может быть завершена, то инструкция WFI не должна приводить к потере архитектурного состояния»).

Ещё за этот день

2026-10-02