• Apple M2 Pro, Max och Ultra på väg in i Linux-kärnan

    Linuxvärlden tar ännu ett steg närmare full kompatibilitet med Apples hårdvara. Nu är Device Tree-filer för M2 Pro, Max och Ultra på väg in i den officiella Linux-kärnan. Bakom insatsen står Asahi Linux-utvecklare som, trots bakslag och hårt motstånd, fortsätter att bana väg för att pingviner världen över ska kunna köra Linux sömlöst på Apples senaste datorer.

    Arbetet med att få Apples nyare kretsar att fungera fullt ut i Linuxmiljö går framåt. Trots vissa bakslag för Asahi Linux-projektet – bland annat att en av de mest profilerade utvecklarna, Alyssa Rosenzweig, nyligen lämnat projektet – fortsätter teamet att driva på för att deras kod ska bli en del av den officiella Linux-kärnan.

    I veckan skickade utvecklaren Janne Grunau in ett större paket med 37 patchar till Linux-kärnans sändlista. Syftet är att lägga till stöd för Apples M2 Pro, Max och Ultra genom de så kallade Device Tree-filerna, en nödvändig pusselbit för att hårdvaran ska kunna kommunicera med operativsystemet.

    M2-familjen bygger vidare på samma design som tidigare M1-kretsar, och mycket av arbetet kan återanvändas. M2 Pro beskrivs som en nedskalad variant av M2 Max, medan M2 Ultra i praktiken är två ihopkopplade Max-kretsar. Genom justeringar i device tree – bland annat särskilda offsetar för minnesadresser och dubbla systemnoder – kan Linux förstå hur de olika chipen är organiserade.

    För vanliga användare innebär detta att Linuxstödet för nyare Mac-datorer blir mer robust. Redan idag fungerar M2-baserade datorer med Asahi Linux, men utan dessa patchar finns stödet bara i projektets egen version, inte i den officiella Linuxkärnan.

    En detalj återstår dock: PCI Express-stödet för Mac Pro med M2 saknas fortfarande. Två tekniska hinder gör att den delen ännu inte är redo för upstream, och därmed får just den maskinen vänta på full funktionalitet i Linux.

    Faktaruta: Apple M2 Pro / Max / Ultra i Linux-kärnan

    Läget just nu (30 aug 2025): 37 patchar är inskickade till Linux-kärnans sändlista för att upstreama Device Tree-filer (DT) för Apple M2 Pro (t6020), M2 Max (t6021) och M2 Ultra (t6022). Asahi Linux stöder redan dessa i sin egen distribution, men målet här är full mainline-integration.

    Varför Device Tree?

    • DT beskriver hårdvaran för kärnan: noder för bussar, enheter, klockor, avbrott, minnesområden m.m.
    • Apple Silicon använder DT (inte ACPI) i Linux-världen, så korrekt DT är nyckeln till stabil boot, drivrutinsbindning och strömhante­ring.
    • Upstream-DT betyder att vanliga distro-kärnor (Debian, Fedora, Arch m.fl.) kan boota Macar utan specialpatchar.

    SoC-arkitekturen i korthet

    • t6020 (M2 Pro) = nedskalad t6021 (M2 Max). DT för Pro inkluderar Max och inaktiverar saknade block.
    • t6022 (M2 Ultra) = två sammankopplade t6021-kretsar (multi-die). Representeras i DT med två toppnivå-soc-noder.
    • MMIO-offsets: Andra kretsens register får en konstant offset via DT-ranges för att separera adresserna.
    • Avbrott: Interrupt-kontrollern är multi-die-medveten. DT anger die-tillhörighet i avbrottsdefinitionerna.
    • Återanvändning: Enhetsmallar från M1-familjen är SoC-agnostiska och kan återbrukas med smärre justeringar (t.ex. pinctrl och gpio-nummer).
    • Filer: SoC-specifika *.dtsi för t602{0,1,2} inkluderas av maskin-.dts för respektive Mac-modell.

    Boot-kedjan på Apple Silicon (översikt)

    • iBoot (Apple) → m1n1 (Asahi trampoline/hypervisor) → ev. U-BootLinux + .dtb
    • m1n1 förser Linux med rätt DT och gör lågnivåinit (t.ex. PPL, cache/TLB, Apple-särdrag) hanterbara för kärnan.

    Vad ingår i patchserien?

    • Nya DT-filer för M2 Pro/Max/Ultra-baserade maskiner med struktur enligt t600x-familjen.
    • Definitioner av bussar, timers, klockträd, I/O-kontrollers och noder för kritiska periferi-block.
    • Makrobaserade inkluderingar för att hålla nodetiketter unika mellan die 0/1 i M2 Ultra.

    Vad ingår inte ännu?

    • PCIe för Mac Pro (M2): Uteblir i denna omgång p.g.a. två kvarstående problem. Upstream-aktivering dröjer tills de är lösta.

    Konsekvenser för användare

    • Bättre out-of-the-box-stöd i vanliga distributioner när patcharna väl landar i mainline.
    • Färre specialkärnor och snabbare uppströmsfixar (säkerhet, stabilitet, energi, prestanda).

    Begrepp & “teknisk pornografi”

    • DT/DTS/DTSI: Källor som kompileras till DTB och beskriver hårdvarugrafen.
    • MMIO & ranges: Kartläggning av registerutrymmen; offsets separerar die 0/1 i Ultra.
    • pinctrl/GPIO: Pinmux och I/O-linjeindex; mindre skillnader mellan M1↔M2 justeras i DT.
    • Multi-die interrupt: Avbrottsdomäner taggas per die; kontrollern routar korrekt oberoende av fysisk placering.
    • SoC-agnostiska mallar: Drivrutiner matchar via compatible-strängar; gemensamma noder förenklar underhåll.
    • Upstreaming: Kod går från projektträd (Asahi) → LKML-granskning → soc/arm64/dt-träd → Linus’ mainline.

    Berörda maskiner (exempel)

    Macar med M2 Pro/Max/Ultra (t.ex. MacBook Pro-modeller, Mac Studio och Mac Pro med M2). Exakta maskin-.dts pekar mot respektive t602x.dtsi.

    Status: patchserie under granskning Fokus: DT för t6020/t6021/t6022 Saknas: PCIe för Mac Pro (M2)

    asahi@linux:~$

    https://www.phoronix.com/news/Apple-M2-Pro-Max-Ultra-DT

Etikett: M2 Pro

  • Apple M2 Pro, Max och Ultra på väg in i Linux-kärnan

    Linuxvärlden tar ännu ett steg närmare full kompatibilitet med Apples hårdvara. Nu är Device Tree-filer för M2 Pro, Max och Ultra på väg in i den officiella Linux-kärnan. Bakom insatsen står Asahi Linux-utvecklare som, trots bakslag och hårt motstånd, fortsätter att bana väg för att pingviner världen över ska kunna köra Linux sömlöst på Apples…