> On 21 November 2017 at 09:59, Udit Kumar <udit.ku...@nxp.com> wrote:
> > Thanks Ard.
> > Below table was for example. I am not converting whole DT to ACPI
> > tables :) My idea is to reduce Linux patches for probing as possible.
> > Also keeping firmware and OS separately then Let firmware expose both
> > way (HID and PRP00001) and Linux to decide binding
> 
> No.
> 
> You are still assuming ACPI and DT device drivers bind at the same level, and
> they don't.

No, my above comments was just limited to binding. 
Right, here device driver should know that device is present in system, 
I see probe function (device-driver binding) is way to know this. 
Then driver can execute AML methods exposed by firmware.
 
> An ACPI device has AML methods to manage power state and perform other
> device related low-level tasks. The device driver has no knowledge of the
> hardware beyond what it needs to invoke those abstract methods.

You meant, If we need to update driver for AML methods then why not to update 
binding as well . ?

On side track, 
 With limited search,  I got many each driver is having (acpi_id and of_id), 
looks, acpi support is added on the top of DT flavored drivers.
and therefore acpi tables are following the same.
Sorry to say, reference I am looking at (edk2-platform) JunoPkg and 
VExpressPkg, 
Has following devices has description similar to Device tree 
    Device (NET0) {
    Device (SREG) {
    Device (VIRT) {
   Device(KMI0) {
   Device(ETH0) {
Where no AML method is exposed. Then I expect OS driver to manage this device.
While grepping over few other edk2-platforms.  Looks some of methods 
are abstracted, not whole device. 


> A DT device describes everything in detail, and requires clock and regulator
> drivers and other bits and pieces that are tightly coupled to details of the
> hardware.
> 
> So now, you have the worst of both worlds:
> 
> - you need to implement all of this in firmware so ACPI can support it,
> - you have to expose the internals to the OS so DT can support it.

Yes, for time being or may be longer, DT support needs to be there 
along with ACPI introduction.

Are you suggesting here to abstract whole device details from 
OS and expose AML methods to be used by device driver. 
And maintain two drivers instead of fitting DT style driver into ACPI world ?
 
> The result is that you lose *all* of the benefits of ACPI, because the power 
> of
> the abstraction is that you can modify the low-level implementation on the
> firmware side without the need for modifying the OS. *That* is the value
> proposition of ACPI, the ability to run last year's OS on this year's 
> hardware.


> Implementing ACPI in the way you propose is absolutely pointless, sorry to be
> harsh about it.
> 
> --
> Ard.
> 
> 
> > Please see inline as well
> >
> > Regards
> > Udit
> >
> >> -----Original Message-----
> >> From: Ard Biesheuvel [mailto:ard.biesheu...@linaro.org]
> >> Sent: Tuesday, November 21, 2017 3:08 PM
> >> To: Udit Kumar <udit.ku...@nxp.com>
> >> Cc: Leif Lindholm <leif.lindh...@linaro.org>; edk2-devel@lists.01.org; 
> >> Varun
> >> Sethi <v.se...@nxp.com>; Daniel Thompson <daniel.thomp...@linaro.org>;
> >> Graeme Gregory <graeme.greg...@linaro.org>
> >> Subject: Re: [RFC] ACPI table HID/CID allocation
> >>
> >> On 21 November 2017 at 09:19, Udit Kumar <udit.ku...@nxp.com> wrote:
> >> > Hi,
> >> >
> >> > I am enabling ACPI on NXP platform , In order to do minimal changes in
> >> > Linux driver for device-driver binding.
> >> >
> >> > I want to use PRP0001 device as CID and HID as actual (NXP allocated 
> >> > HID).
> >> >
> >> > So that Linux can bind with PRP0001 and  compatible field, where as
> >> > other OS (Window etc) can rely on HID.
> >> >
> >> > Below is sample, ACPI table for SPI controller and its slave device.
> >> >
> >> >
> >> >
> >> > Hope this approach is ok ?
> >> >
> >>
> >> No, it is not.
> >>
> >> Architecting an ACPI platform is not a matter of taking a device tree and
> >> converting each node into an ACPI device.
> >
> > No , no, Here I am not converting everything from DT to ACPI
> >
> >> Linux/DT makes no assumptions about the presence of firmware. This means
> >> most device drivers have to manage clocks, regulators etc because they will
> not
> >> be in a known state. Also, the OS can own all devices in the system.
> >
> > Thanks to Linux documentation , I noted this, During hand off ACPI
> > firmware needs to ensure proper clocking.
> >
> >> Linux/ACPI relies on the firmware to set up clocks and regulators, and uses
> >> abstract firmware methods to manage power states etc. Also, due to the
> >> dependency on UEFI, things like the RTC and NOR flash are not exposed to
> the
> >> OS via device nodes, but via UEFI runtime services.
> >
> > Agreed, RTC and NOR (containing firmware)  should not exposed to Linux or
> OS.
> >
> >> In a nutshell, the difference between ACPI and DT is that the handoff point
> >> between the OS and the firmware is at a different abstraction level.
> >>
> >> So no, it is not ok to use PRP0001 + compatible for everything. It may be
> >> acceptable in some exceptional cases, but you will have to explain why.
> >> Everything else should use proper ACPI bindings.
> >
> > HID is not going away , I am keeping with PRP0001 + compatible
> > and let linux driver to decide what to use.
> >
> > If PRP0001 + compatible is restricted or meant for limited use
> > then I can assign HID for NXP devices or say driver managed by NXP.
> > For other vendors, will this be accepted to have HID something like NXP00xx
> ??
> >
> >> --
> >> Ard.
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to