Hans de Goede ha publicado una serie de parches RFC (Request For Comments) en la lista de correo del kernel Linux que apunta a uno de los puntos más espinosos del soporte Arm en portátiles: cómo arrancar y describir el hardware de los Qualcomm Snapdragon X. La propuesta se llama modo híbrido DeviceTree-ACPI, y la idea es dejar de tratar Device Tree y ACPI como opciones excluyentes.
De Goede no es un nombre cualquiera en esto. Durante años, mientras trabajaba en Red Hat, fue uno de los responsables de buena parte de las mejoras de soporte para portátiles x86_64 de AMD e Intel en Linux. El año pasado dejó Red Hat y se incorporó a Qualcomm para empujar el soporte open source de sus chips, así que esta serie de parches viene firmada por alguien que conoce bien el terreno.
Qué pasa hoy con Snapdragon X y Linux
Los portátiles Snapdragon X1 y X2 con Linux dependen únicamente de Device Tree para describir el hardware, igual que la mayoría de placas Arm de placa única (SBC). Windows 11 on Arm, en cambio, arranca usando ACPI. El problema es que las tablas ACPI de estos equipos no son suficientes para que Linux arranque solo con ellas: les falta información, así que el kernel las ignora por completo.
El comportamiento actual es tajante. En cuanto el kernel arranca con un Device Tree poblado, el código de arch/arm64 fija acpi_disabled=1 y todo el subsistema ACPI queda deshabilitado. De Goede lo plantea así en su RFC: en los portátiles WoA Snapdragon, donde la instalación de fábrica de Windows sí arranca usando esas tablas, apagar ACPI por completo no es lo más deseable. Aunque arranques por Device Tree, podría seguir siendo útil al menos parsear las tablas ACPI y exponer los fwnodes de ACPI para que los controladores de dispositivo los usen.
El modo híbrido y lo que ya funciona
Eso es justo el modo híbrido DT-ACPI: arrancar con Device Tree pero mantener ACPI parseado y disponible. De momento es un experimento, y el propio autor lo presenta como una posible vía para acelerar el trabajo de llevar Linux a los Snapdragon que ya están en el mercado.
Y no se queda en la teoría. Con los parches publicados, De Goede probó un Lenovo ThinkPad T14s Gen 6 y consiguió eliminar las descripciones de Device Tree del teclado y el touchpad para que ACPI los instanciara en su lugar. Funcionó. También abre la puerta a cosas prácticas: poder ejecutar acpidump para explorar las tablas ACPI de equipos que han arrancado por Device Tree, o que los controladores accedan a datos de ACPI en los casos donde resulta útil.
A quién le interesa
La parte que más cola va a traer es la última frase del post de De Goede: la gente está trabajando para que los futuros portátiles WoA Snapdragon puedan arrancar Linux solo con ACPI, sin necesidad de Device Tree. Si eso cuaja, se acabaría buena parte del dolor actual, que es crear, probar y mandar a mainline un Device Tree distinto para cada modelo de Snapdragon X/X2.
Por ahora la serie está como RFC en la lista de correo del kernel y queda por ver qué forma toma de cara a una eventual integración en mainline. Si tienes un portátil Snapdragon con Linux o sigues de cerca el soporte Arm del kernel, es un movimiento que merece la pena vigilar. Para contexto sobre hacia dónde va Arm en Linux, puedes leer nuestro artículo sobre ejecutar cargas de IA agéntica en Arm con Ubuntu.
Fuente
Phoronix: DeviceTree-ACPI Hybrid Mode Proposed For Improving Linux Support On Snapdragon Laptops