Hans de Goede ha publicat una sèrie de pedaços RFC (Request For Comments) a la llista de correu del kernel Linux que ataca un dels punts més espinosos del suport Arm en portàtils: com arrencar i descriure el maquinari dels Qualcomm Snapdragon X. La proposta es diu mode híbrid DeviceTree-ACPI, i la idea és deixar de tractar Device Tree i ACPI com a opcions excloents.
De Goede no és un nom qualsevol en això. Durant anys, mentre treballava a Red Hat, va ser un dels responsables de bona part de les millores de suport per a portàtils x86_64 d’AMD i Intel a Linux. L’any passat va deixar Red Hat i es va incorporar a Qualcomm per empènyer el suport open source dels seus xips, així que aquesta sèrie de pedaços ve signada per algú que coneix bé el terreny.
Què passa avui amb Snapdragon X i Linux
Els portàtils Snapdragon X1 i X2 amb Linux depenen únicament de Device Tree per descriure el maquinari, igual que la majoria de plaques Arm de placa única (SBC). Windows 11 on Arm, en canvi, arrenca fent servir ACPI. El problema és que les taules ACPI d’aquests equips no són suficients perquè Linux arrenqui només amb elles: els falta informació, així que el kernel les ignora del tot.
El comportament actual és contundent. Tan bon punt el kernel arrenca amb un Device Tree poblat, el codi d’arch/arm64 fixa acpi_disabled=1 i tot el subsistema ACPI queda deshabilitat. De Goede ho planteja així al seu RFC: als portàtils WoA Snapdragon, on la instal·lació de fàbrica de Windows sí que arrenca amb aquestes taules, apagar ACPI del tot no és necessàriament el més desitjable. Encara que arrenquis per Device Tree, podria continuar sent útil com a mínim parsejar les taules ACPI i exposar els fwnodes d’ACPI perquè els controladors de dispositiu els facin servir.
El mode híbrid i el que ja funciona
Això és justament el mode híbrid DT-ACPI: arrencar amb Device Tree però mantenir ACPI parsejat i disponible. De moment és un experiment, i el mateix autor el presenta com una via possible per accelerar la feina de portar Linux als Snapdragon que ja són al mercat.
I no es queda en la teoria. Amb els pedaços publicats, De Goede va provar un Lenovo ThinkPad T14s Gen 6 i va aconseguir eliminar les descripcions de Device Tree del teclat i el touchpad perquè ACPI els instanciés en el seu lloc. Va funcionar. També obre la porta a coses pràctiques: poder executar acpidump per explorar les taules ACPI d’equips que han arrencat per Device Tree, o que els controladors accedeixin a dades d’ACPI en els casos on és útil.
A qui li interessa
La part que portarà més cua és la darrera frase del post de De Goede: hi ha gent treballant perquè els futurs portàtils WoA Snapdragon puguin arrencar Linux només amb ACPI, sense necessitat de Device Tree. Si això qualla, s’acabaria bona part del mal de cap actual, que és crear, provar i enviar a mainline un Device Tree diferent per a cada model de Snapdragon X/X2.
Per ara la sèrie està com a RFC a la llista de correu del kernel i queda per veure quina forma pren de cara a una eventual integració a mainline. Si tens un portàtil Snapdragon amb Linux o segueixes de prop el suport Arm del kernel, és un moviment que val la pena vigilar. Per a context sobre cap on va Arm a Linux, pots llegir el nostre article sobre executar càrregues d’IA agèntica a Arm amb Ubuntu.
Font
Phoronix: DeviceTree-ACPI Hybrid Mode Proposed For Improving Linux Support On Snapdragon Laptops