From patchwork Tue Nov 7 16:30:30 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Ulrich Teichert X-Patchwork-Id: 1861174 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=googlegroups.com header.i=@googlegroups.com header.a=rsa-sha256 header.s=20230601 header.b=Q2RUVYtc; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=googlegroups.com (client-ip=2a00:1450:4864:20::23a; helo=mail-lj1-x23a.google.com; envelope-from=swupdate+bncbcp5t7mrsecrbk6mvgvamgqexmpy5ga@googlegroups.com; receiver=patchwork.ozlabs.org) Received: from mail-lj1-x23a.google.com (mail-lj1-x23a.google.com [IPv6:2a00:1450:4864:20::23a]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4SPtxZ1m68z1yQg for ; Wed, 8 Nov 2023 03:30:40 +1100 (AEDT) Received: by mail-lj1-x23a.google.com with SMTP id 38308e7fff4ca-2c51d0f97e3sf57194261fa.0 for ; Tue, 07 Nov 2023 08:30:40 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1699374637; cv=pass; d=google.com; s=arc-20160816; b=DE8BkC2ZvmAoNZXHMr1ru/u5maQh3LzMm6csLqEabYg/eElqNkDOH1AK1cgE5EFxzM PSGGVzCwjw/3auwcOKmlbHvnwwnSm/Aj7305sWSagth3GI2o/xg7ft/Zr7oe90DWSQkb OZDKqlmME8APE+bwmVo/VIMoqjNGNkg2GCC1RkTXJyJS2RddOaBijfDl7UZsWktetzGW 0YeD9lRUps2vs0Uezt+uMWJFPa7R36aMApY/du1YmSq5ThGHyyJrPmvVhg8EaUFxlZTN 5/dlkkGLPgzlwEtI5x8WxDm9mRvY+e7sZXe+WSnB/REaWVbWTtLFlTJQf3K0a3FrTFP8 tcgQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:mime-version :content-transfer-encoding:content-language:accept-language :in-reply-to:references:message-id:date:thread-index:thread-topic :subject:to:from:sender:dkim-signature; bh=m5xofIHazZays1JzqKJ0rxhj6z7yu+dWPoPixYZZvIY=; fh=262T970yE3bqnMshdE4s95nQ21s3ybbkQZYvqrj76C8=; b=i8jC2zqENhXcbXHrvj2t5Z02JpQbgqdm5kXPk4ap2HPcHYuwe0n2BEtQr3orTi+YkG v/gWSA4L2ESQYIucF4vreC349EmiiJB6YKd8LxNqjaIBEdOjN+yteJ16TH0HJqCkxpD9 nNfuyRw85Oeeeph8KWOyaXhLRrZtEaGt1dYh0EGwldq4ncglpBubVBUFFsBthlpT5aLE GCqAJqnGpN/fbT2m8OY3xCk4BRep36vg8F4S5l3rh8U9js6gX18rQPwKy2cn+LC/buW0 U/0JcZ00nobbZqzamwvdSk/QvuTa0dcJY6wuoPvSSXqemM7OUE2PlxPhZ8JBcNre9LOF N2yg== ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@kumkeo.de header.s=default header.b=cjZoK3PM; spf=pass (google.com: domain of ulrich.teichert@kumkeo.de designates 91.102.14.20 as permitted sender) smtp.mailfrom=ulrich.teichert@kumkeo.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20230601; t=1699374637; x=1699979437; darn=patchwork.ozlabs.org; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:x-original-authentication-results :x-original-sender:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:to:from:sender:from:to:cc :subject:date:message-id:reply-to; bh=m5xofIHazZays1JzqKJ0rxhj6z7yu+dWPoPixYZZvIY=; b=Q2RUVYtcQ8gyrjwiIPpQY/iBfQkaOT04v+tgNeUIpeeTG9cqEcRUc3QrMqyxDmp4Qx eWRTeMod2Cd75oMzg0Ro8k3nlAUygPKDBsLh2miTCN3k2KJU7ucTMGfNGWXgZcKWdcbS L1Wy1v0Gr2vVuhnmhl7lxet7G5OGW5HKp1IiQrBHrImW8Z9GlcyHbm/Nfo3HRMooEti1 AMzjyszOtvumOvgdu/FwZflrOuZ1Ttb/ANwS25ZDaA0oANKqDRm7MtWvoZ+c85V1f1mh /eYyoUfveCVDR3p54n8NHVaFHGUoepb7IcU33GAgBFLBQZ8zeBk/a6D1Dpxih8C5AmXf eqGw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1699374637; x=1699979437; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :x-spam-checked-in-group:list-id:mailing-list:precedence :x-original-authentication-results:x-original-sender:mime-version :content-transfer-encoding:content-language:accept-language :in-reply-to:references:message-id:date:thread-index:thread-topic :subject:to:from:x-beenthere:x-gm-message-state:sender:from:to:cc :subject:date:message-id:reply-to; bh=m5xofIHazZays1JzqKJ0rxhj6z7yu+dWPoPixYZZvIY=; b=oqzBIwc+rYWsnMdhUSPJg02pPuUabq8uwpBT6FbZZDCwuluCJlbB3uI8TESXkQTqVP HHv+pwByGuDX5OUcU9PP8cCLmJfYegW2+2cH3UR4qsO2xei9MU4SNQm38YO00xuvHjxP X0rO8r1hK1O7rsfbU0bNAOCQPZJx5174N6O8g+CtdpPD/ua5f4JN7GvwjzWa3/qrn+XQ 3+7zCpbdQTM8JYKMd/8wj8P5ct9cU1aYahmiNnyRTxSLFotj8CbbRL0acHKSkkN3VS9A rBaiLS06FyXsHPfTYuJKLRUkz9E+FCncV3RLco4ljYongilmLqK4MAVST9BgmNhrR1B2 Cl/A== Sender: swupdate@googlegroups.com X-Gm-Message-State: AOJu0Yz01zxjNjMAaA3XyODn31EbZ1BwszoCXf+fDIRjRC/J1dt1VSSw InW1e46xdqfn0wvCVqdZVXs= X-Google-Smtp-Source: AGHT+IFmXDUQaQWAotfDC5uFrd3aFr9mpackWNJQix2fc3u7R0/EtoqwTM5IHMFUpW1nJqMzVnf3Yg== X-Received: by 2002:a2e:9f08:0:b0:2c5:1d9a:4dc1 with SMTP id u8-20020a2e9f08000000b002c51d9a4dc1mr24370781ljk.5.1699374636405; Tue, 07 Nov 2023 08:30:36 -0800 (PST) X-BeenThere: swupdate@googlegroups.com Received: by 2002:a2e:bc07:0:b0:2b9:6182:b0a4 with SMTP id b7-20020a2ebc07000000b002b96182b0a4ls82020ljf.2.-pod-prod-05-eu; Tue, 07 Nov 2023 08:30:34 -0800 (PST) X-Received: by 2002:a2e:b5c9:0:b0:2bd:1000:431d with SMTP id g9-20020a2eb5c9000000b002bd1000431dmr22161916ljn.10.1699374633951; Tue, 07 Nov 2023 08:30:33 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1699374633; cv=none; d=google.com; s=arc-20160816; b=V+y5MYDYkX4tcqFAUHQTKLZiA07X/Os2x+5xxS2qN+Du85BLUSVjLNAgYgQo8DRAhW Mf8ErM2PlkMhII0fCDmawupkzQzKMFSQzVTdim7Ro7N1FB6hU6PI6fa1zqv55JCDKkoW tZoS96tayZaBFYMr1g3BhjHlFYGiI2VMhAD/mwt8drfsXrUpDaqpHlzL2MfWMO5NoSIa hla0WL/uLSOoYvJgfjOuDzAJ6knLqSN9zgt9mg5f9nPdX9eUwj4OHonQXJW4rjHQ3SX8 n0BlxVeYMZr1rja5wa0y92GyDK1R2BQxPVrodIecQxZIXzV568f1zXL5cmJriKQh6ep1 ojYg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:content-transfer-encoding:content-language :accept-language:in-reply-to:references:message-id:date:thread-index :thread-topic:subject:to:from:dkim-signature; bh=aujpXFYHtVSktsTxCBJ4M1eT4hbwfnjf7iP0aTv1yqY=; fh=262T970yE3bqnMshdE4s95nQ21s3ybbkQZYvqrj76C8=; b=rlX603gceCymuErrcoKXufvuAye+yiqv/NGwNpOQsi9aPQ/A2wLR6wvM3zUkzVaLHH D15pRN/V4Onierb38Je0S3EbRkm/5QVHZq5KhglYRkp5CfWSIADyTVNr2MwkRA/pn6Pj mgFwzauX9IRNzwzDo/CGzsC/Vrqja5o3y0wx2HjcupRrVsUcR3AIomsQMJkIVA6wOea/ 1DCR6TkLzitwNsHbr/c6AnjFv67bn8ElAmWWhL+j3ebK95WcR2dn2BDTwUJKro0dbMa7 pYz9ex4HLFIXBHWEw0ytwUr9oA/oWH8/QGrhGb9NnNOOSrzjADaLDph0/rFmBpXVxqQf 90Fg== ARC-Authentication-Results: i=1; gmr-mx.google.com; dkim=pass header.i=@kumkeo.de header.s=default header.b=cjZoK3PM; spf=pass (google.com: domain of ulrich.teichert@kumkeo.de designates 91.102.14.20 as permitted sender) smtp.mailfrom=ulrich.teichert@kumkeo.de Received: from mail2.berlinercloud.net (mail2.berlinercloud.net. [91.102.14.20]) by gmr-mx.google.com with ESMTPS id w9-20020a2e9bc9000000b002bfbc15cfefsi665711ljj.6.2023.11.07.08.30.32 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 07 Nov 2023 08:30:32 -0800 (PST) Received-SPF: pass (google.com: domain of ulrich.teichert@kumkeo.de designates 91.102.14.20 as permitted sender) client-ip=91.102.14.20; Received: from mail2.berlinercloud.net (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id A0A5EB4092 for ; Tue, 7 Nov 2023 17:30:31 +0100 (CET) Received: from mail2.berlinercloud.net (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 959D9B408F for ; Tue, 7 Nov 2023 17:30:31 +0100 (CET) Received: from mail.kumkeo.de (unknown [172.18.20.16]) by mail2.berlinercloud.net (Postfix) with ESMTPS for ; Tue, 7 Nov 2023 17:30:31 +0100 (CET) Received: from kumex2.kumkeo.de (172.18.20.16) by kumex2.kumkeo.de (172.18.20.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.34; Tue, 7 Nov 2023 17:30:30 +0100 Received: from kumex2.kumkeo.de ([fe80::6572:2554:d711:1795]) by kumex2.kumkeo.de ([fe80::6572:2554:d711:1795%3]) with mapi id 15.01.2507.034; Tue, 7 Nov 2023 17:30:30 +0100 From: Ulrich Teichert To: "swupdate@googlegroups.com" Subject: [swupdate] [PATCH V3]: Allow flash updates to proceed without decompressed-size set Thread-Topic: [PATCH V3]: Allow flash updates to proceed without decompressed-size set Thread-Index: AQHaEZe5j//94fZrJkGThHJSeGQP8g== Date: Tue, 7 Nov 2023 16:30:30 +0000 Message-ID: <889d91ef08604e9fb6d94ef82679fa92@kumkeo.de> References: In-Reply-To: Accept-Language: de-DE, en-US Content-Language: de-DE X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [213.61.103.52] x-tm-as-product-ver: SMEX-14.0.0.3152-9.1.1006-27984.000 x-tm-as-result: No-10--4.299400-8.000000 x-tmase-matchedrid: q6+TWfRxf4cC+6mJa2j6YYmfV7NNMGm+LNqec/60wiT7pm6cyC2X4AzK NF0GZctoxRNugLwSmYUgcWVyIrGbbiSBigu/eRn230kDaWZBE1T5UnqVnIHSz54Q+L3BXIWu5k7 Ly+axz+kvRKyxxa6FSewDtwodMHVjoYY7KoErjW8ReM8i8p3vgEyQ5fRSh265r2Pto2emO2U9vH Qc8DvXUAol8XYt5k6PazVjfNhqisGdyXrS98sFg6ncG1vVsfbQk81NC2fJE+S/L0AEhBprWaPFj JEFr+olSXhbxZVQ5H+OhzOa6g8KrattgAnW3BAoJaEtLS4z/ZyD/nPzeLWxlKkClNX1iTdbM/Ns 6jLUOPwfEs9o54FYsZyZb6jNh/C1NVkXqLYmbtybBTTqqph05DWTyRMhZS7mnHoSwICqTIk40jE nOcAg6My5qAmUHtRSGymU0gOaQSM= x-tm-as-user-approved-sender: No x-tm-as-user-blocked-sender: No x-tmase-result: 10--4.299400-8.000000 x-tmase-version: SMEX-14.0.0.3152-9.1.1006-27984.000 x-tm-snts-smtp: 5F260BA4D77BA25238F9E66C45395C44A508F8B94AF316DDF8E4552235E4CCD22000:9 x-c2processedorg: c2164c60-77f9-4731-9233-294e5719f64e MIME-Version: 1.0 X-TM-AS-GCONF: 00 X-Original-Sender: ulrich.teichert@kumkeo.de X-Original-Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@kumkeo.de header.s=default header.b=cjZoK3PM; spf=pass (google.com: domain of ulrich.teichert@kumkeo.de designates 91.102.14.20 as permitted sender) smtp.mailfrom=ulrich.teichert@kumkeo.de Precedence: list Mailing-list: list swupdate@googlegroups.com; contact swupdate+owners@googlegroups.com List-ID: X-Spam-Checked-In-Group: swupdate@googlegroups.com X-Google-Group-Id: 605343134186 List-Post: , List-Help: , List-Archive: , List-Unsubscribe: , For backward compatibility, allow flash updates to proceed without the decompression-size property set. In that case, the flash device is erased from the offset until its end. Signed-off-by: Ulrich Teichert --- Mit freundlichen Grüßen / Kind regards Dipl.-Inform. Ulrich Teichert Senior Software Developer kumkeo GmbH Heidenkampsweg 82a 20097 Hamburg Germany T: +49 40 2846761-0 F: +49 40 2846761-99 ulrich.teichert@kumkeo.de www.kumkeo.de Amtsgericht Hamburg / Hamburg District Court, HRB 108558 Geschäftsführer / Managing Director: Dipl.-Ing. Bernd Sager; Dipl.-Ing. Sven Tanneberger, MBA diff --git a/corelib/mtd-interface.c b/corelib/mtd-interface.c index 22e86bd..5d9e708 100644 --- a/corelib/mtd-interface.c +++ b/corelib/mtd-interface.c @@ -217,6 +217,20 @@ int get_mtd_from_name(const char *s) return -1; } +long long get_mtd_size(int mtdnum) +{ + struct flash_description *flash = get_flash_info(); + struct mtd_dev_info dev_info; + + int err = mtd_get_dev_info1(flash->libmtd, mtdnum, &dev_info); + if (err != 0) { + ERROR("Could not get MTD %d info: %d, %d", mtdnum, err, errno); + return -ENODEV; + } + + return dev_info.size; +} + void ubi_init(void) { struct flash_description *nand = get_flash_info(); diff --git a/handlers/flash_handler.c b/handlers/flash_handler.c index 3cca02b..2ede6e3 100644 --- a/handlers/flash_handler.c +++ b/handlers/flash_handler.c @@ -310,8 +310,14 @@ static int flash_write_nor(int mtdnum, struct img_type *img) long long size = get_output_size(img, true); if (size < 0) { - ERROR("Failed to determine output size, bailing out."); - return -1; + size = get_mtd_size(mtdnum); + if (size < 0) { + ERROR("Could not get MTD %d device size", mtdnum); + return -ENODEV; + } + + WARN("decompression-size not set, erasing flash device %s from %lld to %lld", + img->device, img->seek, size); } if (flash_erase_sector(mtdnum, img->seek, size)) { ERROR("Failed to erase sectors on /dev/mtd%d (start: %llu, size: %lld)", diff --git a/include/flash.h b/include/flash.h index 9a055a7..69a0e99 100644 --- a/include/flash.h +++ b/include/flash.h @@ -50,6 +50,7 @@ int scan_mtd_devices (void); void mtd_cleanup (void); int get_mtd_from_device(char *s); int get_mtd_from_name(const char *s); +long long get_mtd_size(int mtdnum); int flash_erase(int mtdnum); int flash_erase_sector(int mtdnum, off_t start, size_t size);