mirror of
https://github.com/AsahiLinux/u-boot
synced 2025-02-16 14:08:45 +00:00
net: Add support for reading mac addresses from nvmem cells
This adds support for reading mac addresses from the "mac-address" nvmem cell. If there is no (local-)mac-address property, then we will try reading from an nvmem cell. For some existing examples of this property, refer to imx8mn.dtsi and imx8mp.dtsi. Unfortunately, fuse drivers have not yet been converted to DM. Signed-off-by: Sean Anderson <sean.anderson@seco.com> Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
185d3db7be
commit
97d0f9bfdd
1 changed files with 9 additions and 4 deletions
|
@ -14,6 +14,7 @@
|
|||
#include <env.h>
|
||||
#include <log.h>
|
||||
#include <net.h>
|
||||
#include <nvmem.h>
|
||||
#include <asm/global_data.h>
|
||||
#include <dm/device-internal.h>
|
||||
#include <dm/uclass-internal.h>
|
||||
|
@ -507,17 +508,21 @@ static bool eth_dev_get_mac_address(struct udevice *dev, u8 mac[ARP_HLEN])
|
|||
{
|
||||
#if CONFIG_IS_ENABLED(OF_CONTROL)
|
||||
const uint8_t *p;
|
||||
struct nvmem_cell mac_cell;
|
||||
|
||||
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);
|
||||
|
||||
if (!p)
|
||||
if (p) {
|
||||
memcpy(mac, p, ARP_HLEN);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (nvmem_cell_get_by_name(dev, "mac-address", &mac_cell))
|
||||
return false;
|
||||
|
||||
memcpy(mac, p, ARP_HLEN);
|
||||
|
||||
return true;
|
||||
return !nvmem_cell_read(&mac_cell, mac, ARP_HLEN);
|
||||
#else
|
||||
return false;
|
||||
#endif
|
||||
|
|
Loading…
Add table
Reference in a new issue