From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 69CAFC43334 for ; Mon, 20 Jun 2022 12:53:31 +0000 (UTC) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 5DA958122E; Mon, 20 Jun 2022 14:53:29 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; unprotected) header.d=amd.com header.i=@amd.com header.b="PZbz0frw"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 162738120C; Mon, 20 Jun 2022 14:53:28 +0200 (CEST) Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2062f.outbound.protection.outlook.com [IPv6:2a01:111:f400:7e8a::62f]) (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 2986B8006E for ; Mon, 20 Jun 2022 14:53:25 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: phobos.denx.de; spf=fail smtp.mailfrom=michal.simek@amd.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=f0KfoogPcQTGNW5PU/0+qVnMF34IoB5eWkhxZ/8neqbH0jitO7Fe+TyerKmFo7HKbDR8L9GTnq9Jivd2qhpg+x2yNiC2Xsr5nwyNSeKotlYIOy9/jYfsHfg2R7l3PDdd+k3RAM30vEOJgYJkXDGH4o90J9dGudXnzbrkjHFoBPet2wwI9TjW5htyCXBaMSLkYymeDlYO377Nc3Z4+UoAZ4rYF0HnNyekRkwJQ3LAYmGc/4usjfwzW/f4v2/VZaBBQagjXPxDo48ZzKq3t8RZRM7ol1Tz5D0z3ycqETX7GVvuxsusS/mJS5b8rHYZcdoH4fwcWl9rI3IV9ntvMHztMA== 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=9SY0J2JXZ++TwhbEo3tpgekGVQe1Dh8FR4ksnqUVNrU=; b=Qi+GTs/0VqB+s07vT68JNNCIDjA7nuR2rSPcH0aJJv+w8MQq9J4jqCod5ur/L5CrTPCivyypj3rMuHJQpK8CqFsOUMM5cATQiYvcE5543TSdDV8ESMb0nehxO/XlLjxielLQZ5AVcyKUwkkjaCQ87TcLZO6nAz5jVUl2a6etz3zefAABeDlTHdzvVo3P8StfvYuxfi7rlc3w7FW25A3b97JfFfJgP+smVgPVrK3pJ+ts1u8Ym+4bn2Icyx5V274CRuuf8Nhs+49IU5CRWxu3xC5fE7OBIMvUSMu0qOnQd3y4DEeY4JqLw5FXI8fy3peF/X4Erw1dSl0xYqMQDRMYew== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=linaro.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=9SY0J2JXZ++TwhbEo3tpgekGVQe1Dh8FR4ksnqUVNrU=; b=PZbz0frwA+cMmJ34NS4IV5/sg34/12w4ms28Uw25/68+lM5maBEyf4vxrx1TeMahWlPleWsCLK82fU63sXfUoVVq8GoSHlOfInuylb3lsMdUuhuQonitq66AzDM7mCX17S89P8UofolXNvs7uvjYwEiODukZ59hBUxGtsioTpn0= Received: from BN1PR10CA0011.namprd10.prod.outlook.com (2603:10b6:408:e0::16) by MN2PR12MB3150.namprd12.prod.outlook.com (2603:10b6:208:c7::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5353.15; Mon, 20 Jun 2022 12:53:18 +0000 Received: from BN8NAM11FT062.eop-nam11.prod.protection.outlook.com (2603:10b6:408:e0:cafe::c6) by BN1PR10CA0011.outlook.office365.com (2603:10b6:408:e0::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5353.14 via Frontend Transport; Mon, 20 Jun 2022 12:53:18 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BN8NAM11FT062.mail.protection.outlook.com (10.13.177.34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.5353.14 via Frontend Transport; Mon, 20 Jun 2022 12:53:17 +0000 Received: from [10.254.241.52] (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.28; Mon, 20 Jun 2022 07:53:13 -0500 Message-ID: <91d9cab7-04fb-4463-c513-3e6eee1fe715@amd.com> Date: Mon, 20 Jun 2022 14:53:11 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.10.0 Subject: Re: [PATCH v5 10/23] FWU: cmd: Add a command to read FWU metadata Content-Language: en-US To: Sughosh Ganu , CC: Heinrich Schuchardt , Ilias Apalodimas , Takahiro Akashi , Patrick Delaunay , Patrice Chotard , Simon Glass , Bin Meng , Tom Rini , Etienne Carriere , Jassi Brar References: <20220609123010.1017463-1-sughosh.ganu@linaro.org> <20220609123010.1017463-11-sughosh.ganu@linaro.org> From: Michal Simek In-Reply-To: <20220609123010.1017463-11-sughosh.ganu@linaro.org> Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: c181b2cb-789f-4d99-6a0c-08da52bbd900 X-MS-TrafficTypeDiagnostic: MN2PR12MB3150: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: ULi4L5wuE6V0bDP9I4mcDak7UJRdTws8Uvylp5lPKHjU7XTYw5b6qnBaBbloNbTx15TZNh3M39NszMsVaiB4pRW1XeB4Ruok09vjRf1UH8qJfCnTD92e0HFWT2tXV6tfEcbCP32AUyEZfVEhva4nlLi/KWJimlAaVqfnzbcSHwzW7AbHWBF+FTBE4Np+HsairXjB7576ApN/heXsTmpC4eapDNegKDA4CqX4QQTc+yFfQ0IDn6R23As2VNUSMAPRhU8ba84Z3iMe4od7W3sosAlFwTlJ+bIVh5TAKihl36iK4MoAArDYXRTTTDZuYHvb2+3zPhgTj1/uww24/M6TT9PYW6fP1SRSVZQm5qZKZaf5Wp3ljrW4l1mt6i0XVh/kB1UeSC9r20+ZpSEvF1IBJHYhV3C2U140nOWdjXThdOrRKM6li5WSuecs4J8KZn9elq+7BbdtKhuIyIeyFU0lYA6UoIeuhSkZ94QNhQs3WSAeMdaHhSzZRR3pX6gTkmyjOahdF2HkW8gNvfLdowtNNelYDYHrXCAA9y5KfgIvYKUWxIjpW4YnoYUNlRZUS7aSk2mMItzLjtbwHhxmrkcr06NL67w2xpWUAX4mJ/6g40Ignjkg59hkCHxVX906TkpbZxmPkooBrM/l3vWXRXlsc0utGE7A3PW959hp+5STb7oEL+YC3mo2eDmgga3ADUTGgoB0T2YhtVdSY2mybvbZdIRGyXG0YhzISVJL3yGGh7gCc9MF9o+U0Viy4n9MKf8u X-Forefront-Antispam-Report: CIP:165.204.84.17; CTRY:US; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:SATLEXMB04.amd.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230016)(4636009)(40470700004)(46966006)(36840700001)(498600001)(8936002)(110136005)(54906003)(53546011)(16576012)(316002)(26005)(36756003)(8676002)(31686004)(44832011)(2616005)(356005)(82310400005)(47076005)(186003)(7416002)(336012)(83380400001)(70206006)(426003)(16526019)(70586007)(86362001)(5660300002)(36860700001)(2906002)(4326008)(40460700003)(81166007)(31696002)(36900700001)(43740500002); DIR:OUT; SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jun 2022 12:53:17.8766 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c181b2cb-789f-4d99-6a0c-08da52bbd900 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d; Ip=[165.204.84.17]; Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BN8NAM11FT062.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB3150 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.6 at phobos.denx.de X-Virus-Status: Clean On 6/9/22 14:29, Sughosh Ganu wrote: > Add a command to read the metadata as specified in the FWU > specification and print the fields of the metadata. > > Signed-off-by: Sughosh Ganu > --- > cmd/Kconfig | 7 +++++ > cmd/Makefile | 1 + > cmd/fwu_mdata.c | 74 +++++++++++++++++++++++++++++++++++++++++++++++++ > 3 files changed, 82 insertions(+) > create mode 100644 cmd/fwu_mdata.c > > diff --git a/cmd/Kconfig b/cmd/Kconfig > index 09193b61b9..275becd837 100644 > --- a/cmd/Kconfig > +++ b/cmd/Kconfig > @@ -144,6 +144,13 @@ config CMD_CPU > internal name) and clock frequency. Other information may be > available depending on the CPU driver. > > +config CMD_FWU_METADATA > + bool "fwu metadata read" > + depends on FWU_MULTI_BANK_UPDATE > + default y if FWU_MULTI_BANK_UPDATE > + help > + Command to read the metadata and dump it's contents > + > config CMD_LICENSE > bool "license" > select BUILD_BIN2C > diff --git a/cmd/Makefile b/cmd/Makefile > index 5e43a1e022..259a93bc65 100644 > --- a/cmd/Makefile > +++ b/cmd/Makefile > @@ -76,6 +76,7 @@ obj-$(CONFIG_CMD_FPGA) += fpga.o > obj-$(CONFIG_CMD_FPGAD) += fpgad.o > obj-$(CONFIG_CMD_FS_GENERIC) += fs.o > obj-$(CONFIG_CMD_FUSE) += fuse.o > +obj-$(CONFIG_CMD_FWU_METADATA) += fwu_mdata.o > obj-$(CONFIG_CMD_GETTIME) += gettime.o > obj-$(CONFIG_CMD_GPIO) += gpio.o > obj-$(CONFIG_CMD_HVC) += smccc.o > diff --git a/cmd/fwu_mdata.c b/cmd/fwu_mdata.c > new file mode 100644 > index 0000000000..bc20ca26a3 > --- /dev/null > +++ b/cmd/fwu_mdata.c > @@ -0,0 +1,74 @@ > +/* SPDX-License-Identifier: GPL-2.0+ */ > +/* > + * Copyright (c) 2022, Linaro Limited > + */ > + > +#include > +#include > +#include > +#include > +#include > +#include > +#include > + > +#include > + > +static void print_mdata(struct fwu_mdata *mdata) > +{ > + int i, j; > + struct fwu_image_entry *img_entry; > + struct fwu_image_bank_info *img_info; > + u32 nimages, nbanks; > + > + printf("\tFWU Metadata\n"); > + printf("crc32: %#x\n", mdata->crc32); > + printf("version: %#x\n", mdata->version); > + printf("active_index: %#x\n", mdata->active_index); > + printf("previous_active_index: %#x\n", mdata->previous_active_index); > + > + nimages = CONFIG_FWU_NUM_IMAGES_PER_BANK; > + nbanks = CONFIG_FWU_NUM_BANKS; > + printf("\tImage Info\n"); > + for (i = 0; i < nimages; i++) { > + img_entry = &mdata->img_entry[i]; > + printf("\nImage Type Guid: %pUL\n", &img_entry->image_type_uuid); > + printf("Location Guid: %pUL\n", &img_entry->location_uuid); > + for (j = 0; j < nbanks; j++) { > + img_info = &img_entry->img_bank_info[j]; > + printf("Image Guid: %pUL\n", &img_info->image_uuid); > + printf("Image Acceptance: %#x\n", img_info->accepted); > + } > + } > +} > + > +int do_fwu_mdata_read(struct cmd_tbl *cmdtp, int flag, > + int argc, char * const argv[]) > +{ > + struct udevice *dev; > + int ret = CMD_RET_SUCCESS; > + struct fwu_mdata *mdata = NULL; > + > + if (uclass_get_device(UCLASS_FWU_MDATA, 0, &dev) || !dev) { > + log_err("Unable to get FWU metadata device\n"); > + return CMD_RET_FAILURE; > + } > + > + ret = fwu_get_mdata(&mdata); > + if (ret < 0) { > + log_err("Unable to get valid FWU metadata\n"); > + ret = CMD_RET_FAILURE; > + goto out; > + } I think here would be a need to also check data you get back. I am playing with it and if I rewrite one copy and second copy is different I don't get any error message and I think it is wrong. You should IMHO use mdata_check hooks to check that what you get is correct and aligned. Thanks, Michal