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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 13BAEC433F5 for ; Thu, 30 Sep 2021 17:17:58 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id E0ADD6124D for ; Thu, 30 Sep 2021 17:17:56 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org E0ADD6124D Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=kontron.de Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=lists.denx.de Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 7B2B980F12; Thu, 30 Sep 2021 19:17:54 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=kontron.de 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=mysnt.onmicrosoft.com header.i=@mysnt.onmicrosoft.com header.b="LyQORTjJ"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id C5920802A1; Thu, 30 Sep 2021 19:17:52 +0200 (CEST) Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2070a.outbound.protection.outlook.com [IPv6:2a01:111:f400:7e1b::70a]) (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 93FCC80185 for ; Thu, 30 Sep 2021 19:17:49 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=kontron.de Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=frieder.schrempf@kontron.de ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PdK3Yo2ZTBsAz88Fl69nM++0wKQfTutY3dLB9X6l8kYfhnVtnfcHdwnLkTTZwxc1CJ5D6JD8uotsYfEb4ekzeTuDPmYcH+wv/4XWVueGwSjqpF2yYS/BqtMnuDOPpxuOzLAhkgjX6R48iMEIJpL/95/YQFDTZE5EZ6F5IXLNnFP7JUAgtZv1p0jTmhLZ/nmRVJ4F2DcpOv9YJfNHzviYv0mDpAXoThHiOtd8Vmv/rBgcUImf5cejSM7n1td6wsxlquTwnSeAk9UC9mE2DQmbYNFczB+rmcb9Q31bTE4vHBsHjL5lKap8yv73ybH3rG4IvPshDsuGq8U/SQAsb/83sQ== 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; bh=0SnKtq6zFcAMxAwJFbVoBOxdPbL/t1IUtNrPcBfSyL8=; b=FmgczYOh0bilKZiJWk5pZkMOU/5T0Nua2JC5nY/qvlxdSirYWit0BBXoU5i1U2mg0jKu7DE+a8ttkpg9IayHCgCEXqQEC7C19twX0F2gkdlZE4JRbLJk2yDaru41knoKL3FkirsSl/dt8jbYoRIAk0JLbecSMAT1jyNpe0p9NBiDlStgmMJjjQkZayZey+o/dcEvnS86LO5Pk5KfILCwnBSI7wM69+c3OMwKSOrOpbe4Et5yt8DkoQ6HWObZvkwe7ZLJ8HtKw7wu6Vb2MkvCYUNZR7EpELgIDX00kg7ChURIAVVqEWQOLzxZyAgu/2SfxaI0aU/64ZT67DdouzO4AA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=kontron.de; dmarc=pass action=none header.from=kontron.de; dkim=pass header.d=kontron.de; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mysnt.onmicrosoft.com; s=selector2-mysnt-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=0SnKtq6zFcAMxAwJFbVoBOxdPbL/t1IUtNrPcBfSyL8=; b=LyQORTjJyQFTTsHmsa1o2OSCjLjFV93DSktGVum/ufowwPu2sxQyeDGRSNAgCPXILJYsJDUMbJdgkibGkLwD/rukDjamIqr80sMhs0IDthGZdStZuuF0hnmyLBwIvKbBq3YjBM5p8UQlYGyPnrcoyMv0G2e3h6y385Jm2mQ9ZoE= Authentication-Results: walle.cc; dkim=none (message not signed) header.d=none;walle.cc; dmarc=none action=none header.from=kontron.de; Received: from AM0PR10MB2963.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:208:157::14) by AM0PR10MB3586.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:157::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4544.15; Thu, 30 Sep 2021 17:17:48 +0000 Received: from AM0PR10MB2963.EURPRD10.PROD.OUTLOOK.COM ([fe80::216b:62be:3272:2560]) by AM0PR10MB2963.EURPRD10.PROD.OUTLOOK.COM ([fe80::216b:62be:3272:2560%6]) with mapi id 15.20.4566.015; Thu, 30 Sep 2021 17:17:48 +0000 Message-ID: <0b725bbb-0bc6-2ce3-d861-18bbd8f34059@kontron.de> Date: Thu, 30 Sep 2021 19:17:46 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.1.1 Subject: Re: [PATCH] cmd: sf: Support unaligned flash updates with 'sf update' Content-Language: en-US To: Michael Walle , Frieder Schrempf Cc: u-boot@lists.denx.de, Heiko Thiery , Bin Meng , Jagan Teki , Pratyush Yadav , Sean Anderson , Simon Glass References: <20210930161926.2748887-1-frieder@fris.de> <92ca13e960f4e862c0fdd83373255301@walle.cc> From: Frieder Schrempf In-Reply-To: <92ca13e960f4e862c0fdd83373255301@walle.cc> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: AM0PR06CA0097.eurprd06.prod.outlook.com (2603:10a6:208:fa::38) To AM0PR10MB2963.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:208:157::14) MIME-Version: 1.0 Received: from [192.168.10.40] (89.247.44.207) by AM0PR06CA0097.eurprd06.prod.outlook.com (2603:10a6:208:fa::38) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4566.14 via Frontend Transport; Thu, 30 Sep 2021 17:17:47 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 8f32c88e-a1b0-48bd-b8ca-08d9843639a1 X-MS-TrafficTypeDiagnostic: AM0PR10MB3586: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:9508; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: gBgflf1YKSHgQKzKYWh1levem47pv71MCDqUbuJEgeFJFyxBLQyGnYwg9Q7t9LpYu7wf9on0j2ZG6gpZVh9cnOxwCHloW9uee13xdHNaBIe9Dr8FdoOBmtQl3PAC8ijx3Ul5EDyNKPJ+fHO09b4fCnX7V9NFTWUfkaxpiPp7srZz1++Da+G06FTtOPRYo71ZF3Q7f9Yj7gdItpNmDTli0iFWuX6RQmWgsi+Vr92EABT7dvkfaWNqCMvxUP9cz2aGEW0128wl2bOHCzhHESQiuMkAGxRrS1duWqmlINaI7fw++5c1sHi5khy73HLXX7txrI8nwlVhQiJH14BQuthSJ40NN302slzB6XhNZUgWqAhaYJ3qgTrwlMCn3qL85fFGn+BuLSUyoZzDYR+SwvghZJxbn2XWQo/l63j9SfA3dMaJ52gEUGzn2v/qHVBbPXbF5jxgfwKvGj5X5qX5xWjqiUBly1LtQT0qHvcAq0BxhAxUdPHRzu7FqK7tJrBMky/K/v/eOrESosFJN/AQ5hv3kU/138ux0aAVRB5XRgBfqmqgStWrxv2fh4+JvbUq+oT11eQppiSrP7OiXc05bIYvb9XpeGFaMyS31zALffjL4zKW5wINI/i0+ACDRgB6RmB17iREkC4Cr4GfkdHPeH0YweWRLN2o8CINdlwJiaZTaqUYRH4q7Rkz+UkRxM3/aKJOySGEUr6mYX3z7OlCkG2rkStOcC55JI9wNVpVyPaFj8M= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM0PR10MB2963.EURPRD10.PROD.OUTLOOK.COM; PTR:; CAT:NONE; SFS:(4636009)(366004)(26005)(16576012)(86362001)(110136005)(8676002)(31686004)(53546011)(956004)(83380400001)(2616005)(316002)(38100700002)(66556008)(508600001)(66476007)(31696002)(54906003)(8936002)(66946007)(6486002)(186003)(15650500001)(5660300002)(4326008)(2906002)(44832011)(36756003)(43740500002)(45980500001); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?aXVQOGtBV3IrN3NKaW1aRHlxZmVTNkprL1l0RGhCM3BaaWs0Zmd1UXJ6dkJx?= =?utf-8?B?Zk1rQlFNV2h6c3Y4ZmpEWExqdkpPSXlIQ3pTbDM5bHBrK2RoQy9jUGRuNlUr?= =?utf-8?B?L1BZTmJQaEJidmlzcm80aVpmampoM0FQMG5hYU42bC9WVmQ5Vm1rbTBkdW1S?= =?utf-8?B?cmZjMExPMUhtaDRrZHB1SHMzUHcrTEh2R2lmbVRDdkZsaWhERSs0aTkvTGdG?= =?utf-8?B?VU1DdzVSWFhQQXFZZlh1M2ZEQVBRZWlWUi9OcUppdWdQbkhCZThWMjM0aUhG?= =?utf-8?B?NGptTnBhaEN6UllybUk5cFlkZ1VYangxcDNjZ0c2dFJtOGphaEdqby9aaE1K?= =?utf-8?B?MXpaT2ozSmh1L1RpRkRXS1J6WU0xV1ZwUllZejE3YnRUdHVia2Q3dHBOTEhO?= =?utf-8?B?Y2dXMkNhUTZuTHlKUWNBS2dubFludERZSDdZQlFsNkdjSlUzcmxXd25vSTN0?= =?utf-8?B?NnRVNUtMbWF4cHFqbW5HK3ZaU2tzQjNaT0dYZUFUMkFybEtmcFh3TzBBODJX?= =?utf-8?B?TnBjU0hYZU5sbUFUY3ZuUmdUY0pCSUorSHR0eWxhcFpGbEtGd055a1FFS0Ez?= =?utf-8?B?U21WL2dCZTNqU3VBbzJ1UDd2SXhyT2NyL0dDck5Qd0pQKzdmUDBpOEUrM0J2?= =?utf-8?B?a2YwWjRydjZZeVdJZzJpaGVVck8zV1hWUUZ5MHZHV1NtNzR1KzVvaDAwUzZo?= =?utf-8?B?T1dQVUdtZFdlRDB0MVJBejZiZFRvTTRVb1lGdi81VS9nYjNkVnhzNDZ3V3k2?= =?utf-8?B?NnlYem9hcERITTFiNHRLZzkzckF6cy84YThaeXBSV2FTU01sb3hRTGpOVlhY?= =?utf-8?B?NUVELzVUb0VBaTBpZnJNVkdiMUdFYktibGg5REcweTE4ZHRoanBVMSszS1A1?= =?utf-8?B?K0o5cG5UOHZRWVV6Tm5ZSFNHOUdlZUtoeVluTjdJUWRma3dnWjNCeVVJN01L?= =?utf-8?B?UFpXbHIyRXltMFZMMHRwOXo3L0h4SGYxMlRKRUwrbDFhanFCUGltblFrY29z?= =?utf-8?B?NkVZNm91UGlYMm5JYVFjQmhncHhINm95bWNvb0U2dGdzdjV2MlNab3ZEUHBi?= =?utf-8?B?enZYNFBYcFRWbXZZRFlCWVFua2prM1B3eVBPUGs2K29aM04rV284bEVRV2FI?= =?utf-8?B?UWphTDlZdVRWdHBibERlMjFPM3BhNUxIMHV6UjR6bGtCbWxTZ2RnbGZ6bTJL?= =?utf-8?B?WlVGeHpybVU1L2MwaERaL1AvN2k1L2tvWHhvQjJwbzl1UGJZbW5kYkZ2VzFa?= =?utf-8?B?OXduRXA1S29ZTnVMUjBMekVEZ3d0OVg5L282U1g4cm9odlp2WjZjeUpHa0hK?= =?utf-8?B?M20vZWlWMU9HM0VUMHNab1d5UzVGK2lMMWhrdEFLK3Z3YWhPZFRNZFJrRDcz?= =?utf-8?B?WkpkU3VKM0VaWTZuZUtxTkpsZHFaV0lDaUhHbFp4SDVhL1VCUVlzUG9KRGJW?= =?utf-8?B?alhCdkJNUlBFa2hjQk5oWVNVRVV2YXcxbnBYSWc1eFQ0QWIzQ2VUNGRZVGVX?= =?utf-8?B?eDBiNFVMVGVIejNmR3gvMzIreHN4OU9PbEFrNW51NDU5bEZkejRhNysxSm5G?= =?utf-8?B?SExKNVM4Q3RUZVNVK1gxdVlhbUdSQjFXZmRsS0dISmRmb2VHdVRwcWFWV2J2?= =?utf-8?B?TklLWUhpMGxZOC9vNHhrWWZ3bnI3RkRvd3QrLys3SFpHK2FNVk1yOVNRVVZV?= =?utf-8?B?R2ZVcTFDV2Qxb0JmeUp4T1lUbC9HZGxuYzBKa3ljQjAvMVFFdnhyZkMyMjFx?= =?utf-8?Q?I9F9IrojfXfv549yuAJCh3KYNX052OY24cBNb6g?= X-OriginatorOrg: kontron.de X-MS-Exchange-CrossTenant-Network-Message-Id: 8f32c88e-a1b0-48bd-b8ca-08d9843639a1 X-MS-Exchange-CrossTenant-AuthSource: AM0PR10MB2963.EURPRD10.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Sep 2021 17:17:48.1195 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 8c9d3c97-3fd9-41c8-a2b1-646f3942daf1 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: g9I6FYYzrztrw/TnKFTM550a7M/kiGoQDnjrcskMOd1qIjlZvNS2zP2Gt1pllv7AhkR4QnudCddiTkfBCtow9uV/cC4+HWNjSxWEnumzZd8= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR10MB3586 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.103.2 at phobos.denx.de X-Virus-Status: Clean On 30.09.21 18:35, Michael Walle wrote: > Am 2021-09-30 18:19, schrieb Frieder Schrempf: >> In order to support unaligned updates, we simply read the first full >> block and check only the requested part of the block for changes. If >> necessary, the block is erased, the first (unchanged) part of the block >> is written back together with the second part of the block (updated >> data). > > I'm not sure what I should think of this. You might loose that unchanged > part if there is an power loss in the middle, even worse, you likely don't > have this part anymore because it isn't part of the data you want to write > to the flash. > > Maybe add an parameter for allow (unsafe) unaligned updates? > > Now you might argue, that with "sf erase, sf write" you can do the same > harm, to which i reply: but then it is intentional ;) Because "sf erase" > just works on sector boundaries (which isn't really checked in the command, > i just realized, but at least my driver returns EINVAL) and then the > user has to include the "unchanged part" for the arguments on the > commandline. True, but "sf update" already is "unsafe" even without supporting unaligned start offsets. The code already handles partial sector writes for the last sector in the same way (read, erase, write), which is also prone to data loss in case of power loss. So this patch in fact just adds support for partial sector updates for the first sector. It is slightly more probable to loose data, but it doesn't introduce new "unsafe" behavior. Maybe we could cover this by adding a warning to the documentation, or even printing a warning?