From patchwork Mon Apr 4 19:30:29 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Anderson X-Patchwork-Id: 1613146 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=seco.com header.i=@seco.com header.a=rsa-sha256 header.s=selector1 header.b=BzSqIpM4; dkim-atps=neutral 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=) 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) server-digest SHA256) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4KXLVb22K1z9sBJ for ; Tue, 5 Apr 2022 05:31:17 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 68D0383923; Mon, 4 Apr 2022 21:31:02 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=reject 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 (2048-bit key; unprotected) header.d=seco.com header.i=@seco.com header.b="BzSqIpM4"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 0E96F839A8; Mon, 4 Apr 2022 21:30:59 +0200 (CEST) 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,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FORGED_SPF_HELO,SPF_HELO_PASS, T_SCC_BODY_TEXT_LINE,T_SPF_TEMPERROR autolearn=ham autolearn_force=no version=3.4.2 Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-ve1eur03on0606.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe09::606]) (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 4CB5E810FC for ; Mon, 4 Apr 2022 21:30:52 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=reject 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=Qx5H314PKsCsw0+zoOAKj3FEntW4s2ErYv6BnYQNXD5erZnAmKtDtGzOaVJWqqWFA1+o8Pvcq6rpTB2NCaMql+iHyfrTt5nSZCg8OSi4crtR4U5q19V+JHMLxA3WR12PVlApA1rd9P1JZAiZjF0xAnZzoXacl5u0VKMhgr623xCrqCe5020tL5u4STXtKn8EXsvQaJkGoZy9RPwnTOS250zL2Y988xdHmLGbA8pvkoaL4OQOSaSbbzA0gViwz1d07OhGoAionHgYaSMlQhabc4wEUCGOy2ipM3CrCoxXsAB7wiSBml2zfFRQASjga/JnIBzqyc01spYQr+5U75iv+g== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=pzOG6t1o/9ne0V2ktQZP8ucs4KZeEzOggfNeEiGYYKw=; b=FnSnaQ0493saaRIbLFki/XlKHSkgqV+Te9Xzdp/jo/vqlBVbI/tzZdCSu+qgPW30kE1GOpDAfstQyIyNdDUTbCfBoCImtq3kfKQcTH6DG3mpqf7WJLBVQr3xNPsNnAp7+JneeflCRrBCIY9iGde7a7GIAMKCCI+RwWZNfoodYiyLqeRt1sMMrbNqSYjwr4f8BQK+/BN9DGSL3sjL8zx4rlbBdJ4s5P+BQ+1lnIuAo9NF6mryqaJEBo3O2k2H9dzauiOtNUAevl57nG1JDtJWkixXgOUtg3VvUkKKcXl9/+KftxEmGY8VNtVAIjxmmrbZT3SA/wZ0HgStJNCucq1tyw== 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=seco.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=pzOG6t1o/9ne0V2ktQZP8ucs4KZeEzOggfNeEiGYYKw=; b=BzSqIpM4EY8Qx2KvIAdOhIzg7E1UFFZ43uZk+9+2tUiul+pVj6y8KUB9x2mZHdqIkYBt3wugwCPc2Alr8h0wpOKohuzzmjQDYAkp+GeDROU8C/6vWVAQojp+l0m8nPCV5fsiV7g3/+iffgO8U5Amn5i8xptMwd0S0ecqGTMi8gmylI8bFMZNZSCXuM+cFV5Bd6/OxFrIBNXYKOYjERSAdCjXSvQ0vopBvkWcmtGib3+zYgC1+VBlOqPAKIazIlJWoLOPjNGQkUEN+ZF1h2XE4ZCD29xcLu/j0fqa5eP+SachxbdN9Dr+qST2P3MKLweMEDEvT7Sx9IgPUh3ZwzDoww== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=seco.com; Received: from DB7PR03MB4972.eurprd03.prod.outlook.com (2603:10a6:10:7d::22) by PR3PR03MB6411.eurprd03.prod.outlook.com (2603:10a6:102:7a::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5123.31; Mon, 4 Apr 2022 19:30:50 +0000 Received: from DB7PR03MB4972.eurprd03.prod.outlook.com ([fe80::356c:789f:d20f:92bc]) by DB7PR03MB4972.eurprd03.prod.outlook.com ([fe80::356c:789f:d20f:92bc%7]) with mapi id 15.20.5123.030; Mon, 4 Apr 2022 19:30:50 +0000 From: Sean Anderson To: u-boot@lists.denx.de, Simon Glass Cc: Heinrich Schuchardt , Ramon Fried , Joe Hershberger , Tom Rini , Mario Six , Sean Anderson Subject: [PATCH v2 00/11] Add support for NVMEM API Date: Mon, 4 Apr 2022 15:30:29 -0400 Message-Id: <20220404193040.2305153-1-sean.anderson@seco.com> X-Mailer: git-send-email 2.35.1.1320.gc452695387.dirty X-ClientProxiedBy: BL1PR13CA0063.namprd13.prod.outlook.com (2603:10b6:208:2b8::8) To DB7PR03MB4972.eurprd03.prod.outlook.com (2603:10a6:10:7d::22) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: b19ebd66-a7ff-4bd3-2de6-08da1671a049 X-MS-TrafficTypeDiagnostic: PR3PR03MB6411:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 6AoglVW+gN6OI4xIK5Hf6SW7mXUjvcbQUcVtfzh523yGNuiLi+r3D4D0mTPBsBtwVaoz90+d3KWIcNApOn5kyF89jkkCLPFTCd+b1ryOmnxYBiiDgpBI5kEZKm+p0vz9NqsDOlXjfxvhzXr1p2WvR7ZTLU3PJORQJJqMCsjbUB4nATe9QUhPsVuOAFT9Mz0yWVrX984r7rZ+o7pqYTvkbhVOCwMTpvwyF1dmM9WZDUHUt7vRq5RCyd5oL8TEDHL8CNy5tJiArfpItHB02EmFBAKJjjO4JSPK6srW3ZBFVCJsMVNs9eq8jl5WMo9O2EFax+25wYAw19dAab3mERQbyS4vwe3KeepXPL2hYIrje2aMUXxJvUEFxRVdtKeIKd+vQtdXISucd+1GSydZAE32va/cm3nv8VLLiQe+o/9KQD7xdeOLxehkArS61gt0xwsX4f708fACJwO8OIBsZM3nYv+77h9h9aBrtAraAr/ZiEJjliFYB6QK0PbsKYHrJNqvjrakib3OaDCmDoQstvVw7XvquW+I3GcfgCEpPZkoqdLyAu5i2nWZLNgmAZ94ExuQX/kt7uZW4Jjn5YbFv08/JzeTZ6h1h63081+NO+uzRlCkGpE3pRiR6QwCy4eQ7QG4H+gL90f7Lz/hezlL8XYKFujE6/dJkRBKc+JEzLjiYNkpCsRZA8sfgfXBEVnromclWTbzT7pAlr6eZdi5TEpU8A== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB7PR03MB4972.eurprd03.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(366004)(6506007)(52116002)(86362001)(6512007)(2616005)(6486002)(6666004)(107886003)(508600001)(2906002)(44832011)(38100700002)(83380400001)(316002)(1076003)(54906003)(6916009)(8676002)(36756003)(66946007)(38350700002)(26005)(186003)(4326008)(66556008)(66476007)(8936002)(5660300002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 2YTM09KBMG+lrNirD303wqONwuzUnWyUFWFRs3pF33RDMAuZBb5n6z4qVFZtuRb882uERtaE4F1TCFG8lhdP6ipIlEjDjYrtYKjy8l4iYoc43axT+VXgb2XlnToJk7nhLRTsNkojFSf9SM/8iuxjM7CYJF8LfKI/w72EQmAqQr0RrmCP2chS3SsgouMpCDbLzZtVimDN7PyLW69dahsUGSrI2esZqR3fOHwC8ZzEvmtoJR6EqG1rrNftAsCrqxNm7fqw9pFB/VreYq18fFr7D+IGsIemsaY1lg+JzO9XktRLwUGAYsGEUE4NW0VzBVheptR1J5E4P2q3iBCn7h0DK3Lo7OmSGqVPwHmkTwSHr3fb06QTC1mB0gx8igvse7Alv7H4JBTrm5Sn+a4rPh7K2wvfPer5jqy/DD9C2236vVp6+lRSYj3RDkwddt+WRvKnAxhGWvU94BSmg5sTG9IJzze7Noj9dV6sa3SKjiP+XvW93MvkOHCiT+e5HZzmfkzeVod83EHZ6KFV2tOAGor62SFTC1cCGDFg+MfiCWBAQ3q1nbEs+PXLVR+AHH8nHX/YMdR3VtFT1/0pqs0kZ8LjpvZUFS1ds/RgXyTM4MB5M7u3OLMPaSB1jNgQL0xhtY0gdCJv6goyXh3TiavYfyEgQrI1ZfewvA3rhEDkerGQKVZlsrDDJ8aGUUn3dbmIfl50mrqVnnck4uzifyo6JMCDhO6qpkqRGn2vhMbNSkrV0WHVUdQSdMfTviyEGG0EyMbTxi+Nbp+r6gdAstnpD6PWqZ0x0J+aA/sw82gkpwfShShG5tjgAm+XwJh4X8EJxfhBbGgs0W7ahXR/s0UnDdqPQ7roy90rbA5s+JcJ6SPpKHH9W6Jg3pAWvvQurgwUV85VQ17EA5yIuiZ8dHEOgv5RZwzQEzwLlN5PXsL45zHCQCbGRd5IJhToITRAznpxTGxRwGqgXomqnV9cECc0jd/SxdoF/FiH8mY9ruInc1rB7q3hXZdgFa5O8IJIGZzIli+MWeYyVxj7DwHsaBfAErBzCTRP67ZhMEA0bqpRdSoRECoCnLcIjF5PjRBM8Ac01UISOm5Hiodqangyq7TpkRWYAQfAJeuET9brCN2Kil6m3HIOTtPpIvjj8z0NQka6Uhy2kGYXraFR6QrCEB9MnCmqL4SsvRRpF7XeaEKkrekOoIG0GflSQVULwocv439GWqu93NlPT+4biCSMknGVftPA15hLHRb1BaHK+M+bmpZZ4gsCy3j3Pp7kbRCiEwJmnZCUvijszS8fiy9EhecwXkB4ovfyVe4Md+dWJcdSxFAva08S4h6+AUTAQx3yfACS4yZky1x0ubN+Hpw11A/Al+g0L0IstOGtaHLi8ijUUMUZ63SXfTnqH5DFAUB7cgAh+VkjjamuXpISXKHn+0yrBxNT+UoDNdyrt9b0aeY9QNN3hdKKrR1DeUbgL4TPtDzb84YxaIxTCPjzlaIOV1DHYh1aAjG4+FptpweTCYylS0SaQIv0xxUOWrzNDJGrSiy+H9LzXxjGPBEfIpZM7Rbujmc6FgACm+ugjYIRiS/7mFW9GTWY7e8hRL5N5QxDaScewCFf/ScuJcI8+t+E91LX0IGyVCAdLCwmLDMJNuawkDoSCi1QkDn6l6B7SfehPvH6cGvSuzFbmUzYI0+CzY/dXKTSVKZ4UBGbBXHa0YWG8jOGx4PST52Pj9Gwf3qMOKG3W6O21CABl0ztlQ5jPDe1ona8SoNyRnJU4UUoMMx6y5uY0YU= X-OriginatorOrg: seco.com X-MS-Exchange-CrossTenant-Network-Message-Id: b19ebd66-a7ff-4bd3-2de6-08da1671a049 X-MS-Exchange-CrossTenant-AuthSource: DB7PR03MB4972.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Apr 2022 19:30:50.3862 (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: oQcXsCDhhcbPzj8wzn2sL4SqLXPWnet/I5xq9LEeLtVp1x+254JUARY/AEKcr3a0waCsy+nY4jFlHYZYWW2BWQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR03MB6411 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 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.5 at phobos.denx.de X-Virus-Status: Clean This adds support for the nvmem-cells properties cropping up in manyb device trees. This is an easy way to load configuration, version information, or calibration data from a non-volatile memory source. For more information, refer to patch 6 ("misc: Add support for nvmem cells"). For the moment I have only added some integration tests using the ethernet addresses. This hits the main code paths (looking up nvmem cells) but doesn't test writing. I can add a few stand-alone tests if desired. The patches are structured in the following manner: 1-5: These are general cleanups, and may be applied independently of the rest of the series. 6-7: Add NVMEM support 8-11: Support reading ethernet addresses using the NVMEM API and add some tests. Changes in v2: - Call the appropriate API functions directly from nvmem_cell_(read|write). This means we can drop the nvmem_interface machinery. Sean Anderson (11): sandbox: net: Remove fake-host-hwaddr sandbox: Remove eth2addr from environment test: eth: Add test for ethernet addresses sandbox: Move some mac addresses to device tree misc: i2c_eeprom: Make i2c_eeprom_write use a const buf misc: Add support for nvmem cells sandbox: Enable NVMEM net: Add support for reading mac addresses from nvmem cells test: Load mac address with i2c eeprom test: Load mac address using RTC test: Load mac address using misc device MAINTAINERS | 7 ++ arch/sandbox/dts/sandbox.dts | 1 - arch/sandbox/dts/sandbox64.dts | 1 - arch/sandbox/dts/test.dts | 29 +++++- board/sandbox/sandbox.env | 4 - configs/sandbox64_defconfig | 1 + configs/sandbox_defconfig | 1 + configs/sandbox_flattree_defconfig | 1 + configs/sandbox_noinst_defconfig | 1 + configs/sandbox_spl_defconfig | 1 + doc/api/index.rst | 1 + doc/api/nvmem.rst | 7 ++ drivers/misc/Kconfig | 16 +++ drivers/misc/Makefile | 1 + drivers/misc/i2c_eeprom.c | 3 +- drivers/misc/i2c_eeprom_emul.c | 4 + drivers/misc/misc_sandbox.c | 3 + drivers/misc/nvmem.c | 142 +++++++++++++++++++++++++++ drivers/net/sandbox.c | 10 +- drivers/rtc/i2c_rtc_emul.c | 10 ++ include/i2c_eeprom.h | 3 +- include/nvmem.h | 151 +++++++++++++++++++++++++++++ net/eth-uclass.c | 13 ++- test/dm/eth.c | 28 ++++++ 24 files changed, 414 insertions(+), 25 deletions(-) create mode 100644 doc/api/nvmem.rst create mode 100644 drivers/misc/nvmem.c create mode 100644 include/nvmem.h