From patchwork Thu Dec 10 23:11:09 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hongwei Zhang X-Patchwork-Id: 1414617 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=ami.com Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4CsV7P0Qjlz9sVY for ; Fri, 11 Dec 2020 10:12:32 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 18FED82659; Fri, 11 Dec 2020 00:12:26 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=ami.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Received: by phobos.denx.de (Postfix, from userid 109) id 7945F82650; Fri, 11 Dec 2020 00:12:23 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,SPF_HELO_NONE autolearn=ham autolearn_force=no version=3.4.2 Received: from atlmailgw1.ami.com (atlmailgw1.ami.com [63.147.10.40]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 7570082614 for ; Fri, 11 Dec 2020 00:12:20 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=ami.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=Hongweiz@ami.com X-AuditID: ac1060b2-a93ff700000017ec-7d-5fd2ab5235e7 Received: from atlms1.us.megatrends.com (atlms1.us.megatrends.com [172.16.96.144]) (using TLS with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (Client did not present a certificate) by atlmailgw1.ami.com (Symantec Messaging Gateway) with SMTP id B5.BF.06124.25BA2DF5; Thu, 10 Dec 2020 18:12:18 -0500 (EST) Received: from ami-us-wk.us.megatrends.com (172.16.98.207) by atlms1.us.megatrends.com (172.16.96.144) with Microsoft SMTP Server (TLS) id 14.3.468.0; Thu, 10 Dec 2020 18:12:17 -0500 From: Hongwei Zhang To: u-boot , Joe Hershberger CC: Hongwei Zhang , Joel Stanley , Andrew Jeffery Subject: [v2019.04-aspeed, v1 1/1] net: ftgmac100: Read and retain MAC address Date: Thu, 10 Dec 2020 18:11:09 -0500 Message-ID: <20201210231109.15752-2-hongweiz@ami.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20201210231109.15752-1-hongweiz@ami.com> References: <20201210231109.15752-1-hongweiz@ami.com> MIME-Version: 1.0 X-Originating-IP: [172.16.98.207] X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrOLMWRmVeSWpSXmKPExsWyRiBhgm7Q6kvxBg9361nsusxh8WnnY1aL 3+f/Mlu83dvJ7sDicbV9F7vHxY/HmD3O3tnB6HH9zHamAJYoLpuU1JzMstQifbsErozZVzIK HglVTHuylqmBcRV/FyMHh4SAicTu67JdjFwcQgK7mCSez3rA2sXICeIwSjw4YwliswmoSezd PIcJxBYR8JbY+bKFBcRmFkiXmHThKlhcWMBP4nL3ciaQmSwCqhJn/mqDhHkFTCXe/r3NDmJL CMhLrN5wgBnE5hQwk2ha9ZAZYhVQzaHJLBD1ghInZz6BGi8hcfDFC6gaWYlbhx4zQcxRlHjw 6zvrBEaBWUhaZiFpWcDItIpRKLEkJzcxMye93FAvMTdTLzk/dxMjJDA37WBsuWh+iJGJg/EQ owQHs5IIryzLpXgh3pTEyqrUovz4otKc1OJDjNIcLErivKvcj8YLCaQnlqRmp6YWpBbBZJk4 OKUaGJc8lnzebPRW2+BP+WYJjplvattCdq74um3tR9eYpQEv49XSn1xj3fnL6sCulLMuvS65 CbL2RTbpKx/GTFVcff9Wf+E7y3/ZD8T/qrVOazi21GmT8uo5PtmMJ5IMF+3iOce37gn/dG8R 0V3TT0/YsIdh+rsJ6/7v4P606YzutwrvzRoTPxouibmhxFKckWioxVxUnAgAmh7OCzoCAAA= X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.102.3 at phobos.denx.de X-Virus-Status: Clean Read and retain MAC address across flash and QEMU support. Signed-off-by: Hongwei Zhang --- drivers/net/ftgmac100.c | 32 ++++++++++++++++++++++++++++++++ net/eth-uclass.c | 2 +- 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/drivers/net/ftgmac100.c b/drivers/net/ftgmac100.c index 999941de14..951d99cfe0 100644 --- a/drivers/net/ftgmac100.c +++ b/drivers/net/ftgmac100.c @@ -275,6 +275,28 @@ static int ftgmac100_set_mac(struct ftgmac100_data *priv, return 0; } +/* + * Get MAC address + */ +static int ftgmac100_get_mac(struct ftgmac100_data *priv, + unsigned char *mac) +{ + struct ftgmac100 *ftgmac100 = priv->iobase; + unsigned int maddr = readl(&ftgmac100->mac_madr); + unsigned int laddr = readl(&ftgmac100->mac_ladr); + + debug("%s(%x %x)\n", __func__, maddr, laddr); + + mac[0] = (maddr >> 8) & 0xff; + mac[1] = maddr & 0xff; + mac[2] = (laddr >> 24) & 0xff; + mac[3] = (laddr >> 16) & 0xff; + mac[4] = (laddr >> 8) & 0xff; + mac[5] = laddr & 0xff; + + return 0; +} + /* * disable transmitter, receiver */ @@ -532,6 +554,14 @@ static int ftgmac100_write_hwaddr(struct udevice *dev) return ftgmac100_set_mac(priv, pdata->enetaddr); } +static int ftgmac_read_hwaddr(struct udevice *dev) +{ + struct eth_pdata *pdata = dev_get_platdata(dev); + struct ftgmac100_data *priv = dev_get_priv(dev); + + return ftgmac100_get_mac(priv, pdata->enetaddr); +} + static int ftgmac100_ofdata_to_platdata(struct udevice *dev) { struct eth_pdata *pdata = dev_get_platdata(dev); @@ -613,6 +643,8 @@ static int ftgmac100_probe(struct udevice *dev) goto out; } + ftgmac_read_hwaddr(dev); + out: if (ret) clk_release_bulk(&priv->clks); diff --git a/net/eth-uclass.c b/net/eth-uclass.c index a7f8792710..19d7e0cb3b 100644 --- a/net/eth-uclass.c +++ b/net/eth-uclass.c @@ -514,7 +514,7 @@ static int eth_post_probe(struct udevice *dev) memcpy(pdata->enetaddr, env_enetaddr, ARP_HLEN); } else if (is_valid_ethaddr(pdata->enetaddr)) { eth_env_set_enetaddr_by_index("eth", dev->seq, pdata->enetaddr); - printf("\nWarning: %s using MAC address from ROM\n", + printf("\nWarning: %s using MAC address from ROM/MAC Reg\n", dev->name); } else if (is_zero_ethaddr(pdata->enetaddr) || !is_valid_ethaddr(pdata->enetaddr)) {