M4 Mac mini'de Linux: Asahi'nin SPTM ve WFI Mücadelesi
M4 Mac mini'de Linux bring-up süreci: SPTM, kilitli register'lar, debug_putc ile hata ayıklama ve WFI sorunu detaylı anlatılıyor.
Bir geliştirici, Apple'ın M4 Mac mini'sinde Linux'u ayağa kaldırma sürecini ayrıntılarıyla anlatıyor. M1-M3 nesillerinin aksine, M4 çipleri artık zorunlu SPTM (Secure Page Table Monitor) kullanıyor; bu da macOS sürücülerinin hipervizör üzerinden MMIO izlemesini zorlaştırıyor ve geleneksel Asahi Linux bring-up yöntemini geçersiz kılıyor.
Geliştirici, kilitli GXF özelliği, RVBAR yazma sorunları ve çökmelerin kaynağını bulmak için debug_putc tabanlı ilkel println-debugging tekniğiyle çekirdek önyükleme kodunu adım adım izledi. MMU etkinleştirildikten sonra UART'a erişimin kaybolması, cihaz ağacında eksik stdout-path ayarı ve kilitli SYS_IMP_APL_VM_TMR_FIQ_ENA_EL2 register'ı gibi sorunlar teker teker çözüldü.
En kritik sorun ise WFI (Wait For Interrupt) komutunun M4'te register sıfırlama davranışını değiştirmesiydi; bu durum ARM64 spesifikasyonuna aykırıydı. Geçici çözüm olarak WFI/WFIT komutları NOP ile değiştirildi, ancak kalıcı çözüm için Linux çekirdeğine yeni bir bootarg eklenmesi üzerinde çalışılıyor. Bu çalışma, Apple Silicon üzerinde mainline Linux desteğinin ne denli karmaşık ve emek yoğun olduğunu gösteriyor.
Bu sentez, kaynağından yapay zeka tarafından üretildi; insan editör ya da elle onay adımı yoktur. Nasıl çalışıyoruz