Re: [net-next: PATCH 09/12] Documentation: ACPI: DSD: introduce DSA description

From: Andrew Lunn
Date: Wed Jun 22 2022 - 06:38:03 EST


On Wed, Jun 22, 2022 at 12:22:23PM +0200, Marcin Wojtas wrote:
> śr., 22 cze 2022 o 11:24 Andrew Lunn <andrew@xxxxxxx> napisał(a):
> >
> > On Wed, Jun 22, 2022 at 11:08:13AM +0200, Marcin Wojtas wrote:
> > > wt., 21 cze 2022 o 13:42 Andy Shevchenko
> > > <andriy.shevchenko@xxxxxxxxxxxxxxx> napisał(a):
> > > >
> > > > On Tue, Jun 21, 2022 at 01:18:38PM +0200, Andrew Lunn wrote:
> > > > > On Tue, Jun 21, 2022 at 02:09:14PM +0300, Andy Shevchenko wrote:
> > > > > > On Mon, Jun 20, 2022 at 09:47:31PM +0200, Andrew Lunn wrote:
> > > >
> > > > ...
> > > >
> > > > > > > > + Name (_CRS, ResourceTemplate ()
> > > > > > > > + {
> > > > > > > > + Memory32Fixed (ReadWrite,
> > > > > > > > + 0xf212a200,
> > > > > > > > + 0x00000010,
> > > > > > >
> > > > > > > What do these magic numbers mean?
> > > > > >
> > > > > > Address + Length, it's all described in the ACPI specification.
> > > > >
> > > > > The address+plus length of what? This device is on an MDIO bus. As
> > > > > such, there is no memory! It probably makes sense to somebody who
> > > > > knows ACPI, but to me i have no idea what it means.
> > > >
> > > > I see what you mean. Honestly I dunno what the device this description is for.
> > > > For the DSA that's behind MDIO bus? Then it's definitely makes no sense and
> > > > MDIOSerialBus() resources type is what would be good to have in ACPI
> > > > specification.
> > > >
> > >
> > > It's not device on MDIO bus, but the MDIO controller's register itself
> >
> > Ah. So this is equivalent to
> >
> > CP11X_LABEL(mdio): mdio@12a200 {
> > #address-cells = <1>;
> > #size-cells = <0>;
> > compatible = "marvell,orion-mdio";
> > reg = <0x12a200 0x10>;
> > clocks = <&CP11X_LABEL(clk) 1 9>, <&CP11X_LABEL(clk) 1 5>,
> > <&CP11X_LABEL(clk) 1 6>, <&CP11X_LABEL(clk) 1 18>;
> > status = "disabled";
> > };
> >
> > DT seems a lot more readable, "marvell,orion-mdio" is a good hint that
> > device this is. But maybe it is more readable because that is what i'm
> > used to.
>
> No worries, this reaction is not uncommon (including myself), I agree
> it becomes more readable, the longer you work with it :).
>
> IMO the ACPI node of orion-mdio looks very similar. Please take a look:
>
> Device (SMI0)
> {
> Name (_HID, "MRVL0100") // _HID: Hardware ID
> Name (_UID, 0x00) // _UID: Unique ID
> Method (_STA) // _STA: Device status
> {
> Return (0xF)
> }
> Name (_CRS, ResourceTemplate ()
> {
> Memory32Fixed (ReadWrite,
> 0xf212a200, // Address Base
> 0x00000010, // Address Length
> )
> })
> }
>
> You can "map" the objects/methods to what you know from DT farly easily:
> _HID -> compatible string

MRVL0100 is pretty meaningless, but marvell,orion-mdio gives you a
much better idea what the device is. That i would say is the key of
the problem here. Without knowing what MRVL0100 means, it is hard to
guess the rest.

Andrew