From mboxrd@z Thu Jan 1 00:00:00 1970 Delivery-date: Fri, 25 Aug 2023 12:24:13 +0200 Received: from metis.ext.pengutronix.de ([2001:67c:670:201:290:27ff:fe1d:cc33]) by lore.white.stw.pengutronix.de with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1qZTzC-008LFb-PV for lore@lore.pengutronix.de; Fri, 25 Aug 2023 12:24:13 +0200 Received: from bombadil.infradead.org ([2607:7c80:54:3::133]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1qZTzA-0005qj-HR for lore@pengutronix.de; Fri, 25 Aug 2023 12:24:13 +0200 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Transfer-Encoding: MIME-Version:References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From: Reply-To:Content-Type:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=g0yySOU/lmALowGP8gnWoMOB0wKAY4QscgrKWez7f/E=; b=Vyd02Rhsnjs+5caRQBVOWxQEEZ nlzcL3n0K4jiH+TK2sktPIvMl+RP3D324IZvq1SBkBDbDQJ5BXIkfp89M+CAhCsIWsdU9RAbLygDT 0FRJKvJNTMeEYrjH+O2ATpfSbWlkyu4yd94+65YYk+ruiAvCVPox26lDIfIxfLRvIJaZysMpGNm1e ytKiMx3wxKAuRiCBW3Io1ZPUTuIgbuMVImelevxC7E64PMX3448Jn3Ip8lUn8XEYZ+6If4u8hONZ0 hyIqMBsDxnreF9fNhEH7d6FT2zyZ0f85LeLUYi7OgOj0hmqHwaK9KCIXxBtVLtbGhgz1QNH7/0sle S4lhVijA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qZTy1-004oGf-2t; Fri, 25 Aug 2023 10:23:01 +0000 Received: from metis.ext.pengutronix.de ([2001:67c:670:201:290:27ff:fe1d:cc33]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qZTxy-004oFh-1B for barebox@lists.infradead.org; Fri, 25 Aug 2023 10:22:59 +0000 Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1qZTxu-0005iq-NW; Fri, 25 Aug 2023 12:22:54 +0200 Received: from [2a0a:edc0:0:1101:1d::54] (helo=dude05.red.stw.pengutronix.de) by drehscheibe.grey.stw.pengutronix.de with esmtp (Exim 4.94.2) (envelope-from ) id 1qZTxt-001UMf-Sf; Fri, 25 Aug 2023 12:22:53 +0200 Received: from afa by dude05.red.stw.pengutronix.de with local (Exim 4.96) (envelope-from ) id 1qZTxt-00HaMN-18; Fri, 25 Aug 2023 12:22:53 +0200 From: Ahmad Fatoum To: barebox@lists.infradead.org Cc: Christian Eggers , Ahmad Fatoum Date: Fri, 25 Aug 2023 12:22:46 +0200 Message-Id: <20230825102246.4189465-2-a.fatoum@pengutronix.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230825102246.4189465-1-a.fatoum@pengutronix.de> References: <20230825102246.4189465-1-a.fatoum@pengutronix.de> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230825_032258_403302_32CF4667 X-CRM114-Status: GOOD ( 14.56 ) X-BeenThere: barebox@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "barebox" X-SA-Exim-Connect-IP: 2607:7c80:54:3::133 X-SA-Exim-Mail-From: barebox-bounces+lore=pengutronix.de@lists.infradead.org X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on metis.ext.pengutronix.de X-Spam-Level: X-Spam-Status: No, score=-4.9 required=4.0 tests=AWL,BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED,SPF_HELO_NONE,SPF_NONE autolearn=unavailable autolearn_force=no version=3.4.2 Subject: [PATCH 2/2] FIT: do not decompress ramdisks even if asked X-SA-Exim-Version: 4.2.1 (built Wed, 08 May 2019 21:11:16 +0000) X-SA-Exim-Scanned: Yes (on metis.ext.pengutronix.de) Linux will decompress its own ramdisk, so a well-formed ITS would specify compression = "none", so the bootloader doesn't unpack the ramdisk and the kernel takes care of it. Some older versions of the Yocto kernel-fitimage.bbclass did populate compression != "none" for ramdisks, so now barebox will fail to boot the FIT images generated by them. Fix this issue by not acting on the compression property when the image in question is a ramdisk. We still print a warning, so users can fix their ITS. This aligns us with U-Boot's behavior[1]. [1]: https://git.yoctoproject.org/poky/commit/?h=kirkstone&id=2c58079222310 [2]: https://github.com/u-boot/u-boot/commit/bddd985734653c366c8da073650930 Fixes: 2ab6780b80e3 ("FIT: add first support for compressed images") Reported-by: Christian Eggers Signed-off-by: Ahmad Fatoum --- common/image-fit.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/common/image-fit.c b/common/image-fit.c index 9ceebde02931..0352dc5cbd0c 100644 --- a/common/image-fit.c +++ b/common/image-fit.c @@ -565,6 +565,7 @@ static void fit_uncompress_error_fn(char *x) } static int fit_handle_decompression(struct device_node *image, + const char *type, const void **data, int *data_len) { @@ -576,6 +577,12 @@ static int fit_handle_decompression(struct device_node *image, if (!compression || !strcmp(compression, "none")) return 0; + if (!strcmp(type, "ramdisk")) { + pr_warn("compression != \"none\" for ramdisks is deprecated," + " please fix your .its file!\n"); + return 0; + } + if (!IS_ENABLED(CONFIG_UNCOMPRESS)) { pr_err("image has compression = \"%s\", but support not compiled in\n", compression); @@ -652,7 +659,7 @@ int fit_open_image(struct fit_handle *handle, void *configuration, if (ret < 0) return ret; - ret = fit_handle_decompression(image, &data, &data_len); + ret = fit_handle_decompression(image, type, &data, &data_len); if (ret) return ret; -- 2.39.2