Η αρχιτεκτονική πρόκληση του M4

Η έλευση του Apple M4 SoC έφερε στο προσκήνιο το Secure Page Table Monitor (SPTM), έναν μηχανισμό που θωρακίζει τον XNU kernel της Apple, αλλά ταυτόχρονα δυσχεραίνει την παραδοσιακή προσέγγιση του Asahi Linux για reverse engineering μέσω του m1n1 hypervisor. Η ανάγκη για τροποποιήσεις στο m1n1 κατέστη επιτακτική, καθώς οι παλαιότερες μέθοδοι ανάλυσης αλληλεπιδράσεων hardware-software δεν ήταν πλέον επαρκείς.

Debugging σε χαμηλό επίπεδο και MMU initialization

Κατά τη διαδικασία του bringup, η έλλειψη ορατότητας στην κονσόλα οδήγησε στην υιοθέτηση του debug_putc για την αποσφαλμάτωση του kernel σε assembly επίπεδο. Διαπιστώθηκε ότι η αρχικοποίηση του MMU προκαλούσε crashes λόγω εσφαλμένης χαρτογράφησης των MMIO διευθύνσεων. Η προσθήκη 1:1 mapping για τον χώρο MMIO επέτρεψε την προώθηση της διαδικασίας εκκίνησης, αποκαλύπτοντας επιπλέον συγκρούσεις σε registers που σχετίζονται με τον virtualization controller.

Το ζήτημα της εντολής WFI

Το πιο κρίσιμο τεχνικό εμπόδιο ήταν η συμπεριφορά της εντολής WFI. Στον M4, η εντολή αυτή προκαλεί μηδενισμό των registers, παραβιάζοντας το πρότυπο της ARM64. Η λύση που υιοθετήθηκε στο mainline Linux περιλαμβάνει ένα framework που επιτρέπει στον kernel να αντικαθιστά δυναμικά τις εντολές WFI/WFIT με NOP, ανάλογα με το hardware. Αυτή η προσέγγιση, σε συνδυασμό με το PSCI EFI conduit, εξασφαλίζει τη διαλειτουργικότητα (interoperability) και τη σωστή διαχείριση ενέργειας των secondary cores χωρίς να θυσιάζεται η σταθερότητα του συστήματος.