[Arm-dev] ACPI

Fri Oct 13 01:57:12 UTC 2017
Jon Masters <jonathan at jonmasters.org>

Hi all,

Most of you know me. For those who don't, I'm Chief ARM Architect at Red
Hat and started the internal Red Hat ARM team back in 2011. I've also
worked on creating most of the ARM server standards, and with every
silicon vendor since their design was a paper napkin drawing.

So it is with some authority I can tell you that ARM servers without
ACPI have no future. Those of you booting with "acpi=off" are running
machines completely in violation of the ARM server specs (which mandate
the use of ACPI tables). You can choose to do this, but such configs
have never been tested and are completely guaranteed to break randomly
in the future when you update the distribution, or the hardware.

But not everyone has fully gotten this message. Beginning in the next
release of the upstream distro from which CentOS inherits its sources,
there is a nasty warning message which will be printed if you boot while
attempting to disable ACPI, or even if the platform contains DeviceTree
tables (whether used or not). The kernel will also taint itself if it
detects the presence of DeviceTree on a platform at all.

Going forward, I am instituting logic that will cause the kernel to
panic and fail to boot at all when a platform contains a DeviceTree
(whether used or not) unless some parameter like "platform_is_broken" is
passed to the kernel. This is irrespective of whether you actually boot
with ACPI or not. All platforms that aren't simply ACPI must be removed
from the face of the earth as quickly as possible and replaced with
fully standardized ones compliant with the ARM server specs. The good
news is that firmware updates will allow anyone still shipping a
DeviceTree to remove it from future platform updates to be compliant.

Now is a good time to stop thinking about disabling ACPI. It is only
going to get much, much harder to turn it off.

Jon.