@neal Objection!
There is a devicetree specification and (compared to ACPI) is a pleasure to work with, problem is that people just can’t agree on something that works for everyone and is provided by the firmware. Technically Linux has a policy of backwards-compatibility but in practice… good luck, have fun.
Hardware vendors f**k up ACPI all the time, and that’s how you get thousands of ACPI workarounds in the drivers:
[ 6.281665] nvidia 0000:01:00.0: vgaarb: VGA decodes changed: olddecodes=io+mem,decodes=none:owns=none
[ 6.325599] NVRM: loading NVIDIA UNIX Open Kernel Module for x86_64 595.104.02 Release Build (portage@localhost) Sun 4 Oct 05:00:27 CEST 2026
[ 6.362771] nvidia-gpu 0000:01:00.3: i2c timeout error e0000000
[ 6.363667] ucsi_ccg 1-0008: i2c_transfer failed -110
[ 6.364232] ucsi_ccg 1-0008: ucsi_ccg_init failed - -110
[ 6.364945] ucsi_ccg 1-0008: probe with driver ucsi_ccg failed with error -110
[ 6.853449] ACPI BIOS Error (bug): AE_AML_BUFFER_LIMIT, Index (0x000000032) is beyond end of object (length 0x32) (20260408/exoparg2-393)
[ 6.853999] ACPI Error: Aborting method \_SB.WMID.WQBZ due to previous error (AE_AML_BUFFER_LIMIT) (20260408/psparse-543)
[ 6.854608] ACPI Error: Aborting method \_SB.WMID.WQBE due to previous error (AE_AML_BUFFER_LIMIT) (20260408/psparse-543)
[ 6.856895] hp_bioscfg: Returned error 0x3, "Invalid command value/Feature not supported"
[ 7.288320] amdgpu: vga_switcheroo: detected switching method \_SB_.PCI0.GP17.VGA_.ATPX handle
…and yet people still claim ACPI > DT for some reason :akko_shrug:
Qualcomm phones have been using UEFI since Snapdragon 820(?) when they introduced XBL, but ABL (which is an UEFI application) calls ExitBootServices prior to loading the Linux kernel from boot.img. Other ARM vendors do it differently (MediaTek uses LK2, Google also uses LK2, Unisoc uses U-Boot apparently?) but they need to conform to Google’s spec, which is why ABL exists.
UEFI-booting Android is news to me, “Googlebooks” (awful and cringeworthy name, ew) that just dropped use coreboot + new branch of depthcharge (at least according to initial analysis) so no “UEFI” to be found here either.