From mboxrd@z Thu Jan 1 00:00:00 1970 Delivery-date: Tue, 10 Oct 2023 21:16:44 +0200 Received: from metis.whiteo.stw.pengutronix.de ([2a0a:edc0:2:b01:1d::104]) 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 1qqIDl-003U0p-4N for lore@lore.pengutronix.de; Tue, 10 Oct 2023 21:16:44 +0200 Received: from localhost ([127.0.0.1] helo=metis.whiteo.stw.pengutronix.de) by metis.whiteo.stw.pengutronix.de with esmtp (Exim 4.92) (envelope-from ) id 1qqIDj-0007sC-QV; Tue, 10 Oct 2023 21:16:43 +0200 Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.whiteo.stw.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1qqIDd-0007nD-Lg; Tue, 10 Oct 2023 21:16:37 +0200 Received: from [2a0a:edc0:0:1101:1d::ac] (helo=dude04.red.stw.pengutronix.de) by drehscheibe.grey.stw.pengutronix.de with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1qqIDd-000jPa-7F; Tue, 10 Oct 2023 21:16:37 +0200 Received: from rhi by dude04.red.stw.pengutronix.de with local (Exim 4.96) (envelope-from ) id 1qqIDd-0009Xa-0Z; Tue, 10 Oct 2023 21:16:37 +0200 From: Roland Hieber To: distrokit@pengutronix.de Date: Tue, 10 Oct 2023 21:16:30 +0200 Message-Id: <20231010191631.31141-5-rhi@pengutronix.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20231010191631.31141-1-rhi@pengutronix.de> References: <20231010191631.31141-1-rhi@pengutronix.de> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [DistroKit] [PATCH 5/6] images: remove qemu size hack X-BeenThere: distrokit@pengutronix.de X-Mailman-Version: 2.1.29 Precedence: list List-Id: DistroKit Mailinglist List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Roland Hieber Sender: "DistroKit" X-SA-Exim-Connect-IP: 127.0.0.1 X-SA-Exim-Mail-From: distrokit-bounces@pengutronix.de X-SA-Exim-Scanned: No (on metis.whiteo.stw.pengutronix.de); SAEximRunCond expanded to false genimage knows about the 'size' option for images to fill the image to a certain size, and since genimage v14 it supports the 'fill' option to write all zeroes at the end of the image and not cut them off to optimise the image size. Use this to blow up the images that are used with qemu to the next power of two so qemu can work with them, and remove our invisible-partition-at-the-end hack. On MIPS, we also need to decrease the size of the last partition so that it still fits inside the specified image size, because the first MiB (when using 1 MiB alignment) is occupied by the partition table, so the first partition only starts at offset 1 MiB. Signed-off-by: Roland Hieber --- .../platform-mips/config/images/ar9331.config | 16 ++++------------ configs/platform-mips/config/images/malta.config | 16 ++++------------ .../platform-mipsel/config/images/malta.config | 16 ++++------------ .../config/images/vexpress-nor.config | 10 +++------- .../platform-v7a/config/images/vexpress.config | 15 +++------------ .../config/images/vexpress-nor.config | 10 +++------- .../config/images/vexpress.config | 15 +++------------ 7 files changed, 24 insertions(+), 74 deletions(-) diff --git a/configs/platform-mips/config/images/ar9331.config b/configs/platform-mips/config/images/ar9331.config index 07125bea4c88..8012cf0f839d 100644 --- a/configs/platform-mips/config/images/ar9331.config +++ b/configs/platform-mips/config/images/ar9331.config @@ -1,7 +1,10 @@ image @IMAGE@ { + /* Note: qemu will complain if the SD card size is not a power of two */ + size = 1G hdimage { align = 1M disk-signature = 0x74823abf + fill = true } partition root-A { image = root.ext2 @@ -10,18 +13,7 @@ image @IMAGE@ { } partition data { partition-type = 0x83 - size = 512M - } - /* genimage does not write zeros at the end of an image to save space, - * but the kernel in qemu will complain if the image file is smaller - * than the partition sizes. work around this by adding an empty - * partition at the end. - */ - partition end { - image = /dev/null - size = 1M - offset = 1025M - in-partition-table = false + size = 511M } } diff --git a/configs/platform-mips/config/images/malta.config b/configs/platform-mips/config/images/malta.config index 07125bea4c88..8012cf0f839d 100644 --- a/configs/platform-mips/config/images/malta.config +++ b/configs/platform-mips/config/images/malta.config @@ -1,7 +1,10 @@ image @IMAGE@ { + /* Note: qemu will complain if the SD card size is not a power of two */ + size = 1G hdimage { align = 1M disk-signature = 0x74823abf + fill = true } partition root-A { image = root.ext2 @@ -10,18 +13,7 @@ image @IMAGE@ { } partition data { partition-type = 0x83 - size = 512M - } - /* genimage does not write zeros at the end of an image to save space, - * but the kernel in qemu will complain if the image file is smaller - * than the partition sizes. work around this by adding an empty - * partition at the end. - */ - partition end { - image = /dev/null - size = 1M - offset = 1025M - in-partition-table = false + size = 511M } } diff --git a/configs/platform-mipsel/config/images/malta.config b/configs/platform-mipsel/config/images/malta.config index 07125bea4c88..8012cf0f839d 100644 --- a/configs/platform-mipsel/config/images/malta.config +++ b/configs/platform-mipsel/config/images/malta.config @@ -1,7 +1,10 @@ image @IMAGE@ { + /* Note: qemu will complain if the SD card size is not a power of two */ + size = 1G hdimage { align = 1M disk-signature = 0x74823abf + fill = true } partition root-A { image = root.ext2 @@ -10,18 +13,7 @@ image @IMAGE@ { } partition data { partition-type = 0x83 - size = 512M - } - /* genimage does not write zeros at the end of an image to save space, - * but the kernel in qemu will complain if the image file is smaller - * than the partition sizes. work around this by adding an empty - * partition at the end. - */ - partition end { - image = /dev/null - size = 1M - offset = 1025M - in-partition-table = false + size = 511M } } diff --git a/configs/platform-v7a/config/images/vexpress-nor.config b/configs/platform-v7a/config/images/vexpress-nor.config index cc7edd28f628..58bbbfca404a 100644 --- a/configs/platform-v7a/config/images/vexpress-nor.config +++ b/configs/platform-v7a/config/images/vexpress-nor.config @@ -1,6 +1,9 @@ image @IMAGE@ { + /* Note: qemu will complain if the SD card size is not a power of two */ + size = 64M hdimage { partition-table-type = none + fill = true } partition barebox { image = barebox-vexpress-ca9.img @@ -19,13 +22,6 @@ image @IMAGE@ { in-partition-table = false size = 1M } - /* expand image size to 64 MiB; dummy size, results in 0 bytes length */ - partition end { - image = /dev/null - offset = 64M - size = 1M - in-partition-table = false - } } /* vim: set tabstop=8 noexpandtab : */ diff --git a/configs/platform-v7a/config/images/vexpress.config b/configs/platform-v7a/config/images/vexpress.config index 3aa64a4299ce..ba677fc3c946 100644 --- a/configs/platform-v7a/config/images/vexpress.config +++ b/configs/platform-v7a/config/images/vexpress.config @@ -1,7 +1,10 @@ image @IMAGE@ { + /* Note: qemu will complain if the SD card size is not a power of two */ + size = 256M hdimage { align = 1M disk-signature = 0x74823abf + fill = true } partition root-A { image = root.ext2 @@ -17,18 +20,6 @@ image @IMAGE@ { partition-type = 0x83 size = 63M } - /* genimage does not write zeros at the end of an image to save space, - * but the kernel in qemu will complain if the image file is smaller - * than the partition sizes, and qemu will complain if the SD card size - * is not a power of 2. work around this issues by adding an empty - * partition at the end. - */ - partition end { - image = /dev/null - size = 1M - offset = 256M - in-partition-table = false - } } /* vim: set tabstop=8 noexpandtab : */ diff --git a/configs/platform-v7a_noneon/config/images/vexpress-nor.config b/configs/platform-v7a_noneon/config/images/vexpress-nor.config index cc7edd28f628..58bbbfca404a 100644 --- a/configs/platform-v7a_noneon/config/images/vexpress-nor.config +++ b/configs/platform-v7a_noneon/config/images/vexpress-nor.config @@ -1,6 +1,9 @@ image @IMAGE@ { + /* Note: qemu will complain if the SD card size is not a power of two */ + size = 64M hdimage { partition-table-type = none + fill = true } partition barebox { image = barebox-vexpress-ca9.img @@ -19,13 +22,6 @@ image @IMAGE@ { in-partition-table = false size = 1M } - /* expand image size to 64 MiB; dummy size, results in 0 bytes length */ - partition end { - image = /dev/null - offset = 64M - size = 1M - in-partition-table = false - } } /* vim: set tabstop=8 noexpandtab : */ diff --git a/configs/platform-v7a_noneon/config/images/vexpress.config b/configs/platform-v7a_noneon/config/images/vexpress.config index d51a58be2893..5291cb31e385 100644 --- a/configs/platform-v7a_noneon/config/images/vexpress.config +++ b/configs/platform-v7a_noneon/config/images/vexpress.config @@ -1,7 +1,10 @@ image @IMAGE@ { + /* Note: qemu will complain if the SD card size is not a power of two */ + size = 256M hdimage { align = 1M disk-signature = 0x74823abf + fill = true } partition root-A { image = root.ext2 @@ -12,18 +15,6 @@ image @IMAGE@ { partition-type = 0x83 size = 63M } - /* genimage does not write zeros at the end of an image to save space, - * but the kernel in qemu will complain if the image file is smaller - * than the partition sizes, and qemu will complain if the SD card size - * is not a power of 2. work around this issues by adding an empty - * partition at the end. - */ - partition end { - image = /dev/null - size = 1M - offset = 256M - in-partition-table = false - } } /* vim: set tabstop=8 noexpandtab : */ -- 2.39.2