Hi,

On 6/17/20 12:34 PM, Andrew Lunn wrote:
On Wed, Jun 17, 2020 at 10:45:34PM +0530, Calvin Johnson wrote:
From: Jeremy Linton <jeremy.lin...@arm.com>

+static const struct acpi_device_id xgmac_acpi_match[] = {
+       { "NXP0006", (kernel_ulong_t)NULL },

Hi Jeremy

What exactly does NXP0006 represent? An XGMAC MDIO bus master? Some
NXP MDIO bus master? An XGMAC Ethernet controller which has an NXP
MDIO bus master? A cluster of Ethernet controllers?

Strictly speaking its a NXP defined (they own the "NXP" prefix per https://uefi.org/pnp_id_list) id. So, they have tied it to a specific bit of hardware. In this case it appears to be a shared MDIO master which isn't directly contained in an Ethernet controller. Its somewhat similar to a "nxp,xxxxx" compatible id, depending on how they are using it to identify an ACPI device object (_HID()/_CID()).

So AFAIK, this is all valid ACPI usage as long as the ID maps to a unique device/object.


Is this documented somewhere? In the DT world we have a clear
documentation for all the compatible strings. Is there anything
similar in the ACPI world for these magic numbers?

Sadly not fully. The mentioned PNP and ACPI (https://uefi.org/acpi_id_list) ids lists are requested and registered to a given organization. But, once the prefix is owned, it becomes the responsibility of that organization to assign & manage the ID's with their prefix. There are various individuals/etc which have collected lists, though like PCI ids, there aren't any formal publishing requirements.

Reply via email to