From: Florian Fainelli <f.fainelli@gmail.com>
To: Jeremy Linton <jeremy.linton@arm.com>,
Dan Callaghan <dan.callaghan@opengear.com>,
Andrew Lunn <andrew@lunn.ch>
Cc: Calvin Johnson <calvin.johnson@oss.nxp.com>,
Russell King <linux@armlinux.org.uk>, Jon <jon@solid-run.com>,
Cristi Sovaiala <cristian.sovaiala@nxp.com>,
Ioana Ciornei <ioana.ciornei@nxp.com>,
Andy Shevchenko <andy.shevchenko@gmail.com>,
Madalin Bucur <madalin.bucur@oss.nxp.com>,
netdev <netdev@vger.kernel.org>, "linux.cj" <linux.cj@gmail.com>,
linux-acpi <linux-acpi@vger.kernel.org>
Subject: Re: [net-next PATCH v7 1/6] Documentation: ACPI: DSD: Document MDIO PHY
Date: Tue, 28 Jul 2020 20:16:24 -0700 [thread overview]
Message-ID: <f9912ea2-2026-a2b3-3a1f-99cc479f1f9b@gmail.com> (raw)
In-Reply-To: <f046fa8b-6bac-22c3-0d9f-9afb20877fc9@arm.com>
On 7/28/2020 7:53 PM, Jeremy Linton wrote:
> Hi,
>
> On 7/28/20 7:39 PM, Florian Fainelli wrote:
>> On 7/28/2020 3:30 PM, Jeremy Linton wrote:
>>> Hi,
>>>
>>> On 7/28/20 3:06 AM, Dan Callaghan wrote:
>>>> Excerpts from Andrew Lunn's message of 2020-07-24 21:14:36 +02:00:
>>>>> Now i could be wrong, but are Ethernet switches something you expect
>>>>> to see on ACPI/SBSA platforms? Or is this a legitimate use of the
>>>>> escape hatch?
>>>>
>>>> As an extra data point: right now I am working on an x86 embedded
>>>> appliance (ACPI not Device Tree) with 3x integrated Marvell switches.
>>>> I have been watching this patch series with great interest, because
>>>> right now there is no way for me to configure a complex switch topology
>>>> in DSA without Device Tree.
>>>
>>> DSA though, the switch is hung off a normal MAC/MDIO, right? (ignoring
>>> whether that NIC/MAC is actually hug off PCIe for the moment).
>>
>> There is no specific bus, we have memory mapped, MDIO, SPI, I2C swiches
>> all supported within the driver framework right now.
>>
>>>
>>> It just has a bunch of phy devices strung out on that single MAC/MDIO.
>>
>> It has a number of built-in PHYs that typically appear on a MDIO bus,
>> whether that bus is the switch's internal MDIO bus, or another MDIO bus
>> (which could be provided with just two GPIOs) depends on how the switch
>> is connected to its management host.
>>
>> When the switch is interfaced via MDIO the switch also typically has a
>> MDIO interface called the pseudo-PHY which is how you can actually tap
>> into the control interface of the switch, as opposed to reading its
>> internal PHYs from the MDIO bus.
>>
>>> So in ACPI land it would still have a relationship similar to the one
>>> Andrew pointed out with his DT example where the eth0->mdio->phy are all
>>> contained in their physical parent. The phy in that case associated with
>>> the parent adapter would be the first direct decedent of the mdio, the
>>> switch itself could then be represented with another device, with a
>>> further string of device/phys representing the devices. (I dislike
>>> drawing acsii art, but if this isn't clear I will, its also worthwhile
>>> to look at the dpaa2 docs for how the mac/phys work on this device for
>>> contrast.).
>>
>> The eth0->mdio->phy relationship you describe is the simple case that
>> you are well aware of which is say what we have on the Raspberry Pi 4
>> with GENET and the external Broadcom PHY.
>>
>> For an Ethernet switch connected to an Ethernet MAC, we have 4 different
>> types of objects:
>>
>> - the Ethernet MAC which sits on its specific bus
>>
>> - the Ethernet switch which also sits on its specific bus
>>
>> - the built-in PHYs of the Ethernet switch which sit on whatever
>> bus/interface the switch provides to make them accessible
>>
>> - the specific bus controller that provides access to the Ethernet switch
>>
>> and this is a simplification that does not take into account Physical
>> Coding Sublayer devices, pure MDIO devices (with no foot in the Ethernet
>> land such as PCIe, USB3 or SATA PHYs), SFP, SFF and other pluggable
>> modules.
>
> Which is why I've stayed away from much of the switch discussion. There
> are a lot of edge cases to fall into, because for whatever reason
> networking seems to be unique in all this non-enumerable customization
> vs many other areas of the system. Storage, being an example i'm more
> familiar with which has very similar problems yet, somehow has managed
> to avoid much of this, despite having run on fabrics significantly more
> complex than basic ethernet (including running on a wide range of hot
> pluggable GBIC/SFP/QSFP/etc media layers).
>
> ACPI's "problem" here is that its strongly influenced by the "Plug and
> Play" revolution of the 1990's where the industry went from having
> humans describing hardware using machine readable languages, to hardware
> which was enumerable using standard protocols. ACPI's device
> descriptions are there as a crutch for the remaining non plug an play
> hardware in the system.
>
> So at a basic level, if your describing hardware in ACPI rather than
> abstracting it, that is a problem.
I suppose that is a good summary, my impression from this patch series
is that we want the description part, not the abstraction, whether it is
on purpose or because there is a misunderstanding of what ACPI is
intended for, or higher powers have decided this must be done otherwise
nothing gets sold, who knows?
--
Florian
next prev parent reply other threads:[~2020-07-29 3:16 UTC|newest]
Thread overview: 61+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-07-15 9:03 [net-next PATCH v7 0/6] ACPI support for dpaa2 MAC driver Calvin Johnson
2020-07-15 9:03 ` [net-next PATCH v7 1/6] Documentation: ACPI: DSD: Document MDIO PHY Calvin Johnson
2020-07-16 3:04 ` Florian Fainelli
2020-07-16 3:11 ` Andrew Lunn
2020-07-23 23:26 ` Jeremy Linton
2020-07-24 13:39 ` Andrew Lunn
2020-07-24 17:26 ` Jeremy Linton
2020-07-24 17:39 ` Florian Fainelli
2020-07-24 19:20 ` Andrew Lunn
2020-07-24 20:12 ` Andy Shevchenko
2020-07-24 20:13 ` Florian Fainelli
2020-07-24 20:20 ` Andy Shevchenko
2020-07-25 7:36 ` Calvin Johnson
2020-07-25 10:48 ` Andy Shevchenko
2020-07-24 21:06 ` Russell King - ARM Linux admin
2020-07-27 17:03 ` Sudeep Holla
2020-07-24 19:14 ` Andrew Lunn
2020-07-27 17:21 ` Sudeep Holla
2020-07-28 20:34 ` Andrew Lunn
2020-07-28 20:59 ` Russell King - ARM Linux admin
2020-07-28 21:26 ` Andy Shevchenko
2020-07-29 16:00 ` Rafael J. Wysocki
2020-07-31 15:08 ` Andrew Lunn
2020-07-27 17:32 ` Jon Nettleton
[not found] ` <1595922651-sup-5323@galangal.danc.bne.opengear.com>
2020-07-28 20:45 ` Andrew Lunn
2020-07-28 20:56 ` Florian Fainelli
2020-07-28 21:28 ` Andy Shevchenko
2020-07-28 21:40 ` Florian Fainelli
2020-07-31 15:14 ` Andrew Lunn
2020-09-25 13:22 ` Grant Likely
2020-07-28 22:30 ` Jeremy Linton
2020-07-29 0:39 ` Florian Fainelli
2020-07-29 2:53 ` Jeremy Linton
2020-07-29 3:16 ` Florian Fainelli [this message]
2020-07-29 8:43 ` Jon Nettleton
2020-07-29 9:39 ` Calvin Johnson
2020-09-25 13:34 ` Grant Likely
2020-09-26 4:30 ` Calvin Johnson
2020-09-29 5:17 ` Calvin Johnson
2020-09-29 13:43 ` Andrew Lunn
2020-09-29 13:55 ` Andy Shevchenko
2020-09-29 14:32 ` Andrew Lunn
2020-09-29 14:46 ` Andy Shevchenko
2020-09-29 15:06 ` Andrew Lunn
2020-09-29 15:29 ` Arnd Bergmann
2020-09-29 14:44 ` Arnd Bergmann
2020-09-29 14:59 ` Andrew Lunn
2020-09-29 15:59 ` Grant Likely
2020-09-29 15:53 ` Grant Likely
2020-09-29 16:04 ` Calvin Johnson
2020-07-15 9:03 ` [net-next PATCH v7 2/6] net: phy: introduce device_mdiobus_register() Calvin Johnson
2020-07-16 3:05 ` Florian Fainelli
2020-07-15 9:03 ` [net-next PATCH v7 3/6] net/fsl: use device_mdiobus_register() Calvin Johnson
2020-07-16 3:05 ` Florian Fainelli
2020-07-15 9:03 ` [net-next PATCH v7 4/6] net: phy: introduce phy_find_by_mdio_handle() Calvin Johnson
2020-07-16 3:06 ` Florian Fainelli
2020-07-15 9:03 ` [net-next PATCH v7 5/6] phylink: introduce phylink_fwnode_phy_connect() Calvin Johnson
2020-07-15 9:04 ` [net-next PATCH v7 6/6] net: dpaa2-mac: Add ACPI support for DPAA2 MAC driver Calvin Johnson
2020-09-25 13:39 ` [net-next PATCH v7 0/6] ACPI support for dpaa2 " Grant Likely
2020-09-26 4:34 ` Calvin Johnson
2020-07-25 14:23 Calvin Johnson
2020-07-25 14:23 ` [net-next PATCH v7 1/6] Documentation: ACPI: DSD: Document MDIO PHY Calvin Johnson
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=f9912ea2-2026-a2b3-3a1f-99cc479f1f9b@gmail.com \
--to=f.fainelli@gmail.com \
--cc=andrew@lunn.ch \
--cc=andy.shevchenko@gmail.com \
--cc=calvin.johnson@oss.nxp.com \
--cc=cristian.sovaiala@nxp.com \
--cc=dan.callaghan@opengear.com \
--cc=ioana.ciornei@nxp.com \
--cc=jeremy.linton@arm.com \
--cc=jon@solid-run.com \
--cc=linux-acpi@vger.kernel.org \
--cc=linux.cj@gmail.com \
--cc=linux@armlinux.org.uk \
--cc=madalin.bucur@oss.nxp.com \
--cc=netdev@vger.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;
as well as URLs for NNTP newsgroup(s).