From: Bryan O'Donoghue <bod@kernel.org>
To: Bjorn Andersson <andersson@kernel.org>
Cc: Hans de Goede <johannes.goede@oss.qualcomm.com>,
"Rafael J . Wysocki" <rafael@kernel.org>,
Konrad Dybcio <konradybcio@kernel.org>,
Srinivas Kandagatla <srini@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Dmitry Baryshkov <lumag@kernel.org>,
Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>,
Abel Vesa <abel.vesa@oss.qualcomm.com>,
linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org,
linux-acpi@vger.kernel.org
Subject: Re: [RFC 00/12] RFC: Devicetree-ACPI hybrid mode
Date: Mon, 29 Jun 2026 09:41:52 +0100 [thread overview]
Message-ID: <00d29422-b887-41cc-a41d-a6177bdd2edd@kernel.org> (raw)
In-Reply-To: <akHHCx0MLYu3vfbq@baldur>
On 29/06/2026 02:34, Bjorn Andersson wrote:
> On Fri, Jun 26, 2026 at 03:43:59PM +0100, Bryan O'Donoghue wrote:
>> On 26/06/2026 15:33, Bryan O'Donoghue wrote:
>>> On 23/06/2026 15:52, Hans de Goede wrote:
>>>> Comments, thoughts ?
>>>
>>> Throw out DT and just do this...
>>>
>>> One thing I like about this approach TBH is that you don't do the easy
>>> thing of presuming to push the hard work into the bootloader - thus
>>> creating a dependency on bootloader.
>>>
>>> We've had _alot_ of problems doing DT selectivity to get OSes installed
>>> on arm64 laptops. You mentioned I2C-HID devices and EC controllers which
>>> I agree are a good and obvious targets.
>>>
>>> I don't think this can replace a full and complete DT but, then I don't
>>> think that should be the objective.
>>>
>>> Much like installing cursed OSes like Windows on "normal" laptops or x86
>>> machines, you'd expect to boot in ACPI mode have enough of the OS
>>> running to install more of the OS - which I think _can_ be a viable
>>> objective with an ACPI-DT translator.
>>>
>>> Sadly OpenBSD could boot all the way to console on the Qcom laptops
>>> where Linux could not - because ACPI support was better there.
>>>
>>> And, we have Nvidia laptops coming too, Windows laptops which will parse
>>> ACPI tables to boot.
>>>
>>> There's almost no upside in having ACPI data and not trying to make
>>> maximal use of it, especially if you don't have a DT supplied by
>>> antecedent boot stages.
>>>
>>> ---
>>> bod
>>>
>>
>> I'm going to agree with myself some more on the boot story.
>>
>
> Good for you.
>> As a Linux user I don't expect everything to work, especially so on aarch64
>> but, if I can get to a boot console with a screen and keyboard - I have
>> scope to play in a way I otherwise don't - parsing DSDT from Windows and
>> walking backwards to DT.
>>
>
> We supported this on SDM850 and 8cx, we had sufficient amount of
> support/quirks in Linux to allow you to boot and run the Debian
> installer - but that's how far it was possible to push things without
> improving ACPI specification and tables.
>
> Given that you couldn't run any real use cases, this was not adequately
> maintained and as we moved on to 8cx Gen3 I argued that we should
> prioritize the DT-effort.
Boot to console is infinitely superior to not booting at all, if OpenBSD
can boot to console on day 1, a community project with no funded effort,
how much effort is really involved in Linux being able to do the same
thing ?
https://undeadly.org/cgi?action=article;sid=20240620105457#:~:text=se%3E%20Date%3A%202024%2D06,I%20beat%20my%20last%20record.
Console, keyboard, NVME, USB. I believe their policy is also ACPI to
bootstrap until DT gets going sufficient.
There's nothing to stop populating DT nodes with ACPI data being part of
that boot story.
>> DT _should_ be the landing zone of course but, ACPI-DT hybrid to "just boot"
>> seems like an obvious yes to me.
>>
>
> But this proposal doesn't give you ACPI+DT, it gives you DT+ACPI, you
> still need a base DT that is somewhat functional - and then you
> explicitly need to make references to the external ACPI representation.
>
> Quite nice for experimentation, but I don't think it will solve either
> of your problems.
There are two arguments, three really.
- Boot in ACPI mode to console.
This should be done, it at least allows people to tinker with their
hardware.
- DT-ACPI mode.
This proposal. Surely worthwhile doing and not incompatible with your
notion of shipping an upstream compliant DT somewhere.
In fact it might even let you boot enough of a system based on a
silicon vendor DT that never changes to again - allow end users to
actually do something with their hardware absent lots of upstream
churn post release.
- ACPI-DT mode.
It is entirely possible to have Linux eat ACPI tables and produce
in-memory DT. Not easy or nice but technically feasible.
It could even be hybrid with the first bullet point.
Either way supporting more ACPI on the boot path shouldn't be a barrier
to better DT support.
---
bod
next prev parent reply other threads:[~2026-06-29 8:41 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <pskkNka1-QtLVb1tcyyUSjNNeMAWUUOLyvn0XSpq55AyeqXnEjOWDCXF1pWVAufJEya52NTx6ZCXz5dMHcMlyQ==@protonmail.internalid>
2026-06-23 14:52 ` [RFC 00/12] RFC: Devicetree-ACPI hybrid mode Hans de Goede
2026-06-23 14:52 ` [RFC 01/12] ACPI: Introduce DT-ACPI " Hans de Goede
2026-06-23 14:52 ` [RFC 02/12] arm64: acpi: Cleanup acpi=[on|off|force] handling Hans de Goede
2026-06-23 14:52 ` [RFC 03/12] arm64: acpi: add acpi=hybrid support Hans de Goede
2026-06-23 14:52 ` [RFC 04/12] ACPI: Add helpers for dealing with ACPI fwnode as secondary fwnode Hans de Goede
2026-06-23 14:52 ` [RFC 05/12] ACPI: glue: Implement setting secondary-fwnode for DT-ACPI hybrid mode Hans de Goede
2026-06-23 14:52 ` [RFC 06/12] ACPI: scan: Retry acpi_device_notify() in " Hans de Goede
2026-06-23 14:52 ` [RFC 07/12] ACPI: Make device_match_acpi_handle() also check the secondary fwnode Hans de Goede
2026-06-23 14:52 ` [RFC 08/12] irqchip/gic-v3: Always call acpi_set_irq_model() Hans de Goede
2026-06-23 14:52 ` [RFC 09/12] pinctrl: qcom: Add support for WoA ACPI tables virtual TLMM pin numbers Hans de Goede
2026-06-29 1:59 ` Bjorn Andersson
2026-06-29 10:30 ` Hans de Goede
2026-06-23 14:52 ` [RFC 10/12] i2c: acpi: Also register ACPI i2c_clients for adapters with a secondary ACPI fwnode Hans de Goede
2026-06-23 14:52 ` [RFC 11/12] i2c: qcom-geni: Fall back to i2c_acpi_find_bus_speed() Hans de Goede
2026-06-23 14:52 ` [RFC 12/12] arm64: dts: qcom: x1e78100-thinkpad-t14s: Move keyb and touchpad to ACPI enumeration Hans de Goede
2026-06-29 1:43 ` Bjorn Andersson
2026-06-29 10:19 ` Hans de Goede
2026-06-25 10:18 ` [RFC 00/12] RFC: Devicetree-ACPI hybrid mode Konrad Dybcio
2026-06-26 14:33 ` Bryan O'Donoghue
2026-06-26 14:43 ` Bryan O'Donoghue
2026-06-29 1:34 ` Bjorn Andersson
2026-06-29 8:41 ` Bryan O'Donoghue [this message]
2026-06-26 15:52 ` Sudeep Holla
2026-06-26 20:57 ` Dmitry Baryshkov
2026-06-27 14:12 ` Sudeep Holla
2026-06-28 19:23 ` Dmitry Baryshkov
2026-06-29 8:22 ` Sudeep Holla
2026-06-29 2:27 ` Bjorn Andersson
2026-06-29 10:07 ` Hans de Goede
2026-06-29 11:48 ` Hanjun Guo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=00d29422-b887-41cc-a41d-a6177bdd2edd@kernel.org \
--to=bod@kernel.org \
--cc=abel.vesa@oss.qualcomm.com \
--cc=andersson@kernel.org \
--cc=bartosz.golaszewski@oss.qualcomm.com \
--cc=devicetree@vger.kernel.org \
--cc=johannes.goede@oss.qualcomm.com \
--cc=konradybcio@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=lumag@kernel.org \
--cc=rafael@kernel.org \
--cc=srini@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox