From patchwork Sat Apr 6 18:12:35 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Wunderlich X-Patchwork-Id: 1079528 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=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=public-files.de Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; secure) header.d=gmx.net header.i=@gmx.net header.b="C2s5TD78"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 44c4Xz0CWQz9sPn for ; Sun, 7 Apr 2019 04:12:50 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 9CBA8C21DD3; Sat, 6 Apr 2019 18:12:46 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 74B86C21CB6; Sat, 6 Apr 2019 18:12:44 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 11A31C21CB6; Sat, 6 Apr 2019 18:12:43 +0000 (UTC) Received: from mout.gmx.net (mout.gmx.net [212.227.15.18]) by lists.denx.de (Postfix) with ESMTPS id AB588C21C2C for ; Sat, 6 Apr 2019 18:12:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1554574361; bh=lld5NH+SSVAcYDKEbc+Ot7HRBvJMeVSYo8MRkTaJ/bw=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date; b=C2s5TD78WYhhPfHnLNdijG+HiEHBllwBNHY5SzhrbGGKQPxA8mCt2JqRQqqALWRYW au0QcMQbJcj2Txr8lrdqmKGHCqu0xARu56F10SDnY/AWKgI5Jki4CcXKPRKjNaGU45 5E0mipqjG8MyCUaRsaOZJO0fhpsEd5838Y8dWO0c= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from localhost.localdomain ([217.61.154.3]) by mail.gmx.com (mrgmx001 [212.227.17.190]) with ESMTPSA (Nemesis) id 0MdKDb-1hVC2M2olf-00IQju; Sat, 06 Apr 2019 20:12:41 +0200 From: Frank Wunderlich To: u-boot@lists.denx.de Date: Sat, 6 Apr 2019 20:12:35 +0200 Message-Id: <20190406181235.7666-1-frank-w@public-files.de> X-Mailer: git-send-email 2.17.1 X-Provags-ID: V03:K1:6Cnj1ZhiaRMTz+f/YafOk2+hPHuyCKvpT8agAotOREvcAVLzX3Q bnb9XhT0cwhH7zDDeSTfI97AIEcfn8ivcDygax15JAnmtFM+V8YlWF6Cwb8DR2u9D251dZc k7C5GrA3TbSURRXchzvUB9hS9ZKA8Y0dGembPGBLKkU5ILVafNwk7v+jkhs95V61igu3f05 VUoHysVGbIVxMw8Daggdg== X-UI-Out-Filterresults: notjunk:1; V03:K0:Q3C1zp/MSfk=:L02uUMBgIe8/Ism4H39/XE u3MRdj4OP0FtRIFnUoZKx7CopZUMoUReO2WlN05I7pHw1wtjovATDF493smYHJLNLG+vuv7E/ WJ0hzPbHX0d0Gt3LhVK1JOg8FNNrbG8VZzcctVlxGncMDq+r5mUYsKsInwoS3JQkM52L55Mva /OgyLgSqJ6MbjRQg5Oe0r1Npx+Vr8mXaStN8+Ikhp+4oVOK1ssXX+eqxiLrHTZgtAgGucRSGW WG5kPmuZ4O/KiUUQLJEUiw3tuktEO9yTQKgvFPl57J1hyRy6dx/gLr85dQJ9owoFwu7nA3Tlo Up6ZHgPw0I6S2D7PqKk49u9msUc28rS4Pz5Sny8LiViNxt+T36fnhzKHeaaPAu1GOI4IVjQEo EUIbfZVRXl42gSJv3cLtemTvL0uEJvKPiL+xNI6JDN1MD1vpt+9aC/p9S7U5dDBQp5NfUEGc3 /QkMfURsnV7OvOQi5f84S4vmrP3MfrnSB4kpFZenhHuTWHrATpGFwuJ6xMTiJaw6RpH6fWv+M e2nmebM7jN9Ht08QO5ehjoAS1f1pizP5C8z4A3oyjCp7JREkGFp6teNy5KbbJwJ6Y8BSYYSuJ KuCg5qjvaVfWYuejus5ZvItXhT1L1pLKxmohJdgJancOkdHrEayLpofgdSat/kXqJFoe1mJDv Cwc8ckwAK/yjZ7+6ea0evJY3rH86mmH53E8vvmK3MnvODC7V2IZ9yIZSjKajURPoirOofkd9b 2T+DbAxyVG5WzTMg/JExawXpn0yOZuUxdVSb4jHsL8OYqBtuJlRrqjtLCVBtZLxh6q+NIG9v5 sKPVnmv90Xk/rr+1UdtsGgvw54LzTnnRbmBEM/9Crvf82OhFzCBsmP6PCONZLDoQDsBs68vIT 8b9fJfEtQQEQoo078UlagYgEQGdRkypK4L/rCJyBgtZM8A7TrR3ldY7tZVVqRj Subject: [U-Boot] [PATCH] mmc: add eraseenv command X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" "mmc eraseenv" allows to erase the section on mmc where env is stored Signed-off-by: Frank Wunderlich --- cmd/mmc.c | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) -- 2.17.1 diff --git a/cmd/mmc.c b/cmd/mmc.c index 8bc3648193..b8e2c353b4 100644 --- a/cmd/mmc.c +++ b/cmd/mmc.c @@ -441,6 +441,37 @@ static int do_mmc_erase(cmd_tbl_t *cmdtp, int flag, return (n == cnt) ? CMD_RET_SUCCESS : CMD_RET_FAILURE; } + +static int do_mmc_erase_env(cmd_tbl_t *cmdtp, int flag, + int argc, char * const argv[]) +{ + struct mmc *mmc; + u32 blk, cnt, n; + + if (argc != 1) + return CMD_RET_USAGE; + + mmc = init_mmc_device(curr_device, false); + + if (!mmc) + return CMD_RET_FAILURE; + + blk = CONFIG_ENV_OFFSET / mmc->read_bl_len; + cnt = CONFIG_ENV_SIZE / mmc->read_bl_len; + + printf("\nMMC erase env: dev # %d, block # %d (0x%8x), count %d (0x%8x)", + curr_device, blk, blk * mmc->read_bl_len, + cnt, cnt * mmc->read_bl_len); + + if (mmc_getwp(mmc) == 1) { + printf("Error: card is write protected!\n"); + return CMD_RET_FAILURE; + } + n = blk_derase(mmc_get_blk_desc(mmc), blk, cnt); + printf("%d blocks erased: %s\n", n, (n == cnt) ? "OK" : "ERROR"); + + return (n == cnt) ? CMD_RET_SUCCESS : CMD_RET_FAILURE; +} #endif static int do_mmc_rescan(cmd_tbl_t *cmdtp, int flag, @@ -878,6 +909,7 @@ static cmd_tbl_t cmd_mmc[] = { #if CONFIG_IS_ENABLED(MMC_WRITE) U_BOOT_CMD_MKENT(write, 4, 0, do_mmc_write, "", ""), U_BOOT_CMD_MKENT(erase, 3, 0, do_mmc_erase, "", ""), + U_BOOT_CMD_MKENT(eraseenv, 1, 0, do_mmc_erase_env, "", ""), #endif #if CONFIG_IS_ENABLED(CMD_MMC_SWRITE) U_BOOT_CMD_MKENT(swrite, 3, 0, do_mmc_sparse_write, "", ""), @@ -940,6 +972,7 @@ U_BOOT_CMD( "mmc swrite addr blk#\n" #endif "mmc erase blk# cnt\n" + "mmc eraseenv - erase environment\n" "mmc rescan\n" "mmc part - lists available partition on current mmc device\n" "mmc dev [dev] [part] - show or set current mmc device [partition]\n"