From patchwork Tue Nov 24 13:39:47 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Philippe REYNES X-Patchwork-Id: 1405568 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=softathome.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=softathome1.onmicrosoft.com header.i=@softathome1.onmicrosoft.com header.a=rsa-sha256 header.s=selector1-softathome1-onmicrosoft-com header.b=mooZmKpS; dkim-atps=neutral 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 ozlabs.org (Postfix) with ESMTPS id 4CgQBc2zq1z9sVL for ; Wed, 25 Nov 2020 00:40:23 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 7056C825D0; Tue, 24 Nov 2020 14:40:07 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=softathome.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=softathome1.onmicrosoft.com header.i=@softathome1.onmicrosoft.com header.b="mooZmKpS"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id AB560825BB; Tue, 24 Nov 2020 14:40:01 +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=-0.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,FORGED_SPF_HELO,MSGID_FROM_MTA_HEADER,SPF_HELO_PASS, URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.2 Received: from FRA01-PR2-obe.outbound.protection.outlook.com (mail-pr2fra01on0615.outbound.protection.outlook.com [IPv6:2a01:111:f400:7e18::615]) (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 99053822C7 for ; Tue, 24 Nov 2020 14:39:57 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=softathome.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=philippe.reynes@softathome.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mPWU/sZeM3BdQNGAUYFYqFhAayfgMGo5+BzJ63c+nZr0LHPYdJCAfWPsBqn/jcvjAXteKeqYwvPnGFW2U54E3QyPHnL0UPpks/fUF/O46SfD1JN7QTYUy2Biuh++9ODylUOtr5Kp0z71eDpuoIRqdA0ZQLSQY0HFJchKnQjhBHpcXTTBlLeSg5pjxyVSJL/t0edgS9ULcs/UfHYt3EFXDyIL66J0FuDglEhqTPf/EeZWI58dNmkBMkxPHIM2jr0UPCdOiYPlBluG3O5Q8MlMsZ13NaY4SzPlDdnwLwB0vHFdw8y+A8tPcacxChj8+E4uOihcJz79BAip03dGC3Rv8Q== 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=E3Bmho/mIUG1nysQ8KMkDBvK42WG4YyTxsZI8QYQzhs=; b=BO8/fMgeAoD79zgOC9u88ROew+XyvZ8m+XkJSUdlu66TuSeRYgCu9A0eOfaEVFIfgxNNnTKRHjg//z/KcyJ5rRxTR+ht7NOUiPd2J+c97a+wxx9WEL6uha3grHzHIVh/9N3SRlIk9870QBvBvepIE/ldMtsxsES/k5R5J0DxWZHgXNwiYE77L359sZc3Ed7Nsx+xwoEyjhLO8kQ6Xi3SiJfa/e0pgENAc7zUHxxkv8SP4hUvRCvJXRygDZ9w5jLtZF3PHQqBKbP2nvX6v8wVORgqYaI1aLwyHhwuvrBsdDabr4NhvBWEkopih+yWqVUJ+Slk6Yj+w1KWV9VJM8PUeQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=softathome.com; dmarc=pass action=none header.from=softathome.com; dkim=pass header.d=softathome.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=softathome1.onmicrosoft.com; s=selector1-softathome1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=E3Bmho/mIUG1nysQ8KMkDBvK42WG4YyTxsZI8QYQzhs=; b=mooZmKpSB46N0kekPXUU96afEEXvqMKD7myq3ApdVSilVBI/w5evY++tVKdozSI3UCMRCgO+1auPyltdSpe6IfKAlD6XyoCjdS52HQKmuYdx3YZyuU74mElKzcJnoo+r1ktJuOCkrtshwt+L5oUWQoXfCmy06ByEOV3+Ww3Y7KzY3splFJeraogSh6M2aGZFwBUWRLrjeTleq/9oFFqelbxFb64n1eIAKbcsDhEn7V4l19r7gteIcKWVwi/0NM4NAFQZsf3gZuFeLlBQIE4AOumsseHDb4+aOa2azKsP+ntXz0bngC+f/ZLFP2b3pi8QRLCV+iadJQjtYnIqXIrd7g== Authentication-Results: chromium.org; dkim=none (message not signed) header.d=none;chromium.org; dmarc=none action=none header.from=softathome.com; Received: from MR2P264MB0068.FRAP264.PROD.OUTLOOK.COM (2603:10a6:500:5::16) by MRXP264MB0344.FRAP264.PROD.OUTLOOK.COM (2603:10a6:500:22::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3564.28; Tue, 24 Nov 2020 13:39:56 +0000 Received: from MR2P264MB0068.FRAP264.PROD.OUTLOOK.COM ([fe80::d1bd:61ca:31ea:7a5]) by MR2P264MB0068.FRAP264.PROD.OUTLOOK.COM ([fe80::d1bd:61ca:31ea:7a5%7]) with mapi id 15.20.3589.022; Tue, 24 Nov 2020 13:39:56 +0000 From: Philippe Reynes To: sjg@chromium.org, patrick.oppenlander@gmail.com Cc: u-boot@lists.denx.de, Philippe Reynes Subject: [PATCH 1/2] tools: image-host: clean function fit_config_get_hash_list Date: Tue, 24 Nov 2020 14:39:47 +0100 Message-Id: <20201124133948.22042-1-philippe.reynes@softathome.com> X-Mailer: git-send-email 2.17.1 X-Originating-IP: [2a01:cb08:1b9:9600:4551:b305:2d73:bdb4] X-ClientProxiedBy: PR2P264CA0033.FRAP264.PROD.OUTLOOK.COM (2603:10a6:101:1::21) To MR2P264MB0068.FRAP264.PROD.OUTLOOK.COM (2603:10a6:500:5::16) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost.localdomain (2a01:cb08:1b9:9600:4551:b305:2d73:bdb4) by PR2P264CA0033.FRAP264.PROD.OUTLOOK.COM (2603:10a6:101:1::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3611.20 via Frontend Transport; Tue, 24 Nov 2020 13:39:55 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 1128e644-dce7-4cf7-1d83-08d8907e6e12 X-MS-TrafficTypeDiagnostic: MRXP264MB0344: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:159; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Nc6KoiPQ/uHHz0ikvKtZ7zd1RTR6EnnSMCC4RggXocL1GvwU9/yxIZbzi3bW76QaeV7xn6O0b3ZWguNyn9onsrvHNFugqj3NY5gMG0/HZfHi9Tk2IkfxVGWi+WLG0U9yIts92ehSY90vPF1+J4WZGzyQ1jFEX+Socp6gJpduFQauxI5YevkSg7jduLS+czT5LC7ij/rge57nUbpIAeu6ryYTuyCxk0934xVErvoc5sELxxdSD8c0JbE39RRR59m8CMrY8F3ffZ5uBdr/vM8Q8DGI1Mp/vO4nolpRH9eiHNFpRFf5l4FftjnBkO0ppKvHZWp2nk75s0yBSp/gb8/m9yqILz/0ihu6L6A/Do4Swrn3FQfpPu7RvL35Rlj7Y9Qp X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MR2P264MB0068.FRAP264.PROD.OUTLOOK.COM; PTR:; CAT:NONE; SFS:(4636009)(346002)(39850400004)(376002)(396003)(136003)(366004)(36756003)(6666004)(107886003)(69590400008)(2616005)(5660300002)(44832011)(2906002)(478600001)(6506007)(86362001)(186003)(6512007)(16526019)(1076003)(6486002)(8936002)(52116002)(4326008)(66556008)(8676002)(66946007)(66476007)(83380400001)(316002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: gDvrqIKtTS9xiCWLmJTaxGzL0GOdKY6tc5dW9tZ3QM0NP7KVrCgXZzNtyY7GAq/MNsV8bOzuHeCdi2ZzH3bS4TngpQebDpnu3neKtP50SIDxRU9/ax5ERlZmO4Qb26A8leiHkrY4ac3GLVt6zwGwdy+MooOOJXP7zofGyfPBmh+J5PcPCbvJ81/C4aGGSOYDlsgYTY3M+T7EsJtJeLPAzhoGfhca3EMDbQskwSY0Wk9f8vaKFv5UnnvH20Njtc+SqsLkafjU4LyfF0TLs4TJcUHdZWmHQ6hPabdO3fHQF9FKq1A26ExyxvX8t9vNXtQrXVOb4HH7RexmklyIQIA5BCV2omI9R9wpZkJixHsfz6J8CldPFW1TferoaQVtjbBq15oKpPtmzPlVRmXTd9foYJxN4s0WYevWbsoKZDql4NmnL6rSQKJpL9mgcX0bbxoQbklHyg1d5ZCEM3DEyXfV2AiUENp50mQV70bTzNdtbsQaD/B9We6POWyW1xzbzJWxaiytYqsMHqRH0e1TFyCwH5z0/9nyLnK5lbPkNbx7cD06LPGwSsd//7yUsS0dpBfPiQyZACygXfF2/D9/sD1RsoSkvYuxB1sAO7Pz6NFQyNc3/iz8TJyCZ7eFJWEfq8nodE/4lMuTnxLw8nsM5k7VahZGRiFAb9eQiziIsKruY54XdoQ4zHJbqMfF/SuyL2kTXassTeBrxHPyUORsHn8ontDEFLbcFndPYSMzQZuWcO8EqI3yEr1pKX/5Bdd5XgUy5uIZWbc7F/ZZoHNWsY/jQzGaWIcptS2iPtSUe2cXHSRv5UyYjEmoy1SgPVLKF1ncS2mKp5KTldSZV0dKoOhhKAuH+A0P7XJyRKjWgTXH8v4uf4Nth+AYVsMLAuyY2Cf/lSWt/U619kLxVvuE1ybUVmBr+zPn0L3xQVWG1BX5P6oEFHlJ/ynXYjN6g7VmI3+QH6AIIFR+iey99ma2QWKY4A== X-OriginatorOrg: softathome.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1128e644-dce7-4cf7-1d83-08d8907e6e12 X-MS-Exchange-CrossTenant-AuthSource: MR2P264MB0068.FRAP264.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Nov 2020 13:39:56.1344 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: aa10e044-e405-4c10-8353-36b4d0cce511 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: KOaZP01EIL6f1nS1p5xWjlBOiL2eHDOJL1b3E3FfhG6pkLxeYJGOc6TZUhFZZE/d9XoXeQVTx6qwfrTIRpPwsMznT/dcRVebCr6JHaJ8UE4= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MRXP264MB0344 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.102.3 at phobos.denx.de X-Virus-Status: Clean This commit creates a function fit_config_add_hash that will be used in the next commit to support several 'sub-images'. Signed-off-by: Philippe Reynes Reviewed-by: Simon Glass --- tools/image-host.c | 132 ++++++++++++++++++++++++++------------------- 1 file changed, 76 insertions(+), 56 deletions(-) diff --git a/tools/image-host.c b/tools/image-host.c index e32cc64257..ce829a8ec9 100644 --- a/tools/image-host.c +++ b/tools/image-host.c @@ -700,13 +700,84 @@ static const char *fit_config_get_image_list(void *fit, int noffset, return default_list; } +static int fit_config_add_hash(void *fit, const char *conf_name, const char *sig_name, + struct strlist *node_inc, const char *iname, int image_noffset) +{ + char name[200], path[200]; + int noffset; + int hash_count; + int ret; + + ret = fdt_get_path(fit, image_noffset, path, sizeof(path)); + if (ret < 0) + goto err_path; + if (strlist_add(node_inc, path)) + goto err_mem; + + snprintf(name, sizeof(name), "%s/%s", FIT_CONFS_PATH, + conf_name); + + /* Add all this image's hashes */ + hash_count = 0; + for (noffset = fdt_first_subnode(fit, image_noffset); + noffset >= 0; + noffset = fdt_next_subnode(fit, noffset)) { + const char *name = fit_get_name(fit, noffset, NULL); + + if (strncmp(name, FIT_HASH_NODENAME, + strlen(FIT_HASH_NODENAME))) + continue; + ret = fdt_get_path(fit, noffset, path, sizeof(path)); + if (ret < 0) + goto err_path; + if (strlist_add(node_inc, path)) + goto err_mem; + hash_count++; + } + + if (!hash_count) { + printf("Failed to find any hash nodes in configuration '%s/%s' image '%s' - without these it is not possible to verify this image\n", + conf_name, sig_name, iname); + return -ENOMSG; + } + + /* Add this image's cipher node if present */ + noffset = fdt_subnode_offset(fit, image_noffset, + FIT_CIPHER_NODENAME); + if (noffset != -FDT_ERR_NOTFOUND) { + if (noffset < 0) { + printf("Failed to get cipher node in configuration '%s/%s' image '%s': %s\n", + conf_name, sig_name, iname, + fdt_strerror(noffset)); + return -EIO; + } + ret = fdt_get_path(fit, noffset, path, sizeof(path)); + if (ret < 0) + goto err_path; + if (strlist_add(node_inc, path)) + goto err_mem; + } + + return 0; + +err_mem: + printf("Out of memory processing configuration '%s/%s'\n", conf_name, + sig_name); + return -ENOMEM; + +err_path: + printf("Failed to get path for image '%s' in configuration '%s/%s': %s\n", + iname, conf_name, sig_name, fdt_strerror(ret)); + return -ENOENT; +} + static int fit_config_get_hash_list(void *fit, int conf_noffset, int sig_offset, struct strlist *node_inc) { int allow_missing; const char *prop, *iname, *end; const char *conf_name, *sig_name; - char name[200], path[200]; + char name[200]; int image_count; int ret, len; @@ -733,9 +804,7 @@ static int fit_config_get_hash_list(void *fit, int conf_noffset, end = prop + len; image_count = 0; for (iname = prop; iname < end; iname += strlen(iname) + 1) { - int noffset; int image_noffset; - int hash_count; image_noffset = fit_conf_get_prop_node(fit, conf_noffset, iname); @@ -748,55 +817,11 @@ static int fit_config_get_hash_list(void *fit, int conf_noffset, return -ENOENT; } - ret = fdt_get_path(fit, image_noffset, path, sizeof(path)); + ret = fit_config_add_hash(fit, conf_name, + sig_name, node_inc, + iname, image_noffset); if (ret < 0) - goto err_path; - if (strlist_add(node_inc, path)) - goto err_mem; - - snprintf(name, sizeof(name), "%s/%s", FIT_CONFS_PATH, - conf_name); - - /* Add all this image's hashes */ - hash_count = 0; - for (noffset = fdt_first_subnode(fit, image_noffset); - noffset >= 0; - noffset = fdt_next_subnode(fit, noffset)) { - const char *name = fit_get_name(fit, noffset, NULL); - - if (strncmp(name, FIT_HASH_NODENAME, - strlen(FIT_HASH_NODENAME))) - continue; - ret = fdt_get_path(fit, noffset, path, sizeof(path)); - if (ret < 0) - goto err_path; - if (strlist_add(node_inc, path)) - goto err_mem; - hash_count++; - } - - if (!hash_count) { - printf("Failed to find any hash nodes in configuration '%s/%s' image '%s' - without these it is not possible to verify this image\n", - conf_name, sig_name, iname); - return -ENOMSG; - } - - /* Add this image's cipher node if present */ - noffset = fdt_subnode_offset(fit, image_noffset, - FIT_CIPHER_NODENAME); - if (noffset != -FDT_ERR_NOTFOUND) { - if (noffset < 0) { - printf("Failed to get cipher node in configuration '%s/%s' image '%s': %s\n", - conf_name, sig_name, iname, - fdt_strerror(noffset)); - return -EIO; - } - ret = fdt_get_path(fit, noffset, path, sizeof(path)); - if (ret < 0) - goto err_path; - if (strlist_add(node_inc, path)) - goto err_mem; - } + return ret; image_count++; } @@ -813,11 +838,6 @@ err_mem: printf("Out of memory processing configuration '%s/%s'\n", conf_name, sig_name); return -ENOMEM; - -err_path: - printf("Failed to get path for image '%s' in configuration '%s/%s': %s\n", - iname, conf_name, sig_name, fdt_strerror(ret)); - return -ENOENT; } static int fit_config_get_data(void *fit, int conf_noffset, int noffset, From patchwork Tue Nov 24 13:39:48 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Philippe REYNES X-Patchwork-Id: 1405567 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=softathome.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=softathome1.onmicrosoft.com header.i=@softathome1.onmicrosoft.com header.a=rsa-sha256 header.s=selector1-softathome1-onmicrosoft-com header.b=E+09q5Aq; dkim-atps=neutral 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 ozlabs.org (Postfix) with ESMTPS id 4CgQBY0Ny2z9sSs for ; Wed, 25 Nov 2020 00:40:20 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 2EB7D825A1; Tue, 24 Nov 2020 14:40:04 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=softathome.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=softathome1.onmicrosoft.com header.i=@softathome1.onmicrosoft.com header.b="E+09q5Aq"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id E730B825C6; Tue, 24 Nov 2020 14:40:00 +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=-0.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,FORGED_SPF_HELO,MSGID_FROM_MTA_HEADER,SPF_HELO_PASS, URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.2 Received: from FRA01-PR2-obe.outbound.protection.outlook.com (mail-pr2fra01on0615.outbound.protection.outlook.com [IPv6:2a01:111:f400:7e18::615]) (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 DCA94825A1 for ; Tue, 24 Nov 2020 14:39:57 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=softathome.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=philippe.reynes@softathome.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=i6gdej53AChFBmPfdwDsKDxKHlCYQ7Z9gWv8+mTuQFCfs+W8ap8RNlf0m5vQzODPtgBT2Cj2ZLUoWbkWet/rP+DjDzSnGwTpDT6rGT1ltVW9jK8aviU4bILFyGNOdUSXUI7hbsORULlcW2qeEY7ZW6qd6VeFHMZ0qHc4GPxSfMygyEQ7zVPxZhDIrvujGLaTOw/OJteUmw+wEsp94FMcTWjUu9AClp9LhibKvj5MfAOFkjHoYCJH+qRmIVR6sj6W+33b+G/h6PGoqVy9uUXAq4Wojl91l1YbyL+Vj4jqUuNlEdsPIcZFkKuHHNvQpfH/Wb8jh+y+dFU5gAFb7hY1Rg== 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=h9JqKasoXoK6nC7m5Zu8UbuybnSZ1UgTqWWmlBtkpuk=; b=S30ocGBdTc5gRZyBitP5gVtY06HkA5Z82iq9JmKccVHLfIDuWUOB+hTndSAvlncMh4s0NWbHMrP+4fcY6DDsf9VRApYQDFKM83115+mu/Bqt0fE17Zqp8SDYkVc9TJCA8yAAJFyiWF6SHEDQjaKFu5z1KEuzIDzfl8Z1guSFomNzzEIc3gdrFKHauX3098hvkTcsyOAi25IsA98gkCd+K9HEo25DW3L5GBPQZURU1hmkHRTZjGREjY2Cy6BA2Mzf/WJV8jawPqZWfZSE1F7C7Vnid7I170Nub13Jk2hd8zsCHXHV/cDJSIOuR1ni4CFwlIeLQg8tTB9ZKDtKKd+t1Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=softathome.com; dmarc=pass action=none header.from=softathome.com; dkim=pass header.d=softathome.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=softathome1.onmicrosoft.com; s=selector1-softathome1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=h9JqKasoXoK6nC7m5Zu8UbuybnSZ1UgTqWWmlBtkpuk=; b=E+09q5Aqq+9aopQGCcm8pP2qBBI0tYgExVwU/wnbn4B1NFGek7rwuqO974NAaKFy9rUziCRS9iEUlimFMnVMayXdTO33Azp5k7ZXd6aFEIyB312ol0zQfFQ90VJ7a33p4oFkt9AEbEy2Zxak9QSmmYMgteVZGELSzFCCQFqkjOQpTx67CcKRnVqL4oVQF6yYDUzFg7r1li5+OwElkaQt6yUOwqVYOwgJorCMCbh/5DgGW24XRsx1W6I4HzgfP8MV1xlo7HtD2wotO/PrykQvVm+FjbOMLvbcE6vFkssAKQvRDX/d13z2kdts5/Ww4f/WNJtQwWtLAOWA9TTlA0Fr3Q== Authentication-Results: chromium.org; dkim=none (message not signed) header.d=none;chromium.org; dmarc=none action=none header.from=softathome.com; Received: from MR2P264MB0068.FRAP264.PROD.OUTLOOK.COM (2603:10a6:500:5::16) by MRXP264MB0344.FRAP264.PROD.OUTLOOK.COM (2603:10a6:500:22::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3564.28; Tue, 24 Nov 2020 13:39:56 +0000 Received: from MR2P264MB0068.FRAP264.PROD.OUTLOOK.COM ([fe80::d1bd:61ca:31ea:7a5]) by MR2P264MB0068.FRAP264.PROD.OUTLOOK.COM ([fe80::d1bd:61ca:31ea:7a5%7]) with mapi id 15.20.3589.022; Tue, 24 Nov 2020 13:39:56 +0000 From: Philippe Reynes To: sjg@chromium.org, patrick.oppenlander@gmail.com Cc: u-boot@lists.denx.de, Philippe Reynes Subject: [PATCH 2/2] tools: image-host: add support for several sub-images Date: Tue, 24 Nov 2020 14:39:48 +0100 Message-Id: <20201124133948.22042-2-philippe.reynes@softathome.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20201124133948.22042-1-philippe.reynes@softathome.com> References: <20201124133948.22042-1-philippe.reynes@softathome.com> X-Originating-IP: [2a01:cb08:1b9:9600:4551:b305:2d73:bdb4] X-ClientProxiedBy: PR2P264CA0033.FRAP264.PROD.OUTLOOK.COM (2603:10a6:101:1::21) To MR2P264MB0068.FRAP264.PROD.OUTLOOK.COM (2603:10a6:500:5::16) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost.localdomain (2a01:cb08:1b9:9600:4551:b305:2d73:bdb4) by PR2P264CA0033.FRAP264.PROD.OUTLOOK.COM (2603:10a6:101:1::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3611.20 via Frontend Transport; Tue, 24 Nov 2020 13:39:56 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 9956198e-9e76-40f6-5bff-08d8907e6e70 X-MS-TrafficTypeDiagnostic: MRXP264MB0344: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:130; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: VhZZisqwLoOU8DQ5ombMXHj0IJMKmuYKEncVyzZT9snzwLmaAGhpVbZzbuqHbfiL4TrahUs0o37frIAGdSHYd/MbRP91cnn2ey55IHrGPFm3WYe/74SomOfVz7jj1PC+DR/fnM+evY3EmCLlxqTBnHmpzPPvB+ej5k/TaJSd752Cyf1PRdO1jiz5CBa/+d1R+8IZFC6nlkLobTg4l78uMpeWvVoi31k/s1x7Yru9LYMsfSbSZqMazffgl1+gN3YFgWFpY2geaI+LwloscbIKOxNFjXBwou72UODHHXfU+h8+5tmFT17eEMx2JTRrh9IhnRu9EJ2f8ol2YNezl046kIqnFJ+/ZA4yLFIcXUGo8mcw1STjveD4S2QcuT5F65aJ X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MR2P264MB0068.FRAP264.PROD.OUTLOOK.COM; PTR:; CAT:NONE; SFS:(4636009)(346002)(39850400004)(376002)(396003)(136003)(366004)(36756003)(6666004)(107886003)(69590400008)(2616005)(5660300002)(44832011)(2906002)(478600001)(6506007)(86362001)(186003)(6512007)(16526019)(1076003)(6486002)(8936002)(52116002)(4326008)(66556008)(8676002)(66946007)(66476007)(83380400001)(316002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: dNHRdaaAgXBgf3+YDBhHkec4q1DVifEjB6U14WGj8Gd7V6Uk+8yTZcv+tkPHjZ0vHhBiCMaSkatN95BKCAMxUvU84Ct6cs8u8W5+TZTiL11vnV3xfY6r6LgknttVZumGvjj9e216ERp87LAgVQNtpr9WYCanIH2/yHTF8QaGpf3wVIJeLQE5D2WRHuE8gRC6vBHaurxqcBFR134yLcqYJmxW3BcLSl1SzRRXeSvqW0iKL4UrKLncDFE1Vsum2VOHXJtXlCv4r1OTm1VnIn4q2Q/7f6iB12rYJbRoKhgCyU38eOt8BCaK6ynF2APGgqQLsS3+FTJyg2jOIam07z57hJ+PMHhwBzE07Jqpa2y1q0caIhEwU0k7VH4evwGVlCMxpjtqcbn7+1HuAkj7Gxi5q827ODlJzJQ3/WV/YjHQWVhEauunZi7dNYuuYFtEFqi/L7n5H5NHT83UMSb1uhUWcyDdOgh/HBah4WMoDFlE29g1z10SYmWj+5XrsO/qB+rYdz5xLUk3AE+vEU0ukKkKW2bgffwzbZefOfZs8Orq9oSXx8505fMgo8cEqxYalNeQvhuu3ZzAB2OiuExMn0uZe4R0l3IsZaUJ0o84om8eTZEwA3/gcoj8Y62QVjuheLdsjD0JzHscWQSynjc3iHeLJTQUfL3QRyOuejM3zi1t3PwpeaeFbqEogX33xw51TplsazbtnGhHVSDYczMoiNXLudn3CmzUkql7RCqt4XQK1GNHIt/OQb1Bt4KFKaHa9V20gnx0a7hsadhiADB+F3vBvhMNiyt+gzQoms/xx/uLgeXZ3q/WPENIzP0aWmYfA0FNYbeK0DAXtZZvwhCcDOdee8Ex4AwFN3pMdJ1qZVViMbnQQVXqB279RSOfClyjGys+va4qZCKLiz/Ea0lpV/tX60JWGC8Vw2cvF8ocDNYLtnP7vs2/PnCpTg/HKamz6a2z8b2lWitjkRzp9fypb6c7oQ== X-OriginatorOrg: softathome.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9956198e-9e76-40f6-5bff-08d8907e6e70 X-MS-Exchange-CrossTenant-AuthSource: MR2P264MB0068.FRAP264.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Nov 2020 13:39:56.8360 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: aa10e044-e405-4c10-8353-36b4d0cce511 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: wn2xtsUj0qJBmH2qEPNzbEfx4zkQBsOMzl4jLIMZcXrWg2RKwflsMGSARNY4J7xGQWqYgNbxYR12e3/Q3a7c7o0F4BRGbzlJjLKaTgwYAsg= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MRXP264MB0344 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.102.3 at phobos.denx.de X-Virus-Status: Clean The propoerty sign-images points to images in the configuration node. But thoses images may references severals "sub-images" (for example for images loadable). This commit adds the support of severals sub-images. Signed-off-by: Philippe Reynes --- tools/image-host.c | 36 +++++++++++++++++++++--------------- 1 file changed, 21 insertions(+), 15 deletions(-) diff --git a/tools/image-host.c b/tools/image-host.c index ce829a8ec9..33a224129a 100644 --- a/tools/image-host.c +++ b/tools/image-host.c @@ -805,25 +805,31 @@ static int fit_config_get_hash_list(void *fit, int conf_noffset, image_count = 0; for (iname = prop; iname < end; iname += strlen(iname) + 1) { int image_noffset; + int index, max_index; - image_noffset = fit_conf_get_prop_node(fit, conf_noffset, - iname); - if (image_noffset < 0) { - printf("Failed to find image '%s' in configuration '%s/%s'\n", - iname, conf_name, sig_name); - if (allow_missing) - continue; + max_index = fdt_stringlist_count(fit, conf_noffset, iname); - return -ENOENT; - } + for (index = 0; index < max_index; index++) { + image_noffset = fit_conf_get_prop_node_index(fit, conf_noffset, + iname, index); - ret = fit_config_add_hash(fit, conf_name, - sig_name, node_inc, - iname, image_noffset); - if (ret < 0) - return ret; + if (image_noffset < 0) { + printf("Failed to find image '%s' in configuration '%s/%s'\n", + iname, conf_name, sig_name); + if (allow_missing) + continue; - image_count++; + return -ENOENT; + } + + ret = fit_config_add_hash(fit, conf_name, + sig_name, node_inc, + iname, image_noffset); + if (ret < 0) + return ret; + + image_count++; + } } if (!image_count) {