From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-17.3 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS, USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id C962EC432BE for ; Thu, 26 Aug 2021 23:36:17 +0000 (UTC) Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id B539260234 for ; Thu, 26 Aug 2021 23:36:16 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org B539260234 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=seco.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=lists.denx.de Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 38BD083116; Fri, 27 Aug 2021 01:36:14 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=seco.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; unprotected) header.d=secospa.onmicrosoft.com header.i=@secospa.onmicrosoft.com header.b="aso/M+wy"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id A4A4B83116; Fri, 27 Aug 2021 01:36:11 +0200 (CEST) Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on20609.outbound.protection.outlook.com [IPv6:2a01:111:f400:7e1b::609]) (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 C194583210 for ; Fri, 27 Aug 2021 01:36:07 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=seco.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=sean.anderson@seco.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=NW3vBgSiw27b4NaLgtEXrjToJFZnCcKcDQYywhGJd5PPikattWfwXX3d8RXG40ahyCEt0lNaaqblcVh73EsZY7tk8d09T3qYPKl506qUTxX1nR/rZr6UI2lQhIr5/q2ZiPtAzmFitgQyW3h+GOhwanuVBnmbolDP3ofU6a1p3sg9P7s9Uej4Pp+J1p5R57Pz3TeOZMBcW8CS+m6RDQY0NPnX46ZMvWqer/392dttht+U6al6auG7/YqSYX8Oni8z/GParHR6ATjriU3L8Nc9iq/yAzDQtWM4F9DB0Xs2VCZa9oD7flLBTp/0/mXDp1pTWH8FBJ6D6/ExDjnfgbVo7w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=LzoYzdAMKSXXg9rAkwC6XNmcrfe1mQSCKGF81zKREiQ=; b=Tri9I2JjtThwuj6qzdsWWTubYvSbJtTpVrbIzY6T0XEsB96xO0ELtZq27JsLErQivKLw76qwFKJ8qDUPr4LkDSsU/5dIMAoSPjE+lU4GnL5ndbH74po9BBuXo/7wPRQBR8nQF520U98QO22WofaulLVwk7fXKkTyzaqIYCrzcOqSBcsYJZirFA6X89+QONyBcZqHGqUtqVQeN3fKkMUuAmNNFWXGCOrSKO9m5iL5uXnC4yrS3wK7NXO+2L5BnY98N6VGLtLcQHouAKLaMPa37SVP0e9RqU3L82A+7VGxCyL22UiVGrtSVW4202ir7zb6w4L/g/9CRCDNu+jyP2+ccQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=seco.com; dmarc=pass action=none header.from=seco.com; dkim=pass header.d=seco.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=secospa.onmicrosoft.com; s=selector2-secospa-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=LzoYzdAMKSXXg9rAkwC6XNmcrfe1mQSCKGF81zKREiQ=; b=aso/M+wyT5Nlgg4EtwuzZn+tqpEakh70dbpaa0cl8uECVbG2/ZeuoGVhvKa3ZeQswwESxi/fyhBue/pnRvbVnTZz6+dvF/M5zuEJt7Vhkc8s+mgmkFgWHFdjuT8d48MbqY7euFh3G9ZysT+rkRqMyr3QoSLh5TVipC9YrRLq1Xo= Authentication-Results: denx.de; dkim=none (message not signed) header.d=none;denx.de; dmarc=none action=none header.from=seco.com; Received: from DB7PR03MB4523.eurprd03.prod.outlook.com (2603:10a6:10:19::27) by DB9PR03MB7387.eurprd03.prod.outlook.com (2603:10a6:10:221::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4457.20; Thu, 26 Aug 2021 23:36:05 +0000 Received: from DB7PR03MB4523.eurprd03.prod.outlook.com ([fe80::dc6c:815b:2062:d1f1]) by DB7PR03MB4523.eurprd03.prod.outlook.com ([fe80::dc6c:815b:2062:d1f1%7]) with mapi id 15.20.4436.025; Thu, 26 Aug 2021 23:36:05 +0000 From: Sean Anderson Subject: Re: [PATCH 04/10] fdt_support: Implement fdt_ethernet_set_macaddr() To: Alexandru Gagniuc , u-boot@lists.denx.de Cc: patrick.delaunay@foss.st.com, marex@denx.de References: <20210826214209.254461-1-mr.nuke.me@gmail.com> <20210826214209.254461-5-mr.nuke.me@gmail.com> Message-ID: Date: Thu, 26 Aug 2021 19:35:58 -0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 In-Reply-To: <20210826214209.254461-5-mr.nuke.me@gmail.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-ClientProxiedBy: BL1PR13CA0379.namprd13.prod.outlook.com (2603:10b6:208:2c0::24) To DB7PR03MB4523.eurprd03.prod.outlook.com (2603:10a6:10:19::27) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from [172.27.1.65] (50.195.82.171) by BL1PR13CA0379.namprd13.prod.outlook.com (2603:10b6:208:2c0::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4478.10 via Frontend Transport; Thu, 26 Aug 2021 23:36:04 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 4205b14b-9653-4a06-7ac0-08d968ea4592 X-MS-TrafficTypeDiagnostic: DB9PR03MB7387: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:8273; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: GCLFCzy4MJQ1oiDja5aGus+NzJrlwaA1e056Hf8oAIvCp4h3fSPaOcEXHUjNgbJ9DNiv9h1h+9OQhYGv2q+Cxpe2vZSyXKVM/ePGAaWXAuzlmV5g/9v8PsSUcxneMEJZAGsHvWI8mfBGbsfvAA0Ac+KHzLC6TeKm+Pf9DRaAjYYsW5RBQTvdN3ozmveQXAkP8NUG50B2Ow/EGFvZWLcf09dk4TrtgaXVovJb24Bnp6tZ/pMwdkWGjvZPkbRxUW4pFGk3+TbhCltd5wiwASVuP31J/ZY7GAc9L5Abx1oMYnZZ7pORUm/kWJHcqtdkN1oTLY1Ny40MCiLH6EkzLvYphjK5TcspAfcWtz3ugnnSDyqEg/b0fvEtAE7T6zPAdTj0dQ1eK6PJkQBgH+6PlDue3YymkfUNuKd+rt/dinUKJ9JJW9l2BLQMHuEeS1sEkzX6HrnfUkkTo9h5jz6iTNXzpviv4xnyQTxmhcyCvd/L7f9PPz4FoeueNVlo/fDTxQSU9d+NYQH83dcod4pMaW5cZ1VrVwmrl1K7ZeA39mVKPE58/H1WJQ1N2OCpNc7bVp1GWdbtCh7Rnk/5MfK1jfFf63YwivZCnxea2yKTv4ZoYa50yMMuyni4R9xkAueIPzv35JdkRLtLQWlzp6x9QxPuSSNb/fDaD66UB+Q/0W8pMnshlyxA1D6Agu7FeUs6DQmvHtOUag+FwbciMfLd2F9M0wd/BEz5s6t7Bv4fHaks8L/xzacA4AI8eImVRqGEtg3WM6JgwnAhfSK7BiUJJynmeg== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB7PR03MB4523.eurprd03.prod.outlook.com; PTR:; CAT:NONE; SFS:(396003)(366004)(136003)(346002)(39840400004)(376002)(66476007)(66946007)(53546011)(6666004)(66556008)(186003)(26005)(83380400001)(956004)(44832011)(2906002)(6486002)(4326008)(52116002)(36756003)(8676002)(31696002)(2616005)(316002)(31686004)(16576012)(38100700002)(38350700002)(478600001)(5660300002)(8936002)(86362001)(43740500002)(45980500001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?OXYrTm5HTWFFMEk4dXVvdEJVdExMUm1LeUdNMDh5cW1jSGh2ajJ4TTN5dUEy?= =?utf-8?B?MU5XU3BraHlqSFVReWFNaDFuWTRmU1VIM2JLMnFUUTR0NEhHWWhWMW56NTJM?= =?utf-8?B?VGJ0dHFxUGdpS3dpVjZyZ2k1TGNhYksvcWRHc1UxandUNkVvZE9hNG1mU0tu?= =?utf-8?B?amNQRHU5MVBMZkdnOG5scVl5SkhIZDU2ZUVrcDZsUWluTy9GL3UwaDhWWDJF?= =?utf-8?B?aVNTc0JkRVJtS2NXNlkxb0JGR2hpSVN1ajRneTVZd3RpelBGNk8raHE4OWM1?= =?utf-8?B?Vk9TK0l2eWtkMUNNaWFqakk2b01hNkFQb0VpeXU1RlVESU44a2QxQ2hYTmpX?= =?utf-8?B?bkRvRGRLMnMvV1Z4d2d1N3NUOFZYZFdTMjNFb1Y0dkQzYjd2VlMvWlhNV1Yx?= =?utf-8?B?VFljMUVUSzdVbE91bXVxQ1NabmpZM0RZNkZCUm1pT1Vzd3Q3ZE8wdXNlUFp2?= =?utf-8?B?L25PZGEzRDJXT3g2am9XWXBmTEpHT3pEbERWeVpTYWttUzMrUWNnOWRkK2Yy?= =?utf-8?B?bDdHR0g4Y0thdEJuR3dyZTkzek5DNTE0RlVGbjJBL3VpS1QxVWh1U21iL3lu?= =?utf-8?B?RjJwemRJMXZJQUM5T3hSL0dFek9scm92TUVOcTgyenZreE9KTWhVaHVQWDN0?= =?utf-8?B?NFVnNWorZHFzU3UyQU1IbDRxLzMzOHlxWG1Gekh4V1RrSkNadzkyTWo3UEw1?= =?utf-8?B?cFllM0QyZzZDTWdaNG44Wk95ZDhtQTZBTjUwbUVvQVVpZFRXWDRSTWJzZThT?= =?utf-8?B?SU9HV0dsaDhmUnNJditkRTJmMnRlcjM4K3c2YWV5SjdJZUFDL29aa2Faekto?= =?utf-8?B?SUswNTZDN2VsSGh2Ky9FV0dNNFdrelhOOStwWHAyYzVhTklIL3YzTk9qa3Yz?= =?utf-8?B?VGpWNXNTOEt4QjYvMnhqOTJTMGh2K3QzRTRCVDdsQnZlMUMxQ1prWDF6ZDJm?= =?utf-8?B?RWl5aVR4Nk4zOWNtZkhLYUozYjVmNVVlVFZOYmx3R2xmK2w3Y2tFcGJqU2V3?= =?utf-8?B?V1dkWUhxRzNNUWNjQVFyc29nclJRNDdOZ3VpUXcrMGMwWThTNTljaC9IemlK?= =?utf-8?B?TTdyaFowMFFiWUU3QUZBWDYwY0d2KzE1L1E1R1N0TlpFZTRQYWc5cVZaTFZx?= =?utf-8?B?czByUGZsdVFtTjlncVdWeTRROEN2WFZQSGJaV3ViQlZNVzRxdnhDQVBUQWdX?= =?utf-8?B?QlllcHNwTTd4RENIK0FNQzJrcUZ3cXpQR2RLVXpIa05kMkJHd0Y2QW95MDM1?= =?utf-8?B?WE1vTUhqc1BRRjc1eHV6M0F3Y2w1cEZubGhQZUtrM2pmRk5oQWhQRU5WUFhH?= =?utf-8?B?T0hNcTBCaThGbnZKdU1jUmJoZm5XakQzUm9mQm1ldkhYV3d4ZG1LU0xlMXhK?= =?utf-8?B?dVF4OEw2ZjhTMlJCWFRaS3BYdW1TQmtIcHZkWjl4MEpMVlVrQmxTb0IvNW5V?= =?utf-8?B?V05LRHp4OHBVUzRLbkNJUVp5Z0V5OUMybWdJSUNrNGJIcTI4aXFHekg3aFBu?= =?utf-8?B?bkRWSUxpSWZ1TjBETGdoYThrNnM0MmdlMmNVRlJ1SDZTdGhkdWc5WkM4Zkl2?= =?utf-8?B?N3dHajZ4dUJPL2F0MHpxRkZERXpRdy9laHBKc3k4SEV0QWpQaTN6NEdZT2pQ?= =?utf-8?B?OGhLcENtaFl1RTl0cnNjRXpYMER2Q0tLOHlwMXNTSXAxdDN5RnF4aHZadFQ0?= =?utf-8?B?LzMzRnA0YTZJc2ZGV2o4aUVOemRIdFNRaXZyUCsybzhjaTFxaEc2WXRIRW1I?= =?utf-8?Q?WRnc5vlTUT5rDhZ80TuQ0rh0Rg/Dm55EfSfcdqI?= X-OriginatorOrg: seco.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4205b14b-9653-4a06-7ac0-08d968ea4592 X-MS-Exchange-CrossTenant-AuthSource: DB7PR03MB4523.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Aug 2021 23:36:05.0788 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: bebe97c3-6438-442e-ade3-ff17aa50e733 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: XcfD75DdJEXOWT2t8htT81bgQ7dBjZOSV9vKpm8XfJG3G6leWvT94N9nb0xGctsNIcOJZRa2yVIP93TnCflOeg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR03MB7387 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.103.2 at phobos.denx.de X-Virus-Status: Clean On 8/26/21 5:42 PM, Alexandru Gagniuc wrote: > Oftentimes we have MAC address information stored in a ROM or OTP. The > way to add that to the FDT would be through the u-boot environment, > and then fdt_fixup_ethernet(). This is not very useful in SPL. > > It would be more helpful to be able to "set interface x to MAC y". > This is where fdt_ethernet_set_macaddr() comes in. It is similar in > function to fdt_fixup_ethernet(), but only updates one interface, > without using the u-boot env, and without string processing. Have you considered adopting the nvmem-cells property for ethernet controllers (added in Linux commit 0e839df92cf3 ("net: ethernet: provide nvmem_get_mac_address()"))? --Sean > Signed-off-by: Alexandru Gagniuc > --- > common/fdt_support.c | 30 ++++++++++++++++++++++++++++++ > include/fdt_support.h | 17 +++++++++++++++++ > 2 files changed, 47 insertions(+) > > diff --git a/common/fdt_support.c b/common/fdt_support.c > index 4341d84bd5..c4cbd4060e 100644 > --- a/common/fdt_support.c > +++ b/common/fdt_support.c > @@ -592,6 +592,36 @@ void fdt_fixup_ethernet(void *fdt) > } > } > > +int fdt_ethernet_set_macaddr(void *fdt, int ethnum, const uint8_t *mac_addr) > +{ > + const char *path, *name; > + int prop, aliases_node; > + char eth_name[16] = "ethernet"; > + > + aliases_node = fdt_path_offset(fdt, "/aliases"); > + if (aliases_node < 0) > + return aliases_node; > + > + if (ethnum >= 0) > + sprintf(eth_name, "ethernet%d", ethnum); > + > + fdt_for_each_property_offset(prop, fdt, aliases_node) { > + path = fdt_getprop_by_offset(fdt, prop, &name, NULL); > + if (!strcmp(name, eth_name)) > + break; > + > + path = NULL; > + } > + > + if (!path) > + return -FDT_ERR_NOTFOUND; > + > + do_fixup_by_path(fdt, path, "mac-address", mac_addr, 6, 0); > + do_fixup_by_path(fdt, path, "local-mac-address", mac_addr, 6, 1); > + > + return 0; > +} > + > int fdt_record_loadable(void *blob, u32 index, const char *name, > uintptr_t load_addr, u32 size, uintptr_t entry_point, > const char *type, const char *os, const char *arch) > diff --git a/include/fdt_support.h b/include/fdt_support.h > index f6f46bb8e9..3f0bcb5a00 100644 > --- a/include/fdt_support.h > +++ b/include/fdt_support.h > @@ -119,6 +119,23 @@ static inline int fdt_fixup_memory_banks(void *blob, u64 start[], u64 size[], > #endif > > void fdt_fixup_ethernet(void *fdt); > + > +/** > + * Set the "mac-address" and "local-mac-address" of ethernet node > + * The ethernet node is located from the "/aliases" section of the fdt. When > + * 'ethnum' is positive, then the name is matched exactly, e.g "ethernet0". > + * When ethnum is negative, the first ethernet alias is updated. > + * Unlike fdt_fixup_ethernet(), this function only updates one ethernet node, > + * and soes not use the "ethaddr" from the u-boot environment. This is useful, > + * for example, in SPL, when the environment is not initialized or available. > + * > + * @param fdt FDT blob to update > + * @param ethnum Ethernet device index, or negative for any ethernet > + * @param mac_addr Pointer to 6-byte array containing the MAC address > + * > + * @return 0 if ok, or -FDT_ERR_... on error > + */ > +int fdt_ethernet_set_macaddr(void *fdt, int ethnum, const uint8_t *mac_addr); > int fdt_find_and_setprop(void *fdt, const char *node, const char *prop, > const void *val, int len, int create); > void fdt_fixup_qe_firmware(void *fdt); >