Re: [U-Boot] [PATCH v2 2/2] net: eth-uclass: Support device tree MAC addresses

2019-04-25 Thread Thierry Reding
On Thu, Apr 18, 2019 at 07:30:05PM +0300, Grygorii Strashko wrote:
> 
> 
> On 17.04.19 18:03, Thierry Reding wrote:
> > On Wed, Apr 17, 2019 at 02:49:22PM +0300, Grygorii Strashko wrote:
> >>
> >>
> >> On 16.04.19 19:24, Thierry Reding wrote:
> >>> From: Thierry Reding 
> >>>
> >>> Add the standard Ethernet device tree bindings (imported from v5.0 of
> >>> the Linux kernel) and implement support for reading the MAC address for
> >>> Ethernet devices in the Ethernet uclass. If the "mac-address" property
> >>> exists, the MAC address will be parsed from that. If that property does
> >>> not exist, the "local-mac-address" property will be tried as fallback.
> >>>
> >>> MAC addresses from device tree take precedence over the ones stored in
> >>> a network interface card's ROM.
> >>>
> >>> Acked-by: Joe Hershberger 
> >>> Signed-off-by: Thierry Reding 
> >>> ---
> >>> Changes in v2:
> >>> - use dev_read_u8_array_ptr()
> >>>
> >>>  .../devicetree/bindings/net/ethernet.txt  | 66 +++
> >>>  net/eth-uclass.c  | 26 +++-
> >>>  2 files changed, 89 insertions(+), 3 deletions(-)
> >>>  create mode 100644 Documentation/devicetree/bindings/net/ethernet.txt
> >>>
> >>> diff --git a/Documentation/devicetree/bindings/net/ethernet.txt 
> >>> b/Documentation/devicetree/bindings/net/ethernet.txt
> >>> new file mode 100644
> >>> index ..cfc376bc977a
> >>> --- /dev/null
> >>> +++ b/Documentation/devicetree/bindings/net/ethernet.txt
> >>> @@ -0,0 +1,66 @@
> >>> +The following properties are common to the Ethernet controllers:
> >>> +
> >>> +NOTE: All 'phy*' properties documented below are Ethernet specific. For 
> >>> the
> >>> +generic PHY 'phys' property, see
> >>> +Documentation/devicetree/bindings/phy/phy-bindings.txt.
> >>> +
> >>> +- local-mac-address: array of 6 bytes, specifies the MAC address that was
> >>> +  assigned to the network device;
> >>> +- mac-address: array of 6 bytes, specifies the MAC address that was last 
> >>> used by
> >>> +  the boot program; should be used in cases where the MAC address 
> >>> assigned to
> >>> +  the device by the boot program is different from the 
> >>> "local-mac-address"
> >>> +  property;
> >>> +- nvmem-cells: phandle, reference to an nvmem node for the MAC address;
> >>> +- nvmem-cell-names: string, should be "mac-address" if nvmem is to be 
> >>> used;
> >>> +- max-speed: number, specifies maximum speed in Mbit/s supported by the 
> >>> device;
> >>> +- max-frame-size: number, maximum transfer unit (IEEE defined MTU), 
> >>> rather than
> >>> +  the maximum frame size (there's contradiction in the Devicetree
> >>> +  Specification).
> >>> +- phy-mode: string, operation mode of the PHY interface. This is now a 
> >>> de-facto
> >>> +  standard property; supported values are:
> >>> +  * "internal"
> >>> +  * "mii"
> >>> +  * "gmii"
> >>> +  * "sgmii"
> >>> +  * "qsgmii"
> >>> +  * "tbi"
> >>> +  * "rev-mii"
> >>> +  * "rmii"
> >>> +  * "rgmii" (RX and TX delays are added by the MAC when required)
> >>> +  * "rgmii-id" (RGMII with internal RX and TX delays provided by the 
> >>> PHY, the
> >>> + MAC should not add the RX or TX delays in this case)
> >>> +  * "rgmii-rxid" (RGMII with internal RX delay provided by the PHY, the 
> >>> MAC
> >>> + should not add an RX delay in this case)
> >>> +  * "rgmii-txid" (RGMII with internal TX delay provided by the PHY, the 
> >>> MAC
> >>> + should not add an TX delay in this case)
> >>> +  * "rtbi"
> >>> +  * "smii"
> >>> +  * "xgmii"
> >>> +  * "trgmii"
> >>> +  * "2000base-x",
> >>> +  * "2500base-x",
> >>> +  * "rxaui"
> >>> +  * "xaui"
> >>> +  * "10gbase-kr" (10GBASE-KR, XFI, SFI)
> >>> +- phy-connection-type: the same as "phy-mode" property but described in 
> >>> the
> >>> +  Devicetree Specification;
> >>> +- phy-handle: phandle, specifies a reference to a node representing a PHY
> >>> +  device; this property is described in the Devicetree Specification and 
> >>> so
> >>> +  preferred;
> >>> +- phy: the same as "phy-handle" property, not recommended for new 
> >>> bindings.
> >>> +- phy-device: the same as "phy-handle" property, not recommended for new
> >>> +  bindings.
> >>> +- rx-fifo-depth: the size of the controller's receive fifo in bytes. This
> >>> +  is used for components that can have configurable receive fifo sizes,
> >>> +  and is useful for determining certain configuration settings such as
> >>> +  flow control thresholds.
> >>> +- tx-fifo-depth: the size of the controller's transmit fifo in bytes. 
> >>> This
> >>> +  is used for components that can have configurable fifo sizes.
> >>> +- managed: string, specifies the PHY management type. Supported values 
> >>> are:
> >>> +  "auto", "in-band-status". "auto" is the default, it usess MDIO for
> >>> +  management if fixed-link is not specified.
> >>> +
> >>> +Child nodes of the Ethernet controller are typically the individual PHY 
> >>> devices
> >>> +connected via the MDIO bus (sometimes the

Re: [U-Boot] [PATCH v2 2/2] net: eth-uclass: Support device tree MAC addresses

2019-04-25 Thread Thierry Reding
On Wed, Apr 17, 2019 at 09:32:26PM -0700, Simon Glass wrote:
> Hi Thierry,
> 
> On Wed, 17 Apr 2019 at 08:03, Thierry Reding 
> wrote:
> 
> > On Wed, Apr 17, 2019 at 02:49:22PM +0300, Grygorii Strashko wrote:
> > >
> > >
> > > On 16.04.19 19:24, Thierry Reding wrote:
> > > > From: Thierry Reding 
> > > >
> > > > Add the standard Ethernet device tree bindings (imported from v5.0 of
> > > > the Linux kernel) and implement support for reading the MAC address for
> > > > Ethernet devices in the Ethernet uclass. If the "mac-address" property
> > > > exists, the MAC address will be parsed from that. If that property does
> > > > not exist, the "local-mac-address" property will be tried as fallback.
> > > >
> > > > MAC addresses from device tree take precedence over the ones stored in
> > > > a network interface card's ROM.
> > > >
> > > > Acked-by: Joe Hershberger 
> > > > Signed-off-by: Thierry Reding 
> > > > ---
> > > > Changes in v2:
> > > > - use dev_read_u8_array_ptr()
> >
> 
> It would be good to have test cases for these.

By "these", do you mean the eth_dev_get_mac_address() function that this
patche introduces, or the dev_read_u8_array_ptr() function?

For the former, that'd be a little difficult because it is not a public
API, it's only called from the eth-uclass.c code.

Thierry

> > > >
> > > >  .../devicetree/bindings/net/ethernet.txt  | 66 +++
> > > >  net/eth-uclass.c  | 26 +++-
> > > >  2 files changed, 89 insertions(+), 3 deletions(-)
> > > >  create mode 100644 Documentation/devicetree/bindings/net/ethernet.txt
> >
> > Regards,
> Simon


signature.asc
Description: PGP signature
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


Re: [U-Boot] [PATCH v2 2/2] net: eth-uclass: Support device tree MAC addresses

2019-04-18 Thread Grygorii Strashko


On 17.04.19 18:03, Thierry Reding wrote:
> On Wed, Apr 17, 2019 at 02:49:22PM +0300, Grygorii Strashko wrote:
>>
>>
>> On 16.04.19 19:24, Thierry Reding wrote:
>>> From: Thierry Reding 
>>>
>>> Add the standard Ethernet device tree bindings (imported from v5.0 of
>>> the Linux kernel) and implement support for reading the MAC address for
>>> Ethernet devices in the Ethernet uclass. If the "mac-address" property
>>> exists, the MAC address will be parsed from that. If that property does
>>> not exist, the "local-mac-address" property will be tried as fallback.
>>>
>>> MAC addresses from device tree take precedence over the ones stored in
>>> a network interface card's ROM.
>>>
>>> Acked-by: Joe Hershberger 
>>> Signed-off-by: Thierry Reding 
>>> ---
>>> Changes in v2:
>>> - use dev_read_u8_array_ptr()
>>>
>>>  .../devicetree/bindings/net/ethernet.txt  | 66 +++
>>>  net/eth-uclass.c  | 26 +++-
>>>  2 files changed, 89 insertions(+), 3 deletions(-)
>>>  create mode 100644 Documentation/devicetree/bindings/net/ethernet.txt
>>>
>>> diff --git a/Documentation/devicetree/bindings/net/ethernet.txt 
>>> b/Documentation/devicetree/bindings/net/ethernet.txt
>>> new file mode 100644
>>> index ..cfc376bc977a
>>> --- /dev/null
>>> +++ b/Documentation/devicetree/bindings/net/ethernet.txt
>>> @@ -0,0 +1,66 @@
>>> +The following properties are common to the Ethernet controllers:
>>> +
>>> +NOTE: All 'phy*' properties documented below are Ethernet specific. For the
>>> +generic PHY 'phys' property, see
>>> +Documentation/devicetree/bindings/phy/phy-bindings.txt.
>>> +
>>> +- local-mac-address: array of 6 bytes, specifies the MAC address that was
>>> +  assigned to the network device;
>>> +- mac-address: array of 6 bytes, specifies the MAC address that was last 
>>> used by
>>> +  the boot program; should be used in cases where the MAC address assigned 
>>> to
>>> +  the device by the boot program is different from the "local-mac-address"
>>> +  property;
>>> +- nvmem-cells: phandle, reference to an nvmem node for the MAC address;
>>> +- nvmem-cell-names: string, should be "mac-address" if nvmem is to be used;
>>> +- max-speed: number, specifies maximum speed in Mbit/s supported by the 
>>> device;
>>> +- max-frame-size: number, maximum transfer unit (IEEE defined MTU), rather 
>>> than
>>> +  the maximum frame size (there's contradiction in the Devicetree
>>> +  Specification).
>>> +- phy-mode: string, operation mode of the PHY interface. This is now a 
>>> de-facto
>>> +  standard property; supported values are:
>>> +  * "internal"
>>> +  * "mii"
>>> +  * "gmii"
>>> +  * "sgmii"
>>> +  * "qsgmii"
>>> +  * "tbi"
>>> +  * "rev-mii"
>>> +  * "rmii"
>>> +  * "rgmii" (RX and TX delays are added by the MAC when required)
>>> +  * "rgmii-id" (RGMII with internal RX and TX delays provided by the PHY, 
>>> the
>>> + MAC should not add the RX or TX delays in this case)
>>> +  * "rgmii-rxid" (RGMII with internal RX delay provided by the PHY, the MAC
>>> + should not add an RX delay in this case)
>>> +  * "rgmii-txid" (RGMII with internal TX delay provided by the PHY, the MAC
>>> + should not add an TX delay in this case)
>>> +  * "rtbi"
>>> +  * "smii"
>>> +  * "xgmii"
>>> +  * "trgmii"
>>> +  * "2000base-x",
>>> +  * "2500base-x",
>>> +  * "rxaui"
>>> +  * "xaui"
>>> +  * "10gbase-kr" (10GBASE-KR, XFI, SFI)
>>> +- phy-connection-type: the same as "phy-mode" property but described in the
>>> +  Devicetree Specification;
>>> +- phy-handle: phandle, specifies a reference to a node representing a PHY
>>> +  device; this property is described in the Devicetree Specification and so
>>> +  preferred;
>>> +- phy: the same as "phy-handle" property, not recommended for new bindings.
>>> +- phy-device: the same as "phy-handle" property, not recommended for new
>>> +  bindings.
>>> +- rx-fifo-depth: the size of the controller's receive fifo in bytes. This
>>> +  is used for components that can have configurable receive fifo sizes,
>>> +  and is useful for determining certain configuration settings such as
>>> +  flow control thresholds.
>>> +- tx-fifo-depth: the size of the controller's transmit fifo in bytes. This
>>> +  is used for components that can have configurable fifo sizes.
>>> +- managed: string, specifies the PHY management type. Supported values are:
>>> +  "auto", "in-band-status". "auto" is the default, it usess MDIO for
>>> +  management if fixed-link is not specified.
>>> +
>>> +Child nodes of the Ethernet controller are typically the individual PHY 
>>> devices
>>> +connected via the MDIO bus (sometimes the MDIO bus controller is separate).
>>> +They are described in the phy.txt file in this same directory.
>>> +For non-MDIO PHY management see fixed-link.txt.
>>> diff --git a/net/eth-uclass.c b/net/eth-uclass.c
>>> index 4225aabf1fa1..c6d5ec013bd8 100644
>>> --- a/net/eth-uclass.c
>>> +++ b/net/eth-uclass.c
>>> @@ -455,6 +455,23 @@ static int eth_pre_

Re: [U-Boot] [PATCH v2 2/2] net: eth-uclass: Support device tree MAC addresses

2019-04-17 Thread Simon Glass
Hi Thierry,

On Wed, 17 Apr 2019 at 08:03, Thierry Reding 
wrote:

> On Wed, Apr 17, 2019 at 02:49:22PM +0300, Grygorii Strashko wrote:
> >
> >
> > On 16.04.19 19:24, Thierry Reding wrote:
> > > From: Thierry Reding 
> > >
> > > Add the standard Ethernet device tree bindings (imported from v5.0 of
> > > the Linux kernel) and implement support for reading the MAC address for
> > > Ethernet devices in the Ethernet uclass. If the "mac-address" property
> > > exists, the MAC address will be parsed from that. If that property does
> > > not exist, the "local-mac-address" property will be tried as fallback.
> > >
> > > MAC addresses from device tree take precedence over the ones stored in
> > > a network interface card's ROM.
> > >
> > > Acked-by: Joe Hershberger 
> > > Signed-off-by: Thierry Reding 
> > > ---
> > > Changes in v2:
> > > - use dev_read_u8_array_ptr()
>

It would be good to have test cases for these.


> > >
> > >  .../devicetree/bindings/net/ethernet.txt  | 66 +++
> > >  net/eth-uclass.c  | 26 +++-
> > >  2 files changed, 89 insertions(+), 3 deletions(-)
> > >  create mode 100644 Documentation/devicetree/bindings/net/ethernet.txt
>
> Regards,
Simon
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


Re: [U-Boot] [PATCH v2 2/2] net: eth-uclass: Support device tree MAC addresses

2019-04-17 Thread Thierry Reding
On Wed, Apr 17, 2019 at 02:49:22PM +0300, Grygorii Strashko wrote:
> 
> 
> On 16.04.19 19:24, Thierry Reding wrote:
> > From: Thierry Reding 
> > 
> > Add the standard Ethernet device tree bindings (imported from v5.0 of
> > the Linux kernel) and implement support for reading the MAC address for
> > Ethernet devices in the Ethernet uclass. If the "mac-address" property
> > exists, the MAC address will be parsed from that. If that property does
> > not exist, the "local-mac-address" property will be tried as fallback.
> > 
> > MAC addresses from device tree take precedence over the ones stored in
> > a network interface card's ROM.
> > 
> > Acked-by: Joe Hershberger 
> > Signed-off-by: Thierry Reding 
> > ---
> > Changes in v2:
> > - use dev_read_u8_array_ptr()
> > 
> >  .../devicetree/bindings/net/ethernet.txt  | 66 +++
> >  net/eth-uclass.c  | 26 +++-
> >  2 files changed, 89 insertions(+), 3 deletions(-)
> >  create mode 100644 Documentation/devicetree/bindings/net/ethernet.txt
> > 
> > diff --git a/Documentation/devicetree/bindings/net/ethernet.txt 
> > b/Documentation/devicetree/bindings/net/ethernet.txt
> > new file mode 100644
> > index ..cfc376bc977a
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/net/ethernet.txt
> > @@ -0,0 +1,66 @@
> > +The following properties are common to the Ethernet controllers:
> > +
> > +NOTE: All 'phy*' properties documented below are Ethernet specific. For the
> > +generic PHY 'phys' property, see
> > +Documentation/devicetree/bindings/phy/phy-bindings.txt.
> > +
> > +- local-mac-address: array of 6 bytes, specifies the MAC address that was
> > +  assigned to the network device;
> > +- mac-address: array of 6 bytes, specifies the MAC address that was last 
> > used by
> > +  the boot program; should be used in cases where the MAC address assigned 
> > to
> > +  the device by the boot program is different from the "local-mac-address"
> > +  property;
> > +- nvmem-cells: phandle, reference to an nvmem node for the MAC address;
> > +- nvmem-cell-names: string, should be "mac-address" if nvmem is to be used;
> > +- max-speed: number, specifies maximum speed in Mbit/s supported by the 
> > device;
> > +- max-frame-size: number, maximum transfer unit (IEEE defined MTU), rather 
> > than
> > +  the maximum frame size (there's contradiction in the Devicetree
> > +  Specification).
> > +- phy-mode: string, operation mode of the PHY interface. This is now a 
> > de-facto
> > +  standard property; supported values are:
> > +  * "internal"
> > +  * "mii"
> > +  * "gmii"
> > +  * "sgmii"
> > +  * "qsgmii"
> > +  * "tbi"
> > +  * "rev-mii"
> > +  * "rmii"
> > +  * "rgmii" (RX and TX delays are added by the MAC when required)
> > +  * "rgmii-id" (RGMII with internal RX and TX delays provided by the PHY, 
> > the
> > + MAC should not add the RX or TX delays in this case)
> > +  * "rgmii-rxid" (RGMII with internal RX delay provided by the PHY, the MAC
> > + should not add an RX delay in this case)
> > +  * "rgmii-txid" (RGMII with internal TX delay provided by the PHY, the MAC
> > + should not add an TX delay in this case)
> > +  * "rtbi"
> > +  * "smii"
> > +  * "xgmii"
> > +  * "trgmii"
> > +  * "2000base-x",
> > +  * "2500base-x",
> > +  * "rxaui"
> > +  * "xaui"
> > +  * "10gbase-kr" (10GBASE-KR, XFI, SFI)
> > +- phy-connection-type: the same as "phy-mode" property but described in the
> > +  Devicetree Specification;
> > +- phy-handle: phandle, specifies a reference to a node representing a PHY
> > +  device; this property is described in the Devicetree Specification and so
> > +  preferred;
> > +- phy: the same as "phy-handle" property, not recommended for new bindings.
> > +- phy-device: the same as "phy-handle" property, not recommended for new
> > +  bindings.
> > +- rx-fifo-depth: the size of the controller's receive fifo in bytes. This
> > +  is used for components that can have configurable receive fifo sizes,
> > +  and is useful for determining certain configuration settings such as
> > +  flow control thresholds.
> > +- tx-fifo-depth: the size of the controller's transmit fifo in bytes. This
> > +  is used for components that can have configurable fifo sizes.
> > +- managed: string, specifies the PHY management type. Supported values are:
> > +  "auto", "in-band-status". "auto" is the default, it usess MDIO for
> > +  management if fixed-link is not specified.
> > +
> > +Child nodes of the Ethernet controller are typically the individual PHY 
> > devices
> > +connected via the MDIO bus (sometimes the MDIO bus controller is separate).
> > +They are described in the phy.txt file in this same directory.
> > +For non-MDIO PHY management see fixed-link.txt.
> > diff --git a/net/eth-uclass.c b/net/eth-uclass.c
> > index 4225aabf1fa1..c6d5ec013bd8 100644
> > --- a/net/eth-uclass.c
> > +++ b/net/eth-uclass.c
> > @@ -455,6 +455,23 @@ static int eth_pre_unbind(struct udevice *dev)
> > retur

Re: [U-Boot] [PATCH v2 2/2] net: eth-uclass: Support device tree MAC addresses

2019-04-17 Thread Grygorii Strashko


On 16.04.19 19:24, Thierry Reding wrote:
> From: Thierry Reding 
> 
> Add the standard Ethernet device tree bindings (imported from v5.0 of
> the Linux kernel) and implement support for reading the MAC address for
> Ethernet devices in the Ethernet uclass. If the "mac-address" property
> exists, the MAC address will be parsed from that. If that property does
> not exist, the "local-mac-address" property will be tried as fallback.
> 
> MAC addresses from device tree take precedence over the ones stored in
> a network interface card's ROM.
> 
> Acked-by: Joe Hershberger 
> Signed-off-by: Thierry Reding 
> ---
> Changes in v2:
> - use dev_read_u8_array_ptr()
> 
>  .../devicetree/bindings/net/ethernet.txt  | 66 +++
>  net/eth-uclass.c  | 26 +++-
>  2 files changed, 89 insertions(+), 3 deletions(-)
>  create mode 100644 Documentation/devicetree/bindings/net/ethernet.txt
> 
> diff --git a/Documentation/devicetree/bindings/net/ethernet.txt 
> b/Documentation/devicetree/bindings/net/ethernet.txt
> new file mode 100644
> index ..cfc376bc977a
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/net/ethernet.txt
> @@ -0,0 +1,66 @@
> +The following properties are common to the Ethernet controllers:
> +
> +NOTE: All 'phy*' properties documented below are Ethernet specific. For the
> +generic PHY 'phys' property, see
> +Documentation/devicetree/bindings/phy/phy-bindings.txt.
> +
> +- local-mac-address: array of 6 bytes, specifies the MAC address that was
> +  assigned to the network device;
> +- mac-address: array of 6 bytes, specifies the MAC address that was last 
> used by
> +  the boot program; should be used in cases where the MAC address assigned to
> +  the device by the boot program is different from the "local-mac-address"
> +  property;
> +- nvmem-cells: phandle, reference to an nvmem node for the MAC address;
> +- nvmem-cell-names: string, should be "mac-address" if nvmem is to be used;
> +- max-speed: number, specifies maximum speed in Mbit/s supported by the 
> device;
> +- max-frame-size: number, maximum transfer unit (IEEE defined MTU), rather 
> than
> +  the maximum frame size (there's contradiction in the Devicetree
> +  Specification).
> +- phy-mode: string, operation mode of the PHY interface. This is now a 
> de-facto
> +  standard property; supported values are:
> +  * "internal"
> +  * "mii"
> +  * "gmii"
> +  * "sgmii"
> +  * "qsgmii"
> +  * "tbi"
> +  * "rev-mii"
> +  * "rmii"
> +  * "rgmii" (RX and TX delays are added by the MAC when required)
> +  * "rgmii-id" (RGMII with internal RX and TX delays provided by the PHY, the
> + MAC should not add the RX or TX delays in this case)
> +  * "rgmii-rxid" (RGMII with internal RX delay provided by the PHY, the MAC
> + should not add an RX delay in this case)
> +  * "rgmii-txid" (RGMII with internal TX delay provided by the PHY, the MAC
> + should not add an TX delay in this case)
> +  * "rtbi"
> +  * "smii"
> +  * "xgmii"
> +  * "trgmii"
> +  * "2000base-x",
> +  * "2500base-x",
> +  * "rxaui"
> +  * "xaui"
> +  * "10gbase-kr" (10GBASE-KR, XFI, SFI)
> +- phy-connection-type: the same as "phy-mode" property but described in the
> +  Devicetree Specification;
> +- phy-handle: phandle, specifies a reference to a node representing a PHY
> +  device; this property is described in the Devicetree Specification and so
> +  preferred;
> +- phy: the same as "phy-handle" property, not recommended for new bindings.
> +- phy-device: the same as "phy-handle" property, not recommended for new
> +  bindings.
> +- rx-fifo-depth: the size of the controller's receive fifo in bytes. This
> +  is used for components that can have configurable receive fifo sizes,
> +  and is useful for determining certain configuration settings such as
> +  flow control thresholds.
> +- tx-fifo-depth: the size of the controller's transmit fifo in bytes. This
> +  is used for components that can have configurable fifo sizes.
> +- managed: string, specifies the PHY management type. Supported values are:
> +  "auto", "in-band-status". "auto" is the default, it usess MDIO for
> +  management if fixed-link is not specified.
> +
> +Child nodes of the Ethernet controller are typically the individual PHY 
> devices
> +connected via the MDIO bus (sometimes the MDIO bus controller is separate).
> +They are described in the phy.txt file in this same directory.
> +For non-MDIO PHY management see fixed-link.txt.
> diff --git a/net/eth-uclass.c b/net/eth-uclass.c
> index 4225aabf1fa1..c6d5ec013bd8 100644
> --- a/net/eth-uclass.c
> +++ b/net/eth-uclass.c
> @@ -455,6 +455,23 @@ static int eth_pre_unbind(struct udevice *dev)
>   return 0;
>  }
>  
> +static bool eth_dev_get_mac_address(struct udevice *dev, u8 mac[ARP_HLEN])
> +{
> + const uint8_t *p;
> +
> + p = dev_read_u8_array_ptr(dev, "mac-address", ARP_HLEN);
> + if (!p)
> + p = dev_read_u8_array_ptr(dev, "local-mac-address", ARP_HLEN);
> +
>