All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sean Anderson <sean.anderson@seco.com>
To: u-boot@lists.denx.de, Simon Glass <sjg@chromium.org>
Cc: Mario Six <mario.six@gdsys.cc>,
	Ramon Fried <rfried.dev@gmail.com>,
	Heinrich Schuchardt <xypron.glpk@gmx.de>,
	Tom Rini <trini@konsulko.com>,
	Joe Hershberger <joe.hershberger@ni.com>,
	Sean Anderson <sean.anderson@seco.com>
Subject: [PATCH v3 10/13] net: Add support for reading mac addresses from nvmem cells
Date: Mon, 18 Apr 2022 15:36:56 -0400	[thread overview]
Message-ID: <20220418193659.3677824-11-sean.anderson@seco.com> (raw)
In-Reply-To: <20220418193659.3677824-1-sean.anderson@seco.com>

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>
---

(no changes since v1)

 net/eth-uclass.c | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/net/eth-uclass.c b/net/eth-uclass.c
index 58c308f332..211e88fbbe 100644
--- a/net/eth-uclass.c
+++ b/net/eth-uclass.c
@@ -13,6 +13,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>
@@ -499,17 +500,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
-- 
2.35.1.1320.gc452695387.dirty


  parent reply	other threads:[~2022-04-18 19:39 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-04-18 19:36 [PATCH v3 00/13] Add support for NVMEM API Sean Anderson
2022-04-18 19:36 ` [PATCH v3 01/13] sandbox: net: Add aliases for ethernet devices Sean Anderson
2022-04-29 14:48   ` Tom Rini
2022-04-18 19:36 ` [PATCH v3 02/13] sandbox: net: Add mac address for eth8 to environment Sean Anderson
2022-04-18 19:36 ` [PATCH v3 03/13] test: eth: Add test for ethernet addresses Sean Anderson
2022-04-18 19:36 ` [PATCH v3 04/13] sandbox: net: Remove fake-host-hwaddr Sean Anderson
2022-04-18 19:36 ` [PATCH v3 05/13] sandbox: Remove eth2addr from environment Sean Anderson
2022-04-18 19:36 ` [PATCH v3 06/13] sandbox: Move some mac addresses to device tree Sean Anderson
2022-04-18 19:36 ` [PATCH v3 07/13] misc: i2c_eeprom: Make i2c_eeprom_write use a const buf Sean Anderson
2022-04-18 19:36 ` [PATCH v3 08/13] misc: Add support for nvmem cells Sean Anderson
2022-04-25  5:48   ` Simon Glass
2022-04-25 15:24     ` Sean Anderson
2022-04-29 19:40       ` Sean Anderson
2022-05-03  8:50         ` Simon Glass
2022-05-05 15:26           ` Sean Anderson
2022-04-18 19:36 ` [PATCH v3 09/13] sandbox: Enable NVMEM Sean Anderson
2022-04-18 19:36 ` Sean Anderson [this message]
2022-04-29 14:48   ` [PATCH v3 10/13] net: Add support for reading mac addresses from nvmem cells Tom Rini
2022-04-18 19:36 ` [PATCH v3 11/13] test: Load mac address with i2c eeprom Sean Anderson
2022-04-18 19:36 ` [PATCH v3 12/13] test: Load mac address using RTC Sean Anderson
2022-04-29 14:48   ` Tom Rini
2022-04-18 19:36 ` [PATCH v3 13/13] test: Load mac address using misc device Sean Anderson

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=20220418193659.3677824-11-sean.anderson@seco.com \
    --to=sean.anderson@seco.com \
    --cc=joe.hershberger@ni.com \
    --cc=mario.six@gdsys.cc \
    --cc=rfried.dev@gmail.com \
    --cc=sjg@chromium.org \
    --cc=trini@konsulko.com \
    --cc=u-boot@lists.denx.de \
    --cc=xypron.glpk@gmx.de \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.