From patchwork Thu Mar 24 18:23:00 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Anderson X-Patchwork-Id: 1609166 X-Patchwork-Delegate: rfried.dev@gmail.com 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=dPKgmqBK; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (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 4KPYWc6fQTz9s5V for ; Fri, 25 Mar 2022 05:23:39 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id DFCF884107; Thu, 24 Mar 2022 19:23:23 +0100 (CET) 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="dPKgmqBK"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 1B4BE84101; Thu, 24 Mar 2022 19:23:22 +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=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2061a.outbound.protection.outlook.com [IPv6:2a01:111:f400:7e1b::61a]) (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 4E48F84021 for ; Thu, 24 Mar 2022 19:23:19 +0100 (CET) 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=WZCkYsyEaQnB5hLAOe0rCFsa1OU3Otjd6s+NyOlleJeDDSiqtqT4UIFxkhdy0Vi9E8ZPIL42XNJ2Vo2T8NdErF8zd9tMYnqs8WhiQClJVYTvgQzvY5nlYmRQkUNxkDZUa1/X1QG6wlEwa6XBbBSsryuihcMmi6ZO6qhMh56k/i+EyAr6LZfxmejB7YM1kywuw+z3Beup/CWMhKzAJO2vrp4kP7qUNzZJ4xZG5XKWqE8Vdw7C8U2hLk/Ylmay7xcx1067v9LWb45U3Ypik9m7LVM1MTYn5oh/oco/8cpJ+FaEBtd38vIj9DLDzKp0AkljpiiiZzdCuGM43Rj1e/Xa0Q== 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=1Gs+x1UYEhyKbFN7o7S8veS/5C26faAMB3QwJWKoECY=; b=YaavYRNsLdsbCHaIvZRv8aB53vqhi1RBfNlHahIuAYwKKdlWlNynOjzG7PLINefRR0G73jqEVUhELvmYnw24EzrFlkRfcgDraeNtDm/QprS//u1PuabACKakGhPyJir5uGIGNsrjINaxjVNuwA/l/ynn+ERV2VXNW1ltoKrsP8InMVI6fmd46SM4PdJLb1Uk+zEZJh02gMtxCYry4NWdPqZI/7qBdpjlK6MqDQHc1yoAAEU+ra/8RYCdJSR2RFpXhRoMeH9auUoXDd58+fPrDJxvmGkIPAfus1vU76JIgu3i0XY6ztsqusMNXqVieM0EJ2t7IBGr/QVW8YDr5eDpbA== 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=1Gs+x1UYEhyKbFN7o7S8veS/5C26faAMB3QwJWKoECY=; b=dPKgmqBK8vvP43BBCQfv/0ID5gO3z6MKcIu9ARaphlakgCZQQl/2OEfPJburD827G53kUYNZwrw98reES5Nu9lr1juSOUreBH2qP0JquacyN3BJzrE/HqSRGsdogzpVY9EPSNngLZdj5S3CMignf6ZBsED0xeJAlteW1/Hi1dFZ8CKCSrIxC8gGYEh3MquluIL58n2V2Bf7tLVJuSQ9IkBzpqzH65DOcL6ElgBXUkd0Yy2bpc/NHQ9OwsTasP17m34WXPtUGPdeOds13kryGWGlegdkR3kfhoiqX+/A57SxG9pVvdZLnqHpezaKYcwwqrsWniiVGi2FM1CzxcUIrmw== 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 AM6PR03MB4664.eurprd03.prod.outlook.com (2603:10a6:20b:12::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5102.17; Thu, 24 Mar 2022 18:23:18 +0000 Received: from DB7PR03MB4972.eurprd03.prod.outlook.com ([fe80::2414:8ad5:9fd6:3bff]) by DB7PR03MB4972.eurprd03.prod.outlook.com ([fe80::2414:8ad5:9fd6:3bff%5]) with mapi id 15.20.5102.018; Thu, 24 Mar 2022 18:23:18 +0000 From: Sean Anderson To: Joe Hershberger , Ramon Fried , u-boot@lists.denx.de Cc: Simon Glass , York Sun , Priyanka Jain , Sean Anderson Subject: [PATCH 1/6] ARMv8/sec_firmware: Remove SEC_FIRMWARE_FIT_CNF_NAME Date: Thu, 24 Mar 2022 14:23:00 -0400 Message-Id: <20220324182306.2037094-2-sean.anderson@seco.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220324182306.2037094-1-sean.anderson@seco.com> References: <20220324182306.2037094-1-sean.anderson@seco.com> X-ClientProxiedBy: MN2PR10CA0005.namprd10.prod.outlook.com (2603:10b6:208:120::18) 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: 60f15a42-d15f-4d51-f6b0-08da0dc35e6d X-MS-TrafficTypeDiagnostic: AM6PR03MB4664: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: EMkRNVQblRmsnfG968ulNiTyq0EpgaNGRtuFiN3Ub5DNyR0tevOfMeDQfexa+q0zo1F+rH2PWyi0xRTkH/3P/OS6T2C/On/l1Gr+RKpYyGW8Gwtdi+xzlSSQORdYU5IxgDvjyAHOTxc8t9GpvGpVe5+iGhG/8BMObq0GprXet8s2bBMtSPzsBzcKkBjipVIB/49UTkLGKDGPDXOR5fQ9iXcrlqNuercffSs9TNn8Wy4hmwb6kjW6nBB58m8gPDU5pOeCYPdgBnUhbFgDlTd2CIxQS6pdWOFOEdiqwifLUe+KE9UwB3sl0QHQvq8wAIOZL0qqpOMrAwMHo0tsiThVLnxFUT+dqNDLD+Dk3jAD9lRFFnDcutLN5nqj/mzYlKgN6Ysb7VxmpbUm1s3aVUv4fCFUyXZMBdKlkQ7cl9eKUoTnIUf/3KZ6TBEXgkXBVNiR2haOU7CM+NVbWTOhGk+++KE1hNAbTA/daeTPJUTVqWAGvR2ekvPV3rRCCgrp+3nYrkY9wnFdgwVbX0lPmoQR+ahKvIOsuEhaOrHl3sqA1Ox+Y3FN8b8jkyWBReTZFEi4S8fBWmzr+6K72UiMW0ZCuWyK9xxjHG8uRwGs8nfUfm5oxOFwHSE8hGbyrCYDXa/a8uPE5BVFx4Nn07LXI4SNDHJ+w2gzS3mavniGG8oQPVjFHBr35Zu48ixBpoHUOlsRgwsAccPy3MLN3fY3k6suGw== 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)(4326008)(8676002)(6486002)(66476007)(66946007)(508600001)(66556008)(38350700002)(86362001)(26005)(110136005)(316002)(54906003)(1076003)(186003)(2616005)(6666004)(6506007)(52116002)(6512007)(38100700002)(83380400001)(36756003)(8936002)(5660300002)(44832011)(2906002)(107886003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: AYO/ux9Ru3en/mNusTCJZR7zMuKw7yuDapXeRRlYBL3s2H3ckftSh/Pe5VCS72OhcOI0JlnyjvvR7IZwrPe18XgB+Qmob5lgjpZUh8SU6n3OfiCo06L9q423k9R7YXGJJpF+f7dM0qmEsb+84KDmV/83idfoRk4oCwEs2zU2Qjzk+nuCuD1fjhg1AnQeSrgQU3sQmHdGRpWqrRiUA8q0Xwr5bwYGsQiMIvOy9gV8ysHNzXtwDkdrTxziHj+NqgHJKDSAOHgADG78LAcBAHevJ877VBDmLpGBTxt9IMOJMptagXqVmHBtVnGrxQ9JG686OQJ7/juwZr/B9AzlJuq8zoiHb8fmQE/RFwY7iV8Pu5BA1pzIz+HcpeavwJRkLa5wiQ+z+997lP/6TMQuyvhstVuzVMCpVgkqrvLbap8EyN3O5xkHr3tpLEn+jok12RmRJ9bvGFUzuLTf8SM3JfyM57mvg4Rg+y/xfAbv9Xf9R4l1vglBBULRsjddBXnfXZQFPW4HRN25waZ3I0VVDRdiJx3cEqbUugTzBLjyaLoxZY94r6hWsNo35pFpB+dAafBa99/WHOjdeBtCtngci/kjZpqUfAD/RuTd3bIkEaJL4sC1pmgiMnIHvUe+A9iuIr2eKZ6+6//nebKwtlYHhYiYNHiVCPjG60C9w6SgL3By9piz2gOgUHH1wmI4Esgqwqx5xZtmSTgMqlr46LZnsqXF0PyViW2ym15pgyZSyPvA2ZM5tISUn2tbtiMq1fVxWTxr0d6fw6vC1+OqVYv703tWhD61BrUo6wqnWnq9XKv6SYeDIkqnumLXfL3MLYiSIL69623cJN64tyqPVOjNBA2sISJPorUloH1d1YxwjjE1u8kWtMTnwAhYe1VBp6zWBGzDc5uj1Ln5eRXjOdEuFHux5wz/spEXUHBCqzvoq/Wbbc9LjoGEax13Xsv8o3cAhnAU7FyCPCHvy9RZp8vMFWySn7WqiKgEOj/sAVv+tLsKiHGn19dZiXCpLMTOQxznlVQ8CW3I1pjjwCOxgTwl67LMWIgdwLY4za0xTUShakeiNdyXpN8lOvmrsKOpWNIn0Zy9tXxgLP45gb3W5XOhXl7JRmV+eU1b4EmLfLDub0q3jz8FbgzBP4y/rbgS7zK/0lejajwF0rs5rjC7TV7i4jb3Ov9gSgWVhqN4e3KLD+aKqbxG/bw8aBy7Af4Gzs3KMVXmtOIoSJx9RLRGROfB5oWb7R0CA+DM/l1hTcsY7QhZmBr3qIIZvwv9QOqsHTCfofk/QhATLDO9y11coKCrwJw24QJm9F9kWlXoDUS7NqxtXdDY1q7KQ0CIq/sxLykqpw59YKSI2kqAbel0/nGGD7eipYJMXTqDDrQZqBJNhWifGX9VJu+0ljJr+qmvRI71HAUqxi/zpHwGd725DuZqMKYmJfWgHkrMzr2qw9Inf8pI0gkdOTHmc/9wIFz74O+r9arzHNLDGW7qmNv1QTpPumHi8Q== X-OriginatorOrg: seco.com X-MS-Exchange-CrossTenant-Network-Message-Id: 60f15a42-d15f-4d51-f6b0-08da0dc35e6d X-MS-Exchange-CrossTenant-AuthSource: DB7PR03MB4972.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Mar 2022 18:23:18.1645 (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: fsRprE2JSjTsuoCuD7IVhkfNIgnx9UL7GW6/BsYuRJ0mtz7QF4pneQ2a1mmiY6aTkDTF/rQ/UeF686JbOOETOw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR03MB4664 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 The config to use for FIT images can be better specified by enabling CONFIG_MULTI_DTB_FIT and implementing board_fit_config_name_match. Signed-off-by: Sean Anderson --- arch/arm/cpu/armv8/sec_firmware.c | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/arch/arm/cpu/armv8/sec_firmware.c b/arch/arm/cpu/armv8/sec_firmware.c index 267894fbcb..41525a10d5 100644 --- a/arch/arm/cpu/armv8/sec_firmware.c +++ b/arch/arm/cpu/armv8/sec_firmware.c @@ -35,9 +35,6 @@ phys_addr_t sec_firmware_addr; #ifndef SEC_FIRMWARE_FIT_IMAGE #define SEC_FIRMWARE_FIT_IMAGE "firmware" #endif -#ifndef SEC_FIRMWARE_FIT_CNF_NAME -#define SEC_FIRMWARE_FIT_CNF_NAME "config-1" -#endif #ifndef SEC_FIRMWARE_TARGET_EL #define SEC_FIRMWARE_TARGET_EL 2 #endif @@ -46,15 +43,12 @@ static int sec_firmware_get_data(const void *sec_firmware_img, const void **data, size_t *size) { int conf_node_off, fw_node_off; - char *conf_node_name = NULL; char *desc; int ret; - conf_node_name = SEC_FIRMWARE_FIT_CNF_NAME; - - conf_node_off = fit_conf_get_node(sec_firmware_img, conf_node_name); + conf_node_off = fit_conf_get_node(sec_firmware_img, NULL); if (conf_node_off < 0) { - printf("SEC Firmware: %s: no such config\n", conf_node_name); + puts("SEC Firmware: no config\n"); return -ENOENT; } @@ -123,18 +117,15 @@ static int sec_firmware_check_copy_loadable(const void *sec_firmware_img, { phys_addr_t sec_firmware_loadable_addr = 0; int conf_node_off, ld_node_off, images; - char *conf_node_name = NULL; const void *data; size_t size; ulong load; const char *name, *str, *type; int len; - conf_node_name = SEC_FIRMWARE_FIT_CNF_NAME; - - conf_node_off = fit_conf_get_node(sec_firmware_img, conf_node_name); + conf_node_off = fit_conf_get_node(sec_firmware_img, NULL); if (conf_node_off < 0) { - printf("SEC Firmware: %s: no such config\n", conf_node_name); + puts("SEC Firmware: no config\n"); return -ENOENT; } From patchwork Thu Mar 24 18:23:01 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Anderson X-Patchwork-Id: 1609168 X-Patchwork-Delegate: rfried.dev@gmail.com 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=wTdWfMr+; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (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 bilbo.ozlabs.org (Postfix) with ESMTPS id 4KPYWp3QkPz9s5V for ; Fri, 25 Mar 2022 05:23:50 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 1FC6184114; Thu, 24 Mar 2022 19:23:31 +0100 (CET) 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="wTdWfMr+"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 11D35840E3; Thu, 24 Mar 2022 19:23:25 +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=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2062e.outbound.protection.outlook.com [IPv6:2a01:111:f400:7e1b::62e]) (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 CD589840E3 for ; Thu, 24 Mar 2022 19:23:20 +0100 (CET) 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=Km7mh7BSl2juGtD5VVU4Jg3Mout5wawzm77GuKhgmWFOUIhc+d3k6H1/w8/pzggbR34zxYzDJJtjR+8ebf51sVk9AJn7R/QYcBTAjHDtH/ohsBKXJHbCis9pLUmRorrtzkZnM6Zdi29Lo2/IssX9ZABn9jI9FeYe6hxcks9GYwVoxKe3YOBz0Lb+Khv3lg8e8dWqjN7ILEIWysPvzpeELlsgSydFfdqH6DjN8kkdXKX9jN1iKTtye0JGJNkiqxIj/gn7uysj0fRxTAXJ2+Zu7pgBzpdDJvcTMBtNkalqso/4/NkpAAMVio1e0kOU9lm+WbqrG7eOr/UzNe7sJdIxcg== 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=R/Mw02GKvU8coN46aXEXpt4uXYkf4nlJ4gwb5DulS1s=; b=T4bf44MPgrALmJCVAXL/aBVYBsww99BBipxxdJzV9/vSmko9FQlApuMuAxdfzwgMYMlSENVmPuhpHuoG53kWj6k08GV9MvGZ2AkVtz3r2J2mrE/4SgeHhNN3eXHH2gfcd1ywXXWxnMN0/TT77iXSx2VSBRpdhozpVXkcb5BuPV7FXgVnlVjXtsVCVCWxTZ/ooZmSh2OxqNIBTqGV4/HW54PfZA0YBghodaL63HmRY80egoF34BFj6rmHsGq5KNuRTgDUMo0JhHdoXZO6j4stn0p16bNjy5xARCVyhHkwiRzJiExSUnM9s1xAb9evFC4yO9OhOQRAjeTxhNWs0lGAlQ== 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=R/Mw02GKvU8coN46aXEXpt4uXYkf4nlJ4gwb5DulS1s=; b=wTdWfMr+rYCf0Nx0bh6MpuGU6TV2gOe4+1iuMqgLUcNVYBdfzfl5x5y4ExcDMzq8rGmj+NyaRQPuXXVflmpf7nXKUVUnT8aVuPuapb40v5QHUNipZQ7vwna6tYCvXvOX6fp0BaKpS1aY+h30TzpAuLtPvrnG+yILbHRACycUtOQP+UXlPC8G3aLti8zkps73lU7l1lILwizFjNDkHzKq5BPk57YiCcI6+QibcYpdHX6OEEZt8vAI4LcefpZZqJcjQIxXC7jnt5FpRRg8E41bRoFVyS6LMhUmz+n3WG5H8VIRQoACk9JABJfN4W5480wKB0le/j+kOZpruJlDXAFgMw== 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 AM6PR03MB4664.eurprd03.prod.outlook.com (2603:10a6:20b:12::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5102.17; Thu, 24 Mar 2022 18:23:19 +0000 Received: from DB7PR03MB4972.eurprd03.prod.outlook.com ([fe80::2414:8ad5:9fd6:3bff]) by DB7PR03MB4972.eurprd03.prod.outlook.com ([fe80::2414:8ad5:9fd6:3bff%5]) with mapi id 15.20.5102.018; Thu, 24 Mar 2022 18:23:19 +0000 From: Sean Anderson To: Joe Hershberger , Ramon Fried , u-boot@lists.denx.de Cc: Simon Glass , York Sun , Priyanka Jain , Sean Anderson , Michal Simek Subject: [PATCH 2/6] image: fit: Add some helpers for getting data Date: Thu, 24 Mar 2022 14:23:01 -0400 Message-Id: <20220324182306.2037094-3-sean.anderson@seco.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220324182306.2037094-1-sean.anderson@seco.com> References: <20220324182306.2037094-1-sean.anderson@seco.com> X-ClientProxiedBy: MN2PR10CA0005.namprd10.prod.outlook.com (2603:10b6:208:120::18) 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: e7cf413b-3a8d-4768-5fb4-08da0dc35f3d X-MS-TrafficTypeDiagnostic: AM6PR03MB4664: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: FX3EdF4BvZD7k1FF6em12M0OjIuCI2Dd4nzC6bahWTphTi8jjQmCtOcApZ4Mctr82KLkegRj3AyWTK0LZy+oZ6ACJTCQWexT2zIQzijc+vnFGZLiKPZ5+xReTu7uhBRDk+eFkeU2zPDmBurLdqccIYf88F/ERFFRHDZ/P3xIJsTbmb4ZVocj0wnByGDB+YgwjMwMfypGwfc3XOpEzmwTOkzUyCVulGZ520OT1dJJSX/76RONts2/ewCv4u359Oes9MGl8fxXof5bTTqPEAU3AlI61vT4jCe9waKD71/rcQEooMDkfAuBj/QG6VYBffc7fXSzDlGyEIr2GrfSwCPdnI3D5/S7Z+Twly97HzqfVUjV85/rxGLD4vXBW3uGtAx9BsajLhB+46hEAQGq/GZ42JQI5okO52a6dQ4lQ1UqZSEBIZcY8Km9sQx49t0ee/DCuHUoAOy13bjkMlUApH4LlAq8VRfrnq3Lj0r6cpgBmDHkcGJrmudKYfA8J4hzAZQkCcfmtMckQuhLCRQb3EtQX4Cg9ioDhr6Rm9j8OeHY3duTyY88OTXG0k697qRZcoDDUyW7y9+12Pn030QAivTugyyspYpjokPaiMuEo92D8Rl8lnNQXch4Ys0zxm10S1fC1R+txcxjCDh8B6UR8S2RDCb3qDdTYBufN7TnwwuSiEk2v6y6DUnwMIs7kgmk5SiorFaxje4GOSYVN3FjjCk2BA== 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)(4326008)(8676002)(6486002)(66476007)(66946007)(508600001)(66556008)(38350700002)(86362001)(26005)(110136005)(316002)(54906003)(1076003)(186003)(2616005)(6666004)(6506007)(52116002)(6512007)(38100700002)(83380400001)(36756003)(8936002)(5660300002)(44832011)(2906002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: k0NWtUkhzt/gZerQCIqkLzYbKFjdnPAARIrmGjVStfsA1A+S/E1ngWlivZPPZJQq6TSbr1M7EcRCb4nUoCwO3qnH+IySKt019wtCh8Px9G6ZbwQsZQz8/PE3M0+RARMC5crEXCub2A1OscdPutF7q/X3Bti2OAd2EcdC075u4bxsGMXa0QpaQJT5OMU2F7mRU4ajM8zW9ndXJLJ7OII4da9y2o/7GaMMumbIOdrrymWcMqY+blClbxAjCsLdK01my89geW4W4iY5nI8HsGmnbuoflOwrJ2HOjtxLOlqlZ4Px457dOUihwSuL4stI5+PA2SaxIOHmNZEfhNl5SDBYStEwQaqMhrqRcz5/d7hc67YZQ2CjUWHE6kS5NpR2a6TcJMT8et1BF6IV2rgatGrDmi85zNq8RZiFi96GUX0MvEmSQtBLZGFdn97aoSbjBG+o/EyCldnDXtcXzDS8+VKJxsPkwiOsA57KFU9EUzjL5zJTuiIsIKXPYzRhU1khwZisUZkWWoTSkFVjjzlo7vc8T70VtYp4Tq57U3I0/fjjZWF3p9P7pdHfrv7RuNqsla1KA6ANxb8pssq0FT29MdYnOUduLS7663eL/gOQHgEssRLBttI/M9To3hf4qPypZc22YIZhJyvqTfmDCg44B58TpwNKXQ5XELNWj3zF4uElZDbaPOA2PMRRdGB1hMfGL2bfNIj9mp7KICoZg3tJlJHY+one2u+7MITw2ruogouRz3YVj64K0mlXk8WBnx618y9f61VdSuM0WO2MXkXycL056i91oLRx9oK/3mA2ueefQSjFz2fk5QS9EykxKs5xEz7d5bf/FEA+OPwEQmPixzqXZwM5NAKiEJIzDnYmDTk4TlQPsyQdwdQfH5tOyIzfCFbFH1OkgJ/36y6hGb/DR9LtiHSdoS5WK+J6W9WxEDILwtRlG3uijDqr6/3xbdG3kUdBVKpswQ1nb++K+UlCDAfgV6WKDZaVHtrH3Q0E876j2BDS8MZ2srou3KDDOGlk7QxA9aBTmm29LQPFjtYU973RCUtT0vjWAdL0BieZZtUE3iIQp3df7u+v7BTsaHNlmrAZ/FGMY0MqJAb+5lvPQmxuZ1BTf15gD8W7p6XtbjCIlT+S5dfJzJsEHjbV1x842X1dtXM/4gMcbT7qz28hB5ScfU7r66pUe1i3FOnsff9qBgdown1PGqFRuC8BCIWE09pABFeQbKK5aam8uhk9UtGLW6gR6izJpKVXnBdR/rrc0/kS0eLUuKJaCMooMFokjU56Pi1gxCoOsRwyEfVM2ZxIHv0q7ykOk8lRtaywdSxHUjg/yPZE/XTTzGrOnoSupoI3ZY8kZzw5R5WIpEUAgkKwt4Xr7NCCZ0AlPYNwEyYDwcOxvlz9Bank1BaMy6SSNtqac5MCNo3jzujV6pd24xUgoBCx4nNmbK7ThCG7e+ZGJgzRubYwmTdbmd5ss4bN1rmRVkVbxDdjcDm9bs9YfUWyIA== X-OriginatorOrg: seco.com X-MS-Exchange-CrossTenant-Network-Message-Id: e7cf413b-3a8d-4768-5fb4-08da0dc35f3d X-MS-Exchange-CrossTenant-AuthSource: DB7PR03MB4972.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Mar 2022 18:23:19.6487 (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: Q3cQVqBXMClE0wXWnasGaIsXjWFTuHwJGp2mYUYc//K99qC+XBgUAGZd6ti+zOX5webXAcVckyfcFpzIautihA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR03MB4664 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 Several different firmware users have repetitive code to extract the firmware data from a FIT. Add some helper functions to reduce the amount of repetition. fit_conf_get_prop_node (eventually) calls fdt_check_node_offset_, so we can avoid an explicit if. In general, this version avoids printing on error because the callers are typically library functions, and because the FIT code generally has (debug) prints of its own. One difference in these helpers is that they use fit_image_get_data_and_size instead of fit_image_get_data, as the former handles external data correctly. Signed-off-by: Sean Anderson --- arch/arm/cpu/armv8/sec_firmware.c | 39 ++--------------------------- boot/image-fit.c | 37 +++++++++++++++++++++++++++ cmd/fpga.c | 24 +++++------------- drivers/net/fsl-mc/mc.c | 30 +++------------------- drivers/net/pfe_eth/pfe_firmware.c | 40 +----------------------------- include/image.h | 4 +++ 6 files changed, 53 insertions(+), 121 deletions(-) diff --git a/arch/arm/cpu/armv8/sec_firmware.c b/arch/arm/cpu/armv8/sec_firmware.c index 41525a10d5..879eb6ec81 100644 --- a/arch/arm/cpu/armv8/sec_firmware.c +++ b/arch/arm/cpu/armv8/sec_firmware.c @@ -42,43 +42,8 @@ phys_addr_t sec_firmware_addr; static int sec_firmware_get_data(const void *sec_firmware_img, const void **data, size_t *size) { - int conf_node_off, fw_node_off; - char *desc; - int ret; - - conf_node_off = fit_conf_get_node(sec_firmware_img, NULL); - if (conf_node_off < 0) { - puts("SEC Firmware: no config\n"); - return -ENOENT; - } - - fw_node_off = fit_conf_get_prop_node(sec_firmware_img, conf_node_off, - SEC_FIRMWARE_FIT_IMAGE); - if (fw_node_off < 0) { - printf("SEC Firmware: No '%s' in config\n", - SEC_FIRMWARE_FIT_IMAGE); - return -ENOLINK; - } - - /* Verify secure firmware image */ - if (!(fit_image_verify(sec_firmware_img, fw_node_off))) { - printf("SEC Firmware: Bad firmware image (bad CRC)\n"); - return -EINVAL; - } - - if (fit_image_get_data(sec_firmware_img, fw_node_off, data, size)) { - printf("SEC Firmware: Can't get %s subimage data/size", - SEC_FIRMWARE_FIT_IMAGE); - return -ENOENT; - } - - ret = fit_get_desc(sec_firmware_img, fw_node_off, &desc); - if (ret) - printf("SEC Firmware: Can't get description\n"); - else - printf("%s\n", desc); - - return ret; + return fit_get_data_conf_prop(sec_firmware_img, SEC_FIRMWARE_FIT_IMAGE, + data, size); } /* diff --git a/boot/image-fit.c b/boot/image-fit.c index 6610035d0a..b87378cbf6 100644 --- a/boot/image-fit.c +++ b/boot/image-fit.c @@ -1919,6 +1919,43 @@ int fit_conf_get_prop_node(const void *fit, int noffset, return fit_conf_get_prop_node_index(fit, noffset, prop_name, 0); } +static int fit_get_data_tail(const void *fit, int noffset, + const void **data, size_t *size) +{ + char *desc; + + if (noffset < 0) + return noffset; + + if (!fit_image_verify(fit, noffset)) + return -EINVAL; + + if (fit_image_get_data_and_size(fit, noffset, data, size)) + return -ENOENT; + + if (!fit_get_desc(fit, noffset, &desc)) + printf("%s\n", desc); + + return 0; +} + +int fit_get_data_node(const void *fit, const char *image_uname, + const void **data, size_t *size) +{ + int noffset = fit_image_get_node(fit, image_uname); + + return fit_get_data_tail(fit, noffset, data, size); +} + +int fit_get_data_conf_prop(const void *fit, const char *prop_name, + const void **data, size_t *size) +{ + int noffset = fit_conf_get_node(fit, NULL); + + noffset = fit_conf_get_prop_node(fit, noffset, prop_name); + return fit_get_data_tail(fit, noffset, data, size); +} + static int fit_image_select(const void *fit, int rd_noffset, int verify) { fit_image_print(fit, rd_noffset, " "); diff --git a/cmd/fpga.c b/cmd/fpga.c index 3fdd0b35e8..1102a84d76 100644 --- a/cmd/fpga.c +++ b/cmd/fpga.c @@ -322,7 +322,7 @@ static int do_fpga_loadmk(struct cmd_tbl *cmdtp, int flag, int argc, case IMAGE_FORMAT_FIT: { const void *fit_hdr = (const void *)fpga_data; - int noffset; + int err; const void *fit_data; if (!fit_uname) { @@ -335,23 +335,11 @@ static int do_fpga_loadmk(struct cmd_tbl *cmdtp, int flag, int argc, return CMD_RET_FAILURE; } - /* get fpga component image node offset */ - noffset = fit_image_get_node(fit_hdr, fit_uname); - if (noffset < 0) { - printf("Can't find '%s' FIT subimage\n", fit_uname); - return CMD_RET_FAILURE; - } - - /* verify integrity */ - if (!fit_image_verify(fit_hdr, noffset)) { - puts("Bad Data Hash\n"); - return CMD_RET_FAILURE; - } - - /* get fpga subimage/external data address and length */ - if (fit_image_get_data_and_size(fit_hdr, noffset, - &fit_data, &data_size)) { - puts("Fpga subimage data not found\n"); + err = fit_get_data_node(fit_hdr, fit_uname, &fit_data, + &data_size); + if (err) { + printf("Could not load '%s' subimage (err %d)\n", + fit_uname, err); return CMD_RET_FAILURE; } diff --git a/drivers/net/fsl-mc/mc.c b/drivers/net/fsl-mc/mc.c index bc1c31d467..68833f9ddd 100644 --- a/drivers/net/fsl-mc/mc.c +++ b/drivers/net/fsl-mc/mc.c @@ -137,13 +137,7 @@ int parse_mc_firmware_fit_image(u64 mc_fw_addr, size_t *raw_image_size) { int format; - void *fit_hdr; - int node_offset; - const void *data; - size_t size; - const char *uname = "firmware"; - - fit_hdr = (void *)mc_fw_addr; + void *fit_hdr = (void *)mc_fw_addr; /* Check if Image is in FIT format */ format = genimg_get_format(fit_hdr); @@ -158,26 +152,8 @@ int parse_mc_firmware_fit_image(u64 mc_fw_addr, return -EINVAL; } - node_offset = fit_image_get_node(fit_hdr, uname); - - if (node_offset < 0) { - printf("fsl-mc: ERR: Bad firmware image (missing subimage)\n"); - return -ENOENT; - } - - /* Verify MC firmware image */ - if (!(fit_image_verify(fit_hdr, node_offset))) { - printf("fsl-mc: ERR: Bad firmware image (bad CRC)\n"); - return -EINVAL; - } - - /* Get address and size of raw image */ - fit_image_get_data(fit_hdr, node_offset, &data, &size); - - *raw_image_addr = data; - *raw_image_size = size; - - return 0; + return fit_get_data_node(fit_hdr, "firmware", raw_image_addr, + raw_image_size); } #endif diff --git a/drivers/net/pfe_eth/pfe_firmware.c b/drivers/net/pfe_eth/pfe_firmware.c index 6669048181..adaa139219 100644 --- a/drivers/net/pfe_eth/pfe_firmware.c +++ b/drivers/net/pfe_eth/pfe_firmware.c @@ -104,45 +104,7 @@ err: static int pfe_get_fw(const void **data, size_t *size, char *fw_name) { - int conf_node_off, fw_node_off; - char *conf_node_name = NULL; - char *desc; - int ret = 0; - - conf_node_name = PFE_FIRMWARE_FIT_CNF_NAME; - - conf_node_off = fit_conf_get_node(pfe_fit_addr, conf_node_name); - if (conf_node_off < 0) { - printf("PFE Firmware: %s: no such config\n", conf_node_name); - return -ENOENT; - } - - fw_node_off = fit_conf_get_prop_node(pfe_fit_addr, conf_node_off, - fw_name); - if (fw_node_off < 0) { - printf("PFE Firmware: No '%s' in config\n", - fw_name); - return -ENOLINK; - } - - if (!(fit_image_verify(pfe_fit_addr, fw_node_off))) { - printf("PFE Firmware: Bad firmware image (bad CRC)\n"); - return -EINVAL; - } - - if (fit_image_get_data(pfe_fit_addr, fw_node_off, data, size)) { - printf("PFE Firmware: Can't get %s subimage data/size", - fw_name); - return -ENOENT; - } - - ret = fit_get_desc(pfe_fit_addr, fw_node_off, &desc); - if (ret) - printf("PFE Firmware: Can't get description\n"); - else - printf("%s\n", desc); - - return ret; + return fit_get_data_conf_prop(pfe_fit_addr, fw_name, data, size); } /* diff --git a/include/image.h b/include/image.h index 97e5f2eb24..ae1f015896 100644 --- a/include/image.h +++ b/include/image.h @@ -1010,6 +1010,10 @@ int fit_image_get_data_size_unciphered(const void *fit, int noffset, size_t *data_size); int fit_image_get_data_and_size(const void *fit, int noffset, const void **data, size_t *size); +int fit_get_data_node(const void *fit, const char *image_uname, + const void **data, size_t *size); +int fit_get_data_conf_prop(const void *fit, const char *prop_name, + const void **data, size_t *size); int fit_image_hash_get_algo(const void *fit, int noffset, const char **algo); int fit_image_hash_get_value(const void *fit, int noffset, uint8_t **value, From patchwork Thu Mar 24 18:23:02 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Anderson X-Patchwork-Id: 1609169 X-Patchwork-Delegate: rfried.dev@gmail.com 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=NWCBdEMx; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (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 bilbo.ozlabs.org (Postfix) with ESMTPS id 4KPYX06fDVz9s5V for ; Fri, 25 Mar 2022 05:24:00 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 9B0A48410F; Thu, 24 Mar 2022 19:23:33 +0100 (CET) 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="NWCBdEMx"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id A30918410B; Thu, 24 Mar 2022 19:23:25 +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=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04on060d.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe0c::60d]) (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 992E084021 for ; Thu, 24 Mar 2022 19:23:22 +0100 (CET) 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=GjxOZ0Nt+SzDKuSWZkwrzDm6SHq4tYOIkJnkIfgKS30DTF6t7/KOIEzA1hHKcpj6+m+xgcZO9Hxb/P9Fn/dOm9PZX6DE89vMxL7+0xuTfhMybauHsXukYAQPQ71bArndtt7xQWHoT6tlminbpoKkL6mO9247X8gCxb9Al5gGUnCh1cW5h1Vc/4Buh4BzKZDaodDsA9549urn1UHa/tYRWfGzhPjjB8SP+xXpH4ohdlnQl5KuVcNEL+CvTdupaznYbmewPNWDxdX1XmX5qiVzWPy3JS212KudhFDM7QS8OHltigxeUvk8RGTjsUv5btT7Xdi3PMDKpGLKO6sMgUkLAw== 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=KZN3BkQVw+1R9KgMg3E6jR+rlqm3zSt0kyByloO6rVY=; b=S2unPyFWzVornFuy221WdAxN9biRZVziEQWvX7kUMtkCqpkKxDZofeYEWP//kV9aZPmepUUzcpoYHZAbYVwovZIh4nnIOaZZZNerfnW1qbqWJQm823v3yCmwrDg2XOPsDV+82OMCe9K6ZA/KSrrZjKfh03F0Tjc6J5WmB9N+aHUOuIRqN4n3ht1c4xg8FMt9WtT/Nukm9QYcvv92N698tU5UetzweMILDuuMWLsBOYmkJPgBFPxee6ZtikTEmBactGmanM4On3urUTNMMpJCxpr+ATVZwHnZ+XL1KiwlRpq1YS/j58KZiw5miwVLM2CSJvcMKRjon73u63lYc3p+EQ== 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=KZN3BkQVw+1R9KgMg3E6jR+rlqm3zSt0kyByloO6rVY=; b=NWCBdEMxiSZbWnb8m7ZAJZe5OMvOd8ivvAosor/xk3RlbcCDvenTEVjxz/L4YBmAe9/qcZwFM1xW5ReiK/b/J6GMadr9uRWi/ep5tGVLI9WnO+BB6psOYDzzSOEm/i+Ftectl2bcx30sezNKoTL9fVpoZy3ourMEuhsuY3seqmszrWy766KqhyhZmEykzx3STTkDXBVGAV0zGfdNlj6kNuWYLlvJ0f5D2psrf394tiYZy5vKtd7+FumHQ2DkSNbchB5V33cHSgpuKLprrfaxs1tBRP4ND6fkNaJTy9ZsYD4GA37pB6mFrbMvwVXX6fwIZKpJhtiSAMuWZ0dSfQG/Eg== 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 AM6PR03MB4664.eurprd03.prod.outlook.com (2603:10a6:20b:12::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5102.17; Thu, 24 Mar 2022 18:23:21 +0000 Received: from DB7PR03MB4972.eurprd03.prod.outlook.com ([fe80::2414:8ad5:9fd6:3bff]) by DB7PR03MB4972.eurprd03.prod.outlook.com ([fe80::2414:8ad5:9fd6:3bff%5]) with mapi id 15.20.5102.018; Thu, 24 Mar 2022 18:23:21 +0000 From: Sean Anderson To: Joe Hershberger , Ramon Fried , u-boot@lists.denx.de Cc: Simon Glass , York Sun , Priyanka Jain , Sean Anderson , Michal Simek , Patrick Delaunay Subject: [PATCH 3/6] misc: fs_loader: Add function to get the chosen loader Date: Thu, 24 Mar 2022 14:23:02 -0400 Message-Id: <20220324182306.2037094-4-sean.anderson@seco.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220324182306.2037094-1-sean.anderson@seco.com> References: <20220324182306.2037094-1-sean.anderson@seco.com> X-ClientProxiedBy: MN2PR10CA0005.namprd10.prod.outlook.com (2603:10b6:208:120::18) 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: 36acc197-7efc-4d97-8b46-08da0dc36030 X-MS-TrafficTypeDiagnostic: AM6PR03MB4664: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: pAXcdnUqgGNAUsaroDswWFbKaqe5MV5hhnkQ0Ff8Yo3hxUOBULDScURdSbiiC1uT6zg52Nj3CS92WTAeiCsy+L/cXoFK7pL+jKQpxZf/gyLkrfgMsKVU5hd8YKK2FKm2oWDoKvzxjAXmg+Obw6c+5yogrMko4sQvu3uDm9zIcXWBQB34NfeKLLg41gd8qP9nOT39b7THx7sF61q2gDqRK5MQtDH/dGwWHMwCvZhvX38oaKIgtqouk6UAZCirE7ZhRkVMGDzvr76e8PKlltj5PgAukLn48apS9VzFpc6WDKR4IoZSCSx0GhHW4QHwLmL0LjYt5vlCfptzVEnISzQVg87no4DYkFYOJx60Xr6e/jH0NmL4mmIZwpu8EYu7UHWnzeImHiaJqBGzGNyTpieGpV5bBNbsA6S1dCraWGerMCvXd88UDnZvz79F+sf6/9PSpVLrbvUgH1BMlVJrfib/hrkyyjtVXvZfS0EzY1PfYl7xWRqfGWaWr98I3nd5ZRVt97Ev2At1n5a9q2QzhwBm4aICqlxhR5D7IdIJinf84yI/kQvemW6xitfmeytUY21VoSZN/6coAUAelqXsR33F8FaO3Y0gUsQH55d24Kr8nZbNLsu4iMLU11SPudRGvoGgf5M+SlDl/faBY9xV93qeealcrD1UhZQuAegqGy6jg+pVXr8HnjE//E2SsxaAW+H+QscN4x+tG6WDe2dLMI8U8/K22oDzr43UeaieS9R7y/w= 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)(4326008)(8676002)(6486002)(66476007)(66946007)(508600001)(66556008)(38350700002)(86362001)(26005)(110136005)(316002)(54906003)(1076003)(186003)(2616005)(6666004)(6506007)(52116002)(6512007)(38100700002)(83380400001)(36756003)(8936002)(5660300002)(44832011)(2906002)(15583001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: SxV7zrZTUOiTrvBChEdKh+RLkIrtxe+dCPVpK6/P65hJf3MePCwWkDRLmJmSmO5gE0b00EcFop/AVUeKxLyY9469OXfdzhyUtMI0Y/TGFa83ENuXlanIGZ3msIXLLUPTYFHda7J+3EkZObJu/w4+Nwv2D5Yx4MGVaVdDsqhTJM1pwzU1r08auIZfV6AwL+CNDUNWFSHMO6qcDaOJNlvbqNxjhvQqB2mJFR9tE3dyPsDrrZyEFdJF5qIWrFlUkFH3CkpQKDaAtS5cac13vEGgb36wfhJl/yDRq2tYRlHShfYr2tJfQYY3BOpl+OenZrJ4xd+bgzKIr7i/Ex/MKhRJjNb+0OOHYBzIGv4/tQacRYw0UIMYOXNPqXCoy+NTnMKz2/um8FzYmm0EUF7nP6VTsAjZ0gG2/Ttu9GRlRZxagkNzKN7FU2HKNBHY9s8EMTZz4/7L25RotHZkzlO90Mz3dyIM+jAiOb0WRMtV9SoIcnSDWZgNwbl1rF9buNYBC2DDol8VnjvRgmTDzZf+foZsP6aPBMIO422zmX8KR+iCSdeqfyD17cljRG9UqUDhGyA9VIBxZFOJBOEzRVA6sfOwNuKtfCfalJPbbLrLlmrYg4ybpLs2MOJGK5C7wmGDHk7XOIDfOM0eGlQ1uFR4xH7jyx2+VFerjoAeu7PvHYNKPwCeAzNrCW8VDIXKG1HVaGRCQtrx/m6nxxxiQ+mD8pqLHH2/KDGTzB8c3iXOoMPr46w54TCz6LAshD6yKwMoHRQ/l3IYO70BEgA55QWKPDKrqGOmnpE3U/Yg2u1Q7B99MAPTXav6xUTYubuWlgoWbxEeKY7S01lBq6777VBAFdcIu14OZ+9AYlrevMuBSSUsaNI5frvAK94wDZjtpSgKz+MM1aQQKp84hLmPxcKc6N/D6srPqjefmv4BBNSoBl/fPR6uQ8QNlhMOHcg+GhLoZrgGvDE6LwCTfR6YZSv9ZfafpINQkznxYU9ZnJTwH9YbKW5Bh3Mh+oQCKm85+satCTArs6jlWRh941GAAZq+CS+HKlM9XCMgyD8fOQzm5g35081JXOoRZLhAn2luHXD4gFrdDVyNaHsJfEYfJInhdh6DTA3okxqMJ99wZfln1DVXddAr9GSbo2pqWOOQmOLNPMLbnIFQmhsNkEaa/EBfqgMpwM2Ev4QTe+sYlNb3LZrDW5rXnTmi58IstlZOjQgLeR5uEH9sYoRH3n+PUlRu9AU5iakBLOBwQ57sMDrKm1EWMu0dYl8QzYSGv7RghhoJYsLHg25qOSopmYyvjiGbZzvjbS+D1xQoHzIcNhfM5NZcYSdlBjYSQH2FmGK8pBuW+qUAqypowmI2TAe7ZFzbQhAd0KfUM7eA5RU43KQ7RbWjlXwO6plfXD3rrtrKNLN1Q+PeuRCoxNreGOIqXRk/6zsw4gIEuB6BHKEnPIHScCZUzFgmdI37K1iQsW4CBc943MH+nM0rgVHHWZ3us8q4ylkaUw== X-OriginatorOrg: seco.com X-MS-Exchange-CrossTenant-Network-Message-Id: 36acc197-7efc-4d97-8b46-08da0dc36030 X-MS-Exchange-CrossTenant-AuthSource: DB7PR03MB4972.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Mar 2022 18:23:21.1486 (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: ihIv5MqL0ypIXU/QpnfpSbr6FiFniVV3HLqiCmstvWVg9pGeJAnuGvsPaVY5Qg1rODym6uhpqGmEe8MSgyCfEw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR03MB4664 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 The fs_loader device is used to pull in settings via the chosen node. However, there was no library function for this, so arria10 was doing it explicitly. This function subsumes that, and uses ofnode_get_chosen_node instead of navigating the device tree directly. Because fs_loader pulls its config from the environment by default, it's fine to create a device with nothing backing it at all. Doing this allows enabling CONFIG_FS_LOADER without needing to modify the device tree. Signed-off-by: Sean Anderson Reviewed-by: Simon Glass --- arch/arm/mach-k3/common.c | 2 +- arch/arm/mach-omap2/boot-common.c | 2 +- drivers/fpga/socfpga_arria10.c | 24 ++---------------------- drivers/misc/fs_loader.c | 27 +++++++++++++++++++++++++++ include/fs_loader.h | 12 ++++++++++++ 5 files changed, 43 insertions(+), 24 deletions(-) diff --git a/arch/arm/mach-k3/common.c b/arch/arm/mach-k3/common.c index b4b75f4e6c..ec236d5a2e 100644 --- a/arch/arm/mach-k3/common.c +++ b/arch/arm/mach-k3/common.c @@ -181,7 +181,7 @@ int load_firmware(char *name_fw, char *name_loadaddr, u32 *loadaddr) if (!*loadaddr) return 0; - if (!uclass_get_device(UCLASS_FS_FIRMWARE_LOADER, 0, &fsdev)) { + if (!get_fs_loader(&fsdev)) { size = request_firmware_into_buf(fsdev, name, (void *)*loadaddr, 0, 0); } diff --git a/arch/arm/mach-omap2/boot-common.c b/arch/arm/mach-omap2/boot-common.c index afc3585641..c82aadc7cc 100644 --- a/arch/arm/mach-omap2/boot-common.c +++ b/arch/arm/mach-omap2/boot-common.c @@ -212,7 +212,7 @@ int load_firmware(char *name_fw, u32 *loadaddr) if (!*loadaddr) return 0; - if (!uclass_get_device(UCLASS_FS_FIRMWARE_LOADER, 0, &fsdev)) { + if (!get_fs_loader(&fsdev)) { size = request_firmware_into_buf(fsdev, name_fw, (void *)*loadaddr, 0, 0); } diff --git a/drivers/fpga/socfpga_arria10.c b/drivers/fpga/socfpga_arria10.c index 798e3a3f90..65bebd8997 100644 --- a/drivers/fpga/socfpga_arria10.c +++ b/drivers/fpga/socfpga_arria10.c @@ -765,32 +765,12 @@ int socfpga_loadfs(fpga_fs_info *fpga_fsinfo, const void *buf, size_t bsize, u32 phandle; node = get_fpga_mgr_ofnode(ofnode_null()); - - if (ofnode_valid(node)) { - phandle_p = ofnode_get_property(node, "firmware-loader", &size); - if (!phandle_p) { - node = ofnode_path("/chosen"); - if (!ofnode_valid(node)) { - debug("FPGA: /chosen node was not found.\n"); - return -ENOENT; - } - - phandle_p = ofnode_get_property(node, "firmware-loader", - &size); - if (!phandle_p) { - debug("FPGA: firmware-loader property was not"); - debug(" found.\n"); - return -ENOENT; - } - } - } else { + if (!ofnode_valid(node)) { debug("FPGA: FPGA manager node was not found.\n"); return -ENOENT; } - phandle = fdt32_to_cpu(*phandle_p); - ret = uclass_get_device_by_phandle_id(UCLASS_FS_FIRMWARE_LOADER, - phandle, &dev); + ret = get_fs_loader(&dev); if (ret) return ret; diff --git a/drivers/misc/fs_loader.c b/drivers/misc/fs_loader.c index 0139bd66ba..0018c930ec 100644 --- a/drivers/misc/fs_loader.c +++ b/drivers/misc/fs_loader.c @@ -15,6 +15,8 @@ #include #include #include +#include +#include #include #include #include @@ -293,6 +295,31 @@ U_BOOT_DRIVER(fs_loader) = { .priv_auto = sizeof(struct firmware), }; +static struct device_plat default_plat = { 0 }; + +int get_fs_loader(struct udevice **dev) +{ + int ret; + ofnode node = ofnode_get_chosen_node("firmware-loader"); + + if (ofnode_valid(node)) + return uclass_get_device_by_ofnode(UCLASS_FS_FIRMWARE_LOADER, + node, dev); + + /* Try the first device if none was chosen */ + ret = uclass_first_device_err(UCLASS_FS_FIRMWARE_LOADER, dev); + if (ret != -ENODEV) + return ret; + + /* Just create a new device */ + ret = device_bind(dm_root(), DM_DRIVER_GET(fs_loader), "default-loader", + &default_plat, ofnode_null(), dev); + if (ret) + return ret; + + return device_probe(*dev); +} + UCLASS_DRIVER(fs_loader) = { .id = UCLASS_FS_FIRMWARE_LOADER, .name = "fs-loader", diff --git a/include/fs_loader.h b/include/fs_loader.h index 8de7cb18dc..5eb5b7ab4a 100644 --- a/include/fs_loader.h +++ b/include/fs_loader.h @@ -52,4 +52,16 @@ struct device_plat { int request_firmware_into_buf(struct udevice *dev, const char *name, void *buf, size_t size, u32 offset); + +/** + * get_fs_loader() - Get the chosen filesystem loader + * @dev: Where to store the device + * + * This gets a filesystem loader device based on the value of + * /chosen/firmware-loader. If no such property exists, it returns a + * firmware loader which is configured by environmental variables. + * + * Return: 0 on success, negative value on error + */ +int get_fs_loader(struct udevice **dev); #endif From patchwork Thu Mar 24 18:23:03 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Anderson X-Patchwork-Id: 1609171 X-Patchwork-Delegate: rfried.dev@gmail.com 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=057ZSMk4; 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 4KPYXD32W1z9s5V for ; Fri, 25 Mar 2022 05:24:12 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 4C22784118; Thu, 24 Mar 2022 19:23:36 +0100 (CET) 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="057ZSMk4"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 69F6384021; Thu, 24 Mar 2022 19:23:26 +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=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04on0626.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe0c::626]) (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 95F91840A1 for ; Thu, 24 Mar 2022 19:23:23 +0100 (CET) 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=DUGdqZE1SZdtV/3odkWbb6UUvbtMIzr4Q5rzzccLTug0f3pJbzObQkMPkfrm/xV1ptTthNAqR2KQHv0DHZJ2Ab9WL98DJZtGLXLokMVf1S3WtCiBtyg/xOIt+rRnlojj9pSkJw71scMJKbd1qrPGG5uyPVZX9hU48UR1AA2wXMC8oCOYPfY8fNnL2KTdtoeA9K2ki8jEzTkvMXzIQEpYhiUxbHzGfGQx3rqg/EOaOqTpf7KLUUXGGCuFhiAzp9sBsTPr+qXrgbjYCOCJVUMDkm0rZ34SwuMzrk26PHQ1dt8Lthk9JGxL7L1mPM8U5322xxUgGutR/QcLf9xMcTdI3A== 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=dZSXxNHlY2NQxHvo7rfSjQRWp3h0RWNsTxzKtG6JWhA=; b=NmoHZVb07XUX3MMC9EkndYgwYKpr/N0OJr67g+mCxAjr7grzuzr7m4GfAhHc6EznoRCRDYX8b93sgPKOqc1cmqehUu+d06vCk5shrBxAOqvqisAkaG0/sYB4Z39Fs+0yQRvAfsJAexpfZ7J/7pZ80jmVOCEC5YxQVuqNH73V/lX8FFExynKK5wexXd3LXECmOoe2KBe32pr0QAuV0s71yjgK3Ge6CiRDKjlrlRLtOnyjmy9ccBlHziUOnYuPAGPX4D2vVreUmDoJKQkwLfnZQAP0HMsihQUPB/ApkEdE9i1S5Fpjng/uJWNot5mp+QQqg6l3XJoQ6xsYGt5cdcR44g== 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=dZSXxNHlY2NQxHvo7rfSjQRWp3h0RWNsTxzKtG6JWhA=; b=057ZSMk4rIAn/R4hpxbwRt4zhDxScqYXRe3xI7C/kPNK58SCj6pJ29m3Wmm2Rlq0SNvT65YRH2BYz4CBJRVX8GSfl3zGI2r/yts5INGK208Gs52WNiSo4ypF1C3QMazpE+xYnGtNNnGyYrN/LkuR08Klsr4pCdQ0q/cti0K+KLwPGeWDSdY5XP3K3olo1SlAf0Aq++cY9DXET8Vi01XmhcGowruKc+oRqa02g8Kv+g/RGZSLDLojOVY0vgRoDFx94t1p9uQLM8Ll/ftrKJnlY+BOE2L52m5Xv7oLnONjPLQy0IUpJeN/tIBGhxC76lwkuDrW6WuJBsrcr7KblrcP6w== 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 AM6PR03MB4664.eurprd03.prod.outlook.com (2603:10a6:20b:12::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5102.17; Thu, 24 Mar 2022 18:23:22 +0000 Received: from DB7PR03MB4972.eurprd03.prod.outlook.com ([fe80::2414:8ad5:9fd6:3bff]) by DB7PR03MB4972.eurprd03.prod.outlook.com ([fe80::2414:8ad5:9fd6:3bff%5]) with mapi id 15.20.5102.018; Thu, 24 Mar 2022 18:23:22 +0000 From: Sean Anderson To: Joe Hershberger , Ramon Fried , u-boot@lists.denx.de Cc: Simon Glass , York Sun , Priyanka Jain , Sean Anderson Subject: [PATCH 4/6] net: fm: Add firmware name parameter Date: Thu, 24 Mar 2022 14:23:03 -0400 Message-Id: <20220324182306.2037094-5-sean.anderson@seco.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220324182306.2037094-1-sean.anderson@seco.com> References: <20220324182306.2037094-1-sean.anderson@seco.com> X-ClientProxiedBy: MN2PR10CA0005.namprd10.prod.outlook.com (2603:10b6:208:120::18) 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: d1a3440f-2849-4bbc-56a6-08da0dc36102 X-MS-TrafficTypeDiagnostic: AM6PR03MB4664: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: Gdj3NTco59OY2m0tAu9p7O3o0HlT7ncfAOcTLTuwdQCr6Bl9DCRi57456dsor0LqOIFJXJ4D6jk0FW0RQME9IsKYQDKrwJ8Ffn3HVn+zwZFDWdkbsA86oGgmF8WorP9tVcPGQMyKaHpVnQCbcA3+aWscYixtkPQPuH8NbtX52u1xCnYVnZOZhab4i+nLuO3XeuhnP1czvaz76PHcVGzg1akC+V41vbHSyojAqqdfXO8tGhGLj9xS2JSvNjZbh6XiGCOntAjh/TDqK771/2zuyp3dn5Opthef2CMizcS1kE5SlxS5UqWAQaGv56InJaIMZP/1NiuKbUMuTFZpdtzUVjtpZI+c5tooeovCbz/4ODYI1h50DDtV4tGCJ7NnasTEszlMIeqaBuGg7/Wx0d7Dw91QKFQMe4zAM7MgWp80a+6/UNR/3vbfbIgNTjfN1eeNJxFTpVFw4esULCNGlxL8azz1ihbrcoPUNDDeGZqhwC535tzlPsz60hEdTH1EZMjr2uDcCtEF9zHQiSW7Dx54GT6f5PX2zETC7yotDi+8xzdUTjtSpdbmNJwXnXgsicRC8kzvpZ/zqINT1wh/wfuufswjtDfJPdViY2co25+99wpra9yIy8ZxZuPLnqJULaUSPlTVZKXw5HJW/HvazQ5EgZm7KZlHZ1swnLBXitL1kIoCXiN34k0iCLZJDKFUuLOuJXsmpHF7ZL6v0EEwc/F/XA== 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)(4326008)(8676002)(6486002)(66476007)(66946007)(508600001)(66556008)(38350700002)(86362001)(26005)(110136005)(316002)(54906003)(1076003)(186003)(2616005)(6666004)(6506007)(52116002)(6512007)(38100700002)(83380400001)(36756003)(8936002)(5660300002)(44832011)(2906002)(107886003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: nZSob73arcJgS+bNL7BdGPjrvClRTwR8JqSgr89f0OKDwxh+6f/4ktAAypZSsz+LDwLlfbZBIGu9O1qjgtLICnbI9S/k86Ks++vCNZTAMW1Vp50u74m93yJAzDTzYzsejDuE7IcrSZxlsfnkFjbUHcbazRWsRFCAzlRwGeDSE7Mr8+kXBmbod/Aye24p4CRmO7+jTvyj7zQ9NtsGDcUIjhkrPey6I4WQJ0Qz1MiGgWn+yTux4P5wnWKYgivup3KK4emNJzPddKs0Bdqb3bkS2MPqARjdyS2SD6jKhnlmN8RhsK+L0uXBUu7o3qA2JQMb88L044LVPieCwlRf8dSp2jiD7S4u7ppUfHR5JtXDIzgBSof9Gz/p0EK4GRBsoKttt7Pb2SQe3GxZjs2G4CpikokqEcEIxVo+2rJqTgv44WYmnZz6zFt0OY7O2OnX63oYhryFQLn0yD30Ps7bhoB71I0UwAoDENhFUfl18H7+WlEF6CLDzftgiHWp5XAtNnxl1tR8lWIc3t9tPXU9aGtXNuA0Cy2mGVtVjZkMjoN+HLu2XlmNPfHH/F0Yp9Ui3+pCNrCXpJ1AJ2tvLmK3ysFn2laUJfeEO1Xiu8I4TqcBD7ALjbkUYjk1WPrIv8Wl3+pgAuvw6OM3i2y00cksZe9/3omJAi3M/MrZJ/8+FmTld/oiT2E7Lw6WjRqKgVI6SCaWr5yU6I3DHklkXMgETxNkOMdQXCiMk5qK7ZbltqMwT18mG92D3KR6/PtfFzOnLRVDEbKU5r0Mpf78jU6mOyBZU6FwUYXCUX1n12jAJ4q1v5AM/BRLjJaaeJEKmfHB4SN6UPMUtuHOeTtzGO8V4c7DSN6FXydGgIMTbdn5nQmtRd9EJvFDmSoqdJ/RvKHEECYmxPvDomCrccA09OMuYOcKXrkVYv+8rP1NugSZq6/Ii/ZKk9XSiLZMh6G5x11rzdFDA0QwHSzWNOBRfU1pfWgCPNs09UU3YKDnLWixbV2NHux7TXb1e/NeAHTajQz3Qyob8W75HuRLE6CMzTpnTGhHydJrIYX2j1b21WAI24AzAlMhPLXWwANPeyfnBj/aP3M7LQikGt1Iojv+bAVlOQrJ1FJMcqEytIdm550P6EcFScndS0au4NIeNeXdP7HrsNh5jKC/mdon6Dar9H5ArSLVoTeJcffyIUJuJvk6iCo431omHCErbcALDdjgzH2F9HeAYlNIyVYMdtoAS4DUXiv5m+cx0FsTOQuwtf3924ipgBjBSNsWlBlDsWdogwPqKzWFtM8IF5GgEKOaCyg+YXYlrJNS9QMQucMfMy3QNERwFnyeA5sJ+0pHNIQ70ABVK2nKmhEonEwLhZEUF9PE6ypw5O2Nj4FlAx32jQpwYI3MWotliml1indaWHklQydgOVdw8MoSh5zHsfLIa8xV8fj2BGo10+huuspCcPJAFGBVbKZgfBiKoBg3sax3UChBo9Z/Tkkytbi8ghTFlsi4NiRCIQ== X-OriginatorOrg: seco.com X-MS-Exchange-CrossTenant-Network-Message-Id: d1a3440f-2849-4bbc-56a6-08da0dc36102 X-MS-Exchange-CrossTenant-AuthSource: DB7PR03MB4972.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Mar 2022 18:23:22.5079 (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: 97OnQLvGVNASxAXp2LHZfY4+7a4pFZae9/2DYKDKaIZj8SRJnonFL7Y+3E/NVqrO9Oma8COwiNrCfKFxyz/6tg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR03MB4664 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 In order to read the firmware from the filesystem, we need a file name. Read the firmware name from the device tree, using the firmware-name property. This property is commonly used in Linux to determine the correct name to use (and can be seen in several device trees in U-Boot). Signed-off-by: Sean Anderson --- drivers/net/fm/fm.c | 15 ++++++++++++--- drivers/net/fm/fm.h | 2 +- drivers/net/fm/init.c | 4 ++-- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/drivers/net/fm/fm.c b/drivers/net/fm/fm.c index f825612640..aa0cc69232 100644 --- a/drivers/net/fm/fm.c +++ b/drivers/net/fm/fm.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #ifdef CONFIG_DM_ETH @@ -354,7 +355,7 @@ static void fm_init_qmi(struct fm_qmi_common *qmi) /* Init common part of FM, index is fm num# like fm as above */ #ifdef CONFIG_TFABOOT -int fm_init_common(int index, struct ccsr_fman *reg) +int fm_init_common(int index, struct ccsr_fman *reg, const char *firmware_name) { int rc; void *addr = NULL; @@ -449,7 +450,7 @@ int fm_init_common(int index, struct ccsr_fman *reg) return fm_init_bmi(index, ®->fm_bmi_common); } #else -int fm_init_common(int index, struct ccsr_fman *reg) +int fm_init_common(int index, struct ccsr_fman *reg, const char *firmware_name) { int rc; #if defined(CONFIG_SYS_QE_FMAN_FW_IN_NOR) @@ -546,6 +547,8 @@ static const struct udevice_id fman_ids[] = { static int fman_probe(struct udevice *dev) { + const char *firmware_name = NULL; + int ret; struct fman_priv *priv = dev_get_priv(dev); priv->reg = (struct ccsr_fman *)(uintptr_t)dev_read_addr(dev); @@ -555,7 +558,13 @@ static int fman_probe(struct udevice *dev) return -EINVAL; } - return fm_init_common(priv->fman_id, priv->reg); + ret = dev_read_string_index(dev, "firmware-name", 0, &firmware_name); + if (ret && ret != -EINVAL) { + dev_dbg(dev, "Could not read firmware-name\n"); + return ret; + } + + return fm_init_common(priv->fman_id, priv->reg, firmware_name); } static int fman_remove(struct udevice *dev) diff --git a/drivers/net/fm/fm.h b/drivers/net/fm/fm.h index 2379b3a11c..32de5cf2b6 100644 --- a/drivers/net/fm/fm.h +++ b/drivers/net/fm/fm.h @@ -108,7 +108,7 @@ struct fm_port_global_pram { void *fm_muram_alloc(int fm_idx, size_t size, ulong align); void *fm_muram_base(int fm_idx); -int fm_init_common(int index, struct ccsr_fman *reg); +int fm_init_common(int index, struct ccsr_fman *reg, const char *firmware_name); int fm_eth_initialize(struct ccsr_fman *reg, struct fm_eth_info *info); phy_interface_t fman_port_enet_if(enum fm_port port); void fman_disable_port(enum fm_port port); diff --git a/drivers/net/fm/init.c b/drivers/net/fm/init.c index 2fed64205c..a9a20931a1 100644 --- a/drivers/net/fm/init.c +++ b/drivers/net/fm/init.c @@ -93,7 +93,7 @@ int fm_standard_init(struct bd_info *bis) struct ccsr_fman *reg; reg = (void *)CONFIG_SYS_FSL_FM1_ADDR; - if (fm_init_common(0, reg)) + if (fm_init_common(0, reg, NULL)) return 0; for (i = 0; i < ARRAY_SIZE(fm_info); i++) { @@ -103,7 +103,7 @@ int fm_standard_init(struct bd_info *bis) #if (CONFIG_SYS_NUM_FMAN == 2) reg = (void *)CONFIG_SYS_FSL_FM2_ADDR; - if (fm_init_common(1, reg)) + if (fm_init_common(1, reg, NULL)) return 0; for (i = 0; i < ARRAY_SIZE(fm_info); i++) { From patchwork Thu Mar 24 18:23:04 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Anderson X-Patchwork-Id: 1609172 X-Patchwork-Delegate: rfried.dev@gmail.com 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=ej/sRjBM; 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)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4KPYXQ0W6Jz9s5V for ; Fri, 25 Mar 2022 05:24:22 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 3C1A18411E; Thu, 24 Mar 2022 19:23:38 +0100 (CET) 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="ej/sRjBM"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id D989284021; Thu, 24 Mar 2022 19:23:27 +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=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2060c.outbound.protection.outlook.com [IPv6:2a01:111:f400:7e1b::60c]) (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 3A68F840FB for ; Thu, 24 Mar 2022 19:23:25 +0100 (CET) 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=ByJQoPoub6redHrLUnPIR96EF6Na28xZp57mEDHNPNkk4Rwvq1beDwbSRZv+CaybFg7npCABdgSVbQdSLDP3XAm9E5YilQxJvqhoBejIRKpb5lySNNpFWUiAO6dDTbTMwkUbaezIjx4I98tWOYMg6W6hg/AUnPPAJdKfSKw27GkHOkoLUyn4PTmFrzYiiXordjGbT8oDRVCTsGhrUZfoeFewzg5s04WPc13yA2VpWt6/fpvzzYAvHoG4s9to/NlvJC7Mt6HlBrky2L135MnNTFiSx38FWM8rhRuvu3gsGygGAuxbboHOFOdBD05xn9wPKmY2w1YTG9G+aFesVcTJuQ== 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=CZeoyTqn9+mjJ+YBzshvniYyo/HmJrrMpp6IhRTsTyE=; b=jySMPQlWp0/6f8jAKowQnr/KsqnQdUM5aYjqo9SXS/H6fJhb+nmbB7ymFqaexxjrUH0fD+fsYGpcl+cz0N8nfKHTpnp1zJzxQTaawUNxUDbE198G4A7tvKiRGrGm/EnMApdJVMlX1FlfhDo1yj/sKEu7VzS6TEloMoHoxjne1lRcqo3ECkrmiaWLlrGUMMEAa4YDrcSsGItcGPm6j0T0RTt+sXaXqN6ImvN67Fa6oS+Q8xC9OkKmhSV2SLCvfafwUhr85WfysobWv+uj89t1ICIJxpZ2s+5bmTHmP9v0HFMVQvXum9ZlvQm8sWUuKml8sBVqRrjFDNDYpmmLEpMj0w== 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=CZeoyTqn9+mjJ+YBzshvniYyo/HmJrrMpp6IhRTsTyE=; b=ej/sRjBMHDXyRrcl5zUIEze9n0kNGFX4fITt2DNyWZalfHo14lDUhD69dJFdDc1DggAY2cY5kuCsZmjkfvlqj4NvQcxDzndQ7Hw0Hyb4j3KX+h1wdbAW2keyuC5pK+YO5hgicoEWY2ivD0cX/VekUW2t255vW2VkpS98uVToPAjhbNEt/L1zB+Xo8b2TvBD1RtPY2rhjl2ab+CEWdOZ9k1hcPhPJQ/QPhf+5ueLpEconuWO78dXTiXgDVpgBAPpt748KCM48EFOJLKs19+JJGhTkfVaTjP+fo1Aw9xYjmSmVwvwAxTqO2hYTr/Ae5YmwhCLdnQm5sKczlE5o4Cv8gQ== 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 AM6PR03MB4664.eurprd03.prod.outlook.com (2603:10a6:20b:12::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5102.17; Thu, 24 Mar 2022 18:23:23 +0000 Received: from DB7PR03MB4972.eurprd03.prod.outlook.com ([fe80::2414:8ad5:9fd6:3bff]) by DB7PR03MB4972.eurprd03.prod.outlook.com ([fe80::2414:8ad5:9fd6:3bff%5]) with mapi id 15.20.5102.018; Thu, 24 Mar 2022 18:23:23 +0000 From: Sean Anderson To: Joe Hershberger , Ramon Fried , u-boot@lists.denx.de Cc: Simon Glass , York Sun , Priyanka Jain , Sean Anderson Subject: [PATCH 5/6] net: fm: Support loading firmware from a filesystem Date: Thu, 24 Mar 2022 14:23:04 -0400 Message-Id: <20220324182306.2037094-6-sean.anderson@seco.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220324182306.2037094-1-sean.anderson@seco.com> References: <20220324182306.2037094-1-sean.anderson@seco.com> X-ClientProxiedBy: MN2PR10CA0005.namprd10.prod.outlook.com (2603:10b6:208:120::18) 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: 1cd41923-678f-4952-fb00-08da0dc361cc X-MS-TrafficTypeDiagnostic: AM6PR03MB4664: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: rC/uq+vZUyRMiw9D+0rR8QjXlu0p+Xinoh3phATlGAO1O8XreQgIv1n1S01mNRo9uz+3yxoy1ibBIwCmyTRux1XQPADdyBOEgRKyzLvtUgy4sqflB/BLDEEiv1qCGmWW5gxys7+BtmmR/AkNscNiQFVBXlLqi5eWLxHEQdevhTCnI5ZryV8z8QkAgbZuO5zw1aZWBQhmdkQaE7E1e+kxr1XI8EMkv/loy70TNdlqulHiyNo2nM0cyju8j8x+L4HY58nduGaiEkgq0fLlH4o277rrzpmfyD0rsjnzFD7mPbjNWXPN7rVl+u77E5ELqMBnGqcXt8X/E5+RPacXcPipzXuyC/C6T5sgiBCh4z8esfpj2MC5KcO+7/GAqIU7FKQliqvNpnr+yQVZUFspjSkf5C9/tNC9BGr4OzdfpOpTX/HS6NWbYbGzMWltG6HfrDWCgCT7IHtlo5OBOTcFGc6IN9im+n3QNg+dXK37QbJRvA/lVLayenE38y8dP8rKI/bRFPnRPp7sJ+DWpo2ouEdlmc4SHoqDI6rvQkn/hHa2fC/Ncqc4K2Dc1ZPk9/LNg2WX8kazhMMbNuwH+cekp7p0wySqPIDGbOQsqa87MEDUJNOF0Evzpj0kJN5w5FLGywzDPUlpXPI3xHDifXpbRV24h4/TSfrFZ+V06EJDnTaIts4cc10b6NpDgsU+olNXT4PxhUOBt6t2fXR+RMmkh8JC4A== 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)(4326008)(8676002)(6486002)(66476007)(66946007)(508600001)(66556008)(38350700002)(86362001)(26005)(110136005)(316002)(54906003)(1076003)(186003)(2616005)(6666004)(6506007)(52116002)(6512007)(38100700002)(83380400001)(36756003)(8936002)(5660300002)(44832011)(2906002)(107886003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: DsTpjNL0LnlPBVR+P0DeN4T0b267iYcHorrha9exSjp8mukXfykgTByGhzne8mP3bZGqEjVBC/43eWnuZkwFLlyWH7LSZHApGGtI6vlJd38wjHIOMsz5o2mNDbl8rqn/AJumzjhdJIXHlGn/g7A896JZeFxvkAUaaun7rNLMjTtYVEgzrsF0ybROLkXZ4wlQnrPKY0ETxj3G6dBV0LuCb3WHjkjf/4JJOXD1Q1FFz2xuiGscFUmLmzzDqO4Rvm00Txmt3SQakMxvQSOD+KeACsbpll+8o9N1V2GytIM/G2BEbdvWMsWEMRDW/oT/9cGMY8bT2oV3sA4MN2unjdvLUsDDPdpCXou1m3/pugFvy1IoDycthiwlACsdTWve/71R64QGPIIApMboGHPFwSG0dY7FDDfsRGt25g6HgGLgo2JjgGOMKa70hm8ky1tw1f+gLqBU8DPYHiC45tzXXvDVnfKIHw6x3aKJ9CdEgIY2WqdYXcumLmpM30g5bkPMZn1xUUbfxxfIqxiIS4mO8MpK7us3qAUiZlERgh3PurTZKEwjM7a7+ZAJ55ku27P6lpp2mEVL97HJlu08HJIQS3Amawzn9vWQx1CagrebIIYV9LJT+RG56fJrRoFOA3g77SPxy4SrW38TOBAdgLqaEDxMy3X6XQGacEyqwuYshEBS790cLvluBx2459oxT8uOHvTmqFItp7EjbgSMLT81twll4cwjBvDY3kWoVzU1I2e2hWvSzyOBzka53xtWGzcdRaTgL+K5vKNEOaJ2folyKOBS2/Qbg/XwICBdhA9yVVmc0vn6zPkuT0KzLtFQ+vbzYqfz9pwEBFtM4vEeieMozVhQrkUVuIXbtG4E4FFAUjCnLjGNfDYk5PHKeuo9rhrQk/rTVzKE+Xku1U8Ui61/bN5e/s4wfaP8LAOW9rtp0yqJlzlyI9uRbYl9ZuYz9wxZ+zobbG8gdrMWSMXfW3MkYewTNsI47vhobf+dPr83wLpz6lfbg+xB62ICpkBDna+B/ZUpbhNs68mLOBmbm/c+bhdIaDFU6WfTggkole0yohanWScgprdDG3Ge5PpiPXOsXkFfsd/gjFdguSOeKuIxWVZXSxSwOBNNddaNW7mg6fA6z/W7CFZKBESFtB8ITgoJrtCO+pvvyZuHMjtUY/Oyw3iuJ4nLjsotOYHPG3soocXLeVMSgeB2t4xY6dIR0xW5vj9pkILlMSwSBZERwJXnx7IxNM+04j/VuIjBxAiAx4PiRAsFOqxhiQcy6SXjC1O0VlSvNNVsLEnx4sfU7xKvY/CqugvFS688rRLc8r9uCD5ku7L/AloHc1AQXAV4sdeeW9/N4bqekvT754PyD7XkGh4iI8+DY86HaYymUlTZOiH4dSDIJlrthr9tUeUCQbk+zy2iJ//8PEbjaBcU6YSQWgLKCQMWN1k1y7+qlt8o6oGtz+fnnBsvvNx/w5M7brJwe4nDOxx3tDEaUCtfD7z1Kaqq/Q== X-OriginatorOrg: seco.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1cd41923-678f-4952-fb00-08da0dc361cc X-MS-Exchange-CrossTenant-AuthSource: DB7PR03MB4972.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Mar 2022 18:23:23.8672 (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: +ne4rmJCZ0dyishYZv5sTGSkMrwSfObCUicUKK1oZejoTo7VR6UcPDijXjvjb8GWya2rv1ywuKxB+wTHq9n9IQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR03MB4664 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 a new method to load Fman firmware from a filesystem. This allows users to use regular files instead of hard-coded offsets for the firmware. Signed-off-by: Sean Anderson --- drivers/net/fm/fm.c | 25 ++++++++++++++++++++++++- drivers/qe/Kconfig | 4 ++++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/drivers/net/fm/fm.c b/drivers/net/fm/fm.c index aa0cc69232..39b939cb97 100644 --- a/drivers/net/fm/fm.c +++ b/drivers/net/fm/fm.c @@ -5,6 +5,7 @@ */ #include #include +#include #include #include #include @@ -453,7 +454,29 @@ int fm_init_common(int index, struct ccsr_fman *reg, const char *firmware_name) int fm_init_common(int index, struct ccsr_fman *reg, const char *firmware_name) { int rc; -#if defined(CONFIG_SYS_QE_FMAN_FW_IN_NOR) +#if defined(CONFIG_SYS_QE_FMAN_FW_IN_FS) + struct udevice *fs_loader; + void *addr = malloc(CONFIG_SYS_QE_FMAN_FW_LENGTH); + + if (!addr) + return -ENOMEM; + + rc = get_fs_loader(&fs_loader); + if (rc) { + debug("could not get fs loader: %d\n", rc); + return rc; + } + + if (!firmware_name) + firmware_name = "fman.itb"; + + rc = request_firmware_into_buf(fs_loader, firmware_name, addr, + CONFIG_SYS_QE_FMAN_FW_LENGTH, 0); + if (rc < 0) { + debug("could not request %s: %d\n", firmware_name, rc); + return rc; + } +#elif defined(CONFIG_SYS_QE_FMAN_FW_IN_NOR) void *addr = (void *)CONFIG_SYS_FMAN_FW_ADDR; #elif defined(CONFIG_SYS_QE_FMAN_FW_IN_NAND) size_t fw_length = CONFIG_SYS_QE_FMAN_FW_LENGTH; diff --git a/drivers/qe/Kconfig b/drivers/qe/Kconfig index c44a81f69a..89a75c175b 100644 --- a/drivers/qe/Kconfig +++ b/drivers/qe/Kconfig @@ -27,6 +27,10 @@ choice depends on FMAN_ENET || QE default SYS_QE_FMAN_FW_IN_ROM +config SYS_QE_FMAN_FW_IN_FS + depends on FS_LOADER && FMAN_ENET + bool "Filesystem" + config SYS_QE_FMAN_FW_IN_NOR bool "NOR flash" From patchwork Thu Mar 24 18:23:05 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Anderson X-Patchwork-Id: 1609173 X-Patchwork-Delegate: rfried.dev@gmail.com 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=w+jLG/tS; 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)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4KPYXc2Qlhz9s5V for ; Fri, 25 Mar 2022 05:24:32 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 376F284122; Thu, 24 Mar 2022 19:23:49 +0100 (CET) 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="w+jLG/tS"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 2664684021; Thu, 24 Mar 2022 19:23:29 +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=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2062c.outbound.protection.outlook.com [IPv6:2a01:111:f400:7e1b::62c]) (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 80CE0840A1 for ; Thu, 24 Mar 2022 19:23:26 +0100 (CET) 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=O354vibjxISHyUtgxqnpb/y4lqD/5yZxQwG0T0OulOTKNNx+Q+ypaA1rDMbY3nzVmcAKpY0L7+eoakFVFX/lzTjGYmKkeKJBgduWJJnNhBb821vcnGccjUFRu5/bBWrGRQMLZbHjbXkcUf5BDD3tolixpL8CuK8WIH6uB0kvy81gH0LV6x1Atw9vbuN5SH42md4CPxwu3JaVMcobL86KKxzpzR9BkzV96x6mJrmCdpFzb8pG7/R/JTx2wQMuaE45SD5B/FeiAkzNY8CO5UoZOUltcPpAOMnABYPNyPYT+emHsaCOvD2PAHiMEbw7zQ/69WK0IWwVyl0iAtJIm/tCVA== 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=L54Gu+684HVuaJ7vWnaofR1hfjlNRXAIbEwOptIQzoE=; b=CfEk/Y/pDlP1ju3BGtb9hBLmVY2w3O/SanzKZKe/kWtIHVeUROMOKjniD3FPKSTHOab7wKrVLVAK70W7ybLY1ynmlwkiZgnvcTLhE5CUKNKFVkCaLb/9g0XTWIbg+VXR5eUkuAlHGsBl963czeNKhchhtcCFLExUtvHyuGcQsxNXnt9PEv0WGjFzD6ZfVwycFwP0PGX67W8ZkinNteD19VNRVo6FrqTGLdUJRM+LmNtJzlqNUT4oIRI1Q7b/k/ID09meGsZv6q2xbEhxbt3YePB842CRfJnAXN878qfY+a81G3Mbtu7i7tyoUuEXgqh0iT/fxkmgAU44/lQHSq5K0w== 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=L54Gu+684HVuaJ7vWnaofR1hfjlNRXAIbEwOptIQzoE=; b=w+jLG/tSExUmOy3VQ9BeuuwIlNUdECTdLulYLGyw8LDEPr4sU5jjdL8XxpiyKzRjaQBnmwZjcViKPCUUIbnKUzFgaod/I78ynLxN/Um7J2NK9GoWiIywgOalYG9OLXr7sqWEIUNsXDddtk/06AGEqVreq/7oTLs6fMIDw/JouGDgVkW8z7aCD6yzraM5uhXBZKIcfED4eVj7aWZXNQqjHqZsUVPpJYr5Nu4a4rk23qZP7TVLmegLWJa1vIicmlNahSACi/zms5Hb5F6+4jqUHzOKn5KQucv0jhWAMKIvgw0KVc1Z1UlQ1T5mHa3/Z/OkH8i6PtZ7pNjNLgKU0rX5Tw== 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 AM6PR03MB4664.eurprd03.prod.outlook.com (2603:10a6:20b:12::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5102.17; Thu, 24 Mar 2022 18:23:25 +0000 Received: from DB7PR03MB4972.eurprd03.prod.outlook.com ([fe80::2414:8ad5:9fd6:3bff]) by DB7PR03MB4972.eurprd03.prod.outlook.com ([fe80::2414:8ad5:9fd6:3bff%5]) with mapi id 15.20.5102.018; Thu, 24 Mar 2022 18:23:25 +0000 From: Sean Anderson To: Joe Hershberger , Ramon Fried , u-boot@lists.denx.de Cc: Simon Glass , York Sun , Priyanka Jain , Sean Anderson Subject: [PATCH 6/6] net: fm: Add support for FIT firmware Date: Thu, 24 Mar 2022 14:23:05 -0400 Message-Id: <20220324182306.2037094-7-sean.anderson@seco.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220324182306.2037094-1-sean.anderson@seco.com> References: <20220324182306.2037094-1-sean.anderson@seco.com> X-ClientProxiedBy: MN2PR10CA0005.namprd10.prod.outlook.com (2603:10b6:208:120::18) 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: 2bc3d967-f617-4948-7666-08da0dc362af X-MS-TrafficTypeDiagnostic: AM6PR03MB4664: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: FWnrjN/XwnMzomMgvwvKhuFA0eAIa42DW3m/8EKL7ju0Wrz+pHyNyiclJroh0emFIYeHtrzlaaUtHAih/Rxt3x6FNkSi7V/ktil7RzCwSNdkZBJY4/QtOu7NGtgYu5Q4rot6l9VRCeBF6VQDQFqqdQaqBg7pi6w+I+4dH3WoxE0eraW4cnYWrsInLnfD0OyfJspdTOFtWhBFF5mvDzZRnIxlvrSeRmKxzZGZ15368zPs6hL0oo7UMcxRLplcZpTxTmAfeqDEMBidXP9Kv0ITo/Zqz88X/qi7Kd/cuBJauvOrYdLBoUAx2MBh+9N3PIBfd6BuODvocirCHHoR5Kzf6yHpQUdz3spCVJ1rch4+5w+ee5d5WrG+E+YUJXY2eDbKoZog6b5Vcr0XWiinAA0QO4/RzndRoccOZqTHHR37XsGGDdnacACgEka8IEepZ6u+M09NK3woL187Wf3/xVcdjzg6vwTvqIKyCSqu8dkIJYO78aPTKCBdab9Cjd6SMdIHkHO+Wa0RBG6p51yiHrWu/Y0W3EyWIKKsZ0JtAjm45/rq4KRCqrkR55Celiy7n3hSCcQT0Q40NGkb4WrLacrAKVXJ6LWsB6vxtQGfuyAQRHuqFfm38PoB0xMHeBhCPZrn1dGVv3bsUVd+EYH5qxBYK+ljB28Hb6dmrjqgA9gs2mf96lN0FqVucGYNepyk0ZIwDtpMPNR5ZEmG9MyAPdopmA== 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)(4326008)(8676002)(6486002)(66476007)(66946007)(508600001)(66556008)(38350700002)(86362001)(26005)(110136005)(316002)(54906003)(1076003)(186003)(2616005)(6666004)(6506007)(52116002)(6512007)(38100700002)(83380400001)(36756003)(8936002)(5660300002)(44832011)(2906002)(107886003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: Ipx+8bvTzIBQ0aJwaEexZnRJZgF2uHLIUJ/ueEbzppjrDM40voPlLdPU6wads9GU3OT2/Pc3V3lfUtlDIZ5cInreqczGlj1AsqWQUObA7sLmpzD70KVQ0sQEEpD+g0Llb8ML9iHruthK3WelxEI9cgVEjvDEcPJfwPjErkuGtATMM0ep7UDQGnIcDt7RLPVVMbrJJXr+tvmeED0m+nESPGXR88JXrKs1UrlaoT7TNhxz1OXrNB7AViNIh8zIwaNOlkpC7O0Q+r+gniHyjZfaBk9hYBHbiKz7ywcnJOZ7QkRPsohp6soPatNKSRSjqxRF8/N0no7+M6YGJXhw0IdXp8B7STXr67WFgYbzQBMUGZDgupJX+J/XAMvpwPah+hhaM4JyXq4wIekTT/3cgDnumBFV/6znrRm0d6aEjq2QdbFZS02ePutgu5ZtPhsjDaz3Kk5mEUwUrxJ2zpqfZIGserS5QcqahZdRnogAhvVJB1hLI0/v9fQu9fGwfitlbSA6w5FAjtQFKAjU1rU73+z2MLp6GSjHDCOFDz/EBqhwVsV+OSILVp5AfmefmlQUQCTgDg89wS+wIq7UMqB1FCMvs6y9rrteNH/Ra1YSZRqv2mY3mLjE8CNuR2GyaWPqjZcw3V8Qa3NCvol9I6Fl9cFR2r1wOAJWL/1IDb8KJlMpHKRNVsEFVEK38+vdnU45ssvBxR0tKdr3khhJWtb/BLwySOAvFaHxsk7+rXpAqmMySS8k1C04LWdL4jUxUqKMFYHm+7QF57T6jHXagECZ4sj3f0oQvv7Ncfg6rjC9EuudjwfKSe8UlGAKsRAg8qi0cv0ErcJhnf73enhPpZmAmgLfCHIy9rJ4sOMd+Qzok2AFgadRz6MFhsexRoCnweempV5BiBKqQq+0gWI5Kk6RppHJMaWo8X93PJGNVeDrxFfOAGnFK/MPZ9EdsG00kLE/JGryckUIi9Ysfl+Q4C2UdPusxKHHhAZy/R3hZh0sY+ofFnTon63JfVLVgFBpnqNu2sN3HlNpY/4MMt4i5c1SHit0/Ahg8mqI7hcRBA7zTD9+vnQX2BQYuDozw2OAdN3252mhEaEvFoA4BQ/WaD27BceAaIXXo0W/SC+VPDsKjiYmnPuiZDOc8cCU64bUKDB92ScolGWi3Fc4J0sVcDh+z8c1Kzyk2CZfWvNSv4ZztObWZcxK960X4sr7NoTbEYCYwBDS5JsvnlFtobHmnusG8jzuKCMGQgTpoVMmVNHlvG/FsGnGT/fS1P2UJXQ7Y7j1QWDOt7Zr2DD4MkKXR+PQWlFn87KToW4zGcm1twu0/X700qx/b7ssoQNO1Sra32MoFK524scuATq2P01n6hJ/mi4zXiOVEUJGB2OEgyW+XOqNrN9Sh4o0MwpeTN3fcM6mdZ3vfyCNx85HWmNd4i8pYEyhPSq9HTUBB2MBcrAqaf5xiSeqF9xg4/3KTHi7jwetaW1F409N/zWFK6maEIvysCBbsQ== X-OriginatorOrg: seco.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2bc3d967-f617-4948-7666-08da0dc362af X-MS-Exchange-CrossTenant-AuthSource: DB7PR03MB4972.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Mar 2022 18:23:25.4296 (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: MLgfEt5FJRISWfUzBMxNAcxok/SnYrpLDkmo2WrM6345rnQaj9X7cIkWz0IvUDzCSajNK7MlM+/C6YXqwHMj2g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR03MB4664 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 Fman microcode is executable code (AFAICT) loaded into a coprocessor. As such, if verified boot is enabled, it must be verified like other executable code. However, this is not currently done. This commit adds verified boot functionality by encapsulating the microcode in a FIT, which can then be signed/verified as normal. By default we allow fallback to unencapsulated firmware, but if CONFIG_FIT_SIGNATURE is enabled, then we make it mandatory. Because existing Layerscape do not use this config (instead enabling CONFIG_CHAIN_OF_TRUST), this should not break any existing boards. An example (mildly-abbreviated) its is provided below: / { #address-cells = <1>; images { firmware { data = /incbin/(/path/to/firmware); type = "firmware"; arch = "arm64"; compression = "none"; signature { algo = "sha256,rsa2048"; key-name-hint = "your key name"; }; }; }; configurations { default = "conf"; conf { description = "Load FMAN microcode"; fman = "firmware"; }; }; }; Signed-off-by: Sean Anderson --- drivers/net/fm/fm.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/drivers/net/fm/fm.c b/drivers/net/fm/fm.c index 39b939cb97..09e13506bf 100644 --- a/drivers/net/fm/fm.c +++ b/drivers/net/fm/fm.c @@ -6,6 +6,7 @@ #include #include #include +#include #include #include #include @@ -537,6 +538,23 @@ int fm_init_common(int index, struct ccsr_fman *reg, const char *firmware_name) void *addr = NULL; #endif + rc = fit_check_format(addr, CONFIG_SYS_QE_FMAN_FW_LENGTH); + if (!rc) { + size_t unused; + const void *new_addr; + + rc = fit_get_data_conf_prop(addr, "fman", &new_addr, &unused); + if (rc) + return rc; + addr = (void *)new_addr; + } else if (CONFIG_IS_ENABLED(FIT_SIGNATURE)) { + /* + * Using a (signed) FIT wrapper is mandatory if we are + * doing verified boot. + */ + return rc; + } + /* Upload the Fman microcode if it's present */ rc = fman_upload_firmware(index, ®->fm_imem, addr); if (rc)