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 5E7F9C433EF for ; Fri, 22 Apr 2022 15:47:28 +0000 (UTC) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 6055A83DCE; Fri, 22 Apr 2022 17:47:12 +0200 (CEST) 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="mK+QElOs"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 97E1783C54; Fri, 22 Apr 2022 17:46:59 +0200 (CEST) Received: from FRA01-PR2-obe.outbound.protection.outlook.com (mail-pr2fra01on062d.outbound.protection.outlook.com [IPv6:2a01:111:f400:7e18::62d]) (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 A943D83D79 for ; Fri, 22 Apr 2022 17:46:55 +0200 (CEST) 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=IRY70+Uy3vGX/KxATIXn7fq/5cMy2GW0rxy+5kFXj5DImSCEJmtm4Qv5gLC3SvzdVRj2Uq/0O4M74g7DrzvQku1piFlAL7C+VmpKq+DrTtSAoczKsold3jNfw2bm7fGJOK0fbmpDN1dNeHvOnKHjxNVnEMzS3ohLAgBKv7UuSiYN0ybvDgWoY8v54hIlVsLoYGTfjraIaz7fBecsYIfalWNv9OQuG9ZKuXuKEW7ikVuHibRe2bfrxxSX5LevssoDHkCuB/xhsYL/wZwEwPDLmmR8HoiGoBy1lptwmOu38ujpOEgwnJ9MVHMdAFUdsYzDw7oADYmZ28FdYRuBC7TxSg== 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=3+wRa7hzKvHI7cZiYzcri7yeOZNyZOhgk3nLI7+VlwA=; b=GzyoWMkRhOUbpeedml1au2Oj5f7B89Z6+FCT99XmiYStw8G2diBupRHkH4KbyU0pNNtOffFDrqfGNQAEVxXBNlLxB2Wxav10X31JYF0/Y9NYpUTWjZEiZXoykm1kNMl0hZ9sA2D20JwiR321teZcXbJrS17XJWvUj5CysJqfoKWhESUDdzyySfiox+5FOK4OS8Bs4P1hSj0bk1fDZhjYd+AbAPyC8jw2PXrle6FClw7t5yZUTTLkpIq9J7Y1G+QsjucVXUEs8ddSA0/AGR8pEr3iESVq4lZ7drgs9Yd3nb3mCymzvcmI3hG1E9tp9DpCceH9x4wSm69zM9yhymL5Ow== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 149.6.166.170) smtp.rcpttodomain=chromium.org smtp.mailfrom=softathome.com; dmarc=bestguesspass action=none header.from=softathome.com; dkim=none (message not signed); 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=3+wRa7hzKvHI7cZiYzcri7yeOZNyZOhgk3nLI7+VlwA=; b=mK+QElOsRszZxuEFj9CaUiceaMkz5jirtCyI64hi1wmOzoLoxe7UZ0GfdJwTt+uCCBFiCSUm4NK7W5mmqHAqI1lpx91dxULHtrt14YFCqRO00Rr4kKdbvdCFGt4U4i3xHkDj7KxLBZae593CjmDHd5u8eDgAd0/vqcVoijZ7X9shGkha/2+UmvErLvQsQ2SCnkc+YSsl96CGZbGImdnRi/hmunlUV/8qVcVLKx8+FN+hp5O3TaK/x9/fjnnk01Qc8TRC1y8aiKjUCjYZx+hE9Pf07wV0gtK+LK/lsbmdD+MAUED3TledNoLyLrfSIprucDinZBQrxRVOrVLmDu8Q7A== Received: from PR3PR09CA0012.eurprd09.prod.outlook.com (2603:10a6:102:b7::17) by MR1P264MB3217.FRAP264.PROD.OUTLOOK.COM (2603:10a6:501:3a::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5186.14; Fri, 22 Apr 2022 15:46:54 +0000 Received: from MR2FRA01FT013.eop-fra01.prod.protection.outlook.com (2603:10a6:102:b7:cafe::10) by PR3PR09CA0012.outlook.office365.com (2603:10a6:102:b7::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5186.13 via Frontend Transport; Fri, 22 Apr 2022 15:46:53 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 149.6.166.170) smtp.mailfrom=softathome.com; dkim=none (message not signed) header.d=none;dmarc=bestguesspass action=none header.from=softathome.com; Received-SPF: Pass (protection.outlook.com: domain of softathome.com designates 149.6.166.170 as permitted sender) receiver=protection.outlook.com; client-ip=149.6.166.170; helo=proxy.softathome.com; Received: from proxy.softathome.com (149.6.166.170) by MR2FRA01FT013.mail.protection.outlook.com (10.152.50.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5186.14 via Frontend Transport; Fri, 22 Apr 2022 15:46:53 +0000 Received: from sah1lpt571.softathome.com (unknown [192.168.72.32]) by proxy.softathome.com (Postfix) with ESMTPSA id 10E55200FC; Fri, 22 Apr 2022 17:46:53 +0200 (CEST) From: Philippe Reynes To: sjg@chromium.org Cc: u-boot@lists.denx.de, Philippe Reynes Subject: [PATCH 2/3] cmd: gpt: add subcommand repair Date: Fri, 22 Apr 2022 17:46:49 +0200 Message-Id: <20220422154650.160435-3-philippe.reynes@softathome.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220422154650.160435-1-philippe.reynes@softathome.com> References: <20220422154650.160435-1-philippe.reynes@softathome.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email Content-Type: text/plain X-MS-Office365-Filtering-Correlation-Id: 8bd02beb-1d10-4c81-6589-08da247752be X-MS-TrafficTypeDiagnostic: MR1P264MB3217: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: Zb5VIUiZvdS4ifUHR7G7v8jgfrVTawMUOojQo/pl8tGryLALqSZUd/TTkJN9s+vpq6zKU6HzpX1nMNVz2i1/1AuI8vhmm5l2lW0mO0ZQRF/tFClcoR0OepIwzzzbgoodwxvt9nJqRoxCHfSiZdXv2cdNUzrBgsOjmmT4rR54bbuuMpxH43bjaRqbXNlHvYWdn5WrH7LvW/LlWo8INhTLdwkMm+1Z2nVtqA4n9sCvVkaLYVbGusOJvFtntnpAin9aEmVLu2J0It4rv9WtIZgUPgOhX4qpGyNP+geoiYtdFCN7NsiehO03FevGv1s/EFCyDFVimANsHPouowHyLKLVNkD9Ym9gHuluqCfUkxm+qQ51LENWqxaCKY34rKVMJetWFR6O+oipipXh9iyxLt6h6yb0Yq+V2vVjIs3uUpkHfyx9mmBz0cPRTNXgA7QYn8X3VqUOdvDunu/0AzxiNzuU4u0/ALBD/exqSyiL6Rsqaqtqo5CR69XseRmsTiLhXyRUcKEL657xUQW0OHbiq1g1bgmw9PxbtaUIqECrLEj9b7L0S+SgLSJYkoGY2JdPGjHaBY8hgIjuSe2WpXfOZXI/YKaah5RDhwWHfZgLlcl+U7JCW3Q1Rxf6d+aSEGfL2fwEG2jEAZs9TRQTZKUWHNe22cHX1G+0sh2bo67jYSWos/kIzZf/F3VfQ+FIv4QFCKGUTKPlsztyc9V6W2s47hi0og== X-Forefront-Antispam-Report: CIP:149.6.166.170; CTRY:FR; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:proxy.softathome.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230001)(4636009)(36840700001)(46966006)(40470700004)(6916009)(316002)(5660300002)(40460700003)(6966003)(8676002)(8936002)(82310400005)(4326008)(508600001)(44832011)(36756003)(2906002)(6266002)(26005)(336012)(6666004)(426003)(7696005)(107886003)(82960400001)(1076003)(2616005)(186003)(36860700001)(86362001)(83380400001)(81166007)(47076005)(70586007)(356005)(70206006)(36900700001); DIR:OUT; SFP:1101; X-OriginatorOrg: softathome.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Apr 2022 15:46:53.3483 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 8bd02beb-1d10-4c81-6589-08da247752be X-MS-Exchange-CrossTenant-Id: aa10e044-e405-4c10-8353-36b4d0cce511 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=aa10e044-e405-4c10-8353-36b4d0cce511; Ip=[149.6.166.170]; Helo=[proxy.softathome.com] X-MS-Exchange-CrossTenant-AuthSource: MR2FRA01FT013.eop-fra01.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MR1P264MB3217 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 Adds a sub-command repair to the command gpt that allow to repair a corrupted gpt table. If the both gpt table (primary and backup) are valid, then the command does nothing. Signed-off-by: Philippe Reynes --- cmd/gpt.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/cmd/gpt.c b/cmd/gpt.c index 1c0525fbf6..007a68eaa7 100644 --- a/cmd/gpt.c +++ b/cmd/gpt.c @@ -586,6 +586,15 @@ err: return errno; } +static int gpt_repair(struct blk_desc *blk_dev_desc) +{ + int ret = 0; + + ret = gpt_repair_headers(blk_dev_desc); + + return ret; +} + static int gpt_default(struct blk_desc *blk_dev_desc, const char *str_part) { int ret; @@ -997,7 +1006,10 @@ static int do_gpt(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) return CMD_RET_FAILURE; } - if ((strcmp(argv[1], "write") == 0) && (argc == 5)) { + if (strcmp(argv[1], "repair") == 0) { + printf("Repairing GPT: "); + ret = gpt_repair(blk_dev_desc); + } else if ((strcmp(argv[1], "write") == 0) && (argc == 5)) { printf("Writing GPT: "); ret = gpt_default(blk_dev_desc, argv[4]); } else if ((strcmp(argv[1], "verify") == 0)) { @@ -1036,6 +1048,8 @@ U_BOOT_CMD(gpt, CONFIG_SYS_MAXARGS, 1, do_gpt, " Restore or verify GPT information on a device connected\n" " to interface\n" " Example usage:\n" + " gpt repair mmc 0\n" + " - repair the GPT on the device\n" " gpt write mmc 0 $partitions\n" " - write the GPT to device\n" " gpt verify mmc 0 $partitions\n" -- 2.25.1