DistroKit Mailinglist
 help / color / mirror / Atom feed
* [DistroKit] [PATCH v3 1/6] v7a: image-stm32mp: use 'partition-table-type' option instead of 'gpt'
@ 2023-10-20  9:05 Roland Hieber
  2023-10-20  9:05 ` [DistroKit] [PATCH v3 2/6] images: use 'partition-table-type' option instead of 'partition-table' Roland Hieber
                   ` (5 more replies)
  0 siblings, 6 replies; 12+ messages in thread
From: Roland Hieber @ 2023-10-20  9:05 UTC (permalink / raw)
  To: distrokit; +Cc: Roland Hieber

The 'gpt' option in genimage has been deprecated in favour of
'partition-table-type = gpt'.

Signed-off-by: Roland Hieber <rhi@pengutronix.de>
---
PATCH v3: no change

PATCH v2: no change

PATCH v1: https://lore.distrokit.org/distrokit/20231010191631.31141-1-rhi@pengutronix.de
---
 configs/platform-v7a/config/images/stm32mp.config | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/configs/platform-v7a/config/images/stm32mp.config b/configs/platform-v7a/config/images/stm32mp.config
index afef06d7e43d..38bac2483c9c 100644
--- a/configs/platform-v7a/config/images/stm32mp.config
+++ b/configs/platform-v7a/config/images/stm32mp.config
@@ -1,7 +1,7 @@
 image @IMAGE@ {
 	hdimage {
 		align = 1M
-		gpt = true
+		partition-table-type = gpt
 		gpt-no-backup = true
 	}
 	partition fsbl1 {
-- 
2.39.2




^ permalink raw reply	[flat|nested] 12+ messages in thread

* [DistroKit] [PATCH v3 2/6] images: use 'partition-table-type' option instead of 'partition-table'
  2023-10-20  9:05 [DistroKit] [PATCH v3 1/6] v7a: image-stm32mp: use 'partition-table-type' option instead of 'gpt' Roland Hieber
@ 2023-10-20  9:05 ` Roland Hieber
  2023-10-20  9:05 ` [DistroKit] [PATCH v3 3/6] v7a: barebox: pass root=mmcblkXpN instead of root=PARTUUID=… to kernel Roland Hieber
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 12+ messages in thread
From: Roland Hieber @ 2023-10-20  9:05 UTC (permalink / raw)
  To: distrokit; +Cc: Roland Hieber

genimage v16 complains that 'partition-table = false' is deprecated in
favour of 'partition-table-type = none'.

Signed-off-by: Roland Hieber <rhi@pengutronix.de>
---
PATCH v3: no change

PATCH v2: no change

PATCH v1: https://lore.distrokit.org/distrokit/20231010191631.31141-2-rhi@pengutronix.de
---
 configs/platform-v7a/config/images/vexpress-nor.config        | 2 +-
 configs/platform-v7a_noneon/config/images/vexpress-nor.config | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/configs/platform-v7a/config/images/vexpress-nor.config b/configs/platform-v7a/config/images/vexpress-nor.config
index 790ee5fac1dd..cc7edd28f628 100644
--- a/configs/platform-v7a/config/images/vexpress-nor.config
+++ b/configs/platform-v7a/config/images/vexpress-nor.config
@@ -1,6 +1,6 @@
 image @IMAGE@ {
 	hdimage {
-		partition-table = false
+		partition-table-type = none
 	}
 	partition barebox {
 		image = barebox-vexpress-ca9.img
diff --git a/configs/platform-v7a_noneon/config/images/vexpress-nor.config b/configs/platform-v7a_noneon/config/images/vexpress-nor.config
index 790ee5fac1dd..cc7edd28f628 100644
--- a/configs/platform-v7a_noneon/config/images/vexpress-nor.config
+++ b/configs/platform-v7a_noneon/config/images/vexpress-nor.config
@@ -1,6 +1,6 @@
 image @IMAGE@ {
 	hdimage {
-		partition-table = false
+		partition-table-type = none
 	}
 	partition barebox {
 		image = barebox-vexpress-ca9.img
-- 
2.39.2




^ permalink raw reply	[flat|nested] 12+ messages in thread

* [DistroKit] [PATCH v3 3/6] v7a: barebox: pass root=mmcblkXpN instead of root=PARTUUID=… to kernel
  2023-10-20  9:05 [DistroKit] [PATCH v3 1/6] v7a: image-stm32mp: use 'partition-table-type' option instead of 'gpt' Roland Hieber
  2023-10-20  9:05 ` [DistroKit] [PATCH v3 2/6] images: use 'partition-table-type' option instead of 'partition-table' Roland Hieber
@ 2023-10-20  9:05 ` Roland Hieber
  2023-11-22 13:27   ` Ahmad Fatoum
  2023-10-20  9:05 ` [DistroKit] [PATCH v3 4/6] v7a: barebox: enable GUID Partition Table support Roland Hieber
                   ` (3 subsequent siblings)
  5 siblings, 1 reply; 12+ messages in thread
From: Roland Hieber @ 2023-10-20  9:05 UTC (permalink / raw)
  To: distrokit; +Cc: Roland Hieber

Kernels prior to v5.10-rc1 could not ensure deterministic ordering for
MMC devices. For this reason, the default 'append-root' behaviour of
barebox for MMC block devices is to append a 'root=PARTUUID=XYZ' option
to the kernel command line. The PARTUUID is derived from the partition
table and is expected to be unique system-wide. This is however
susceptible to breakage if the exact same image is written to different
boot media in the system, e.g. SD and eMMC, so the PARTUUID will no
longer uniquely refer to a single partition.

Newer kernel versions honor the numbering used for 'mmc' aliases,
which makes 'root=mmcblkXpN' deterministic as long as barebox and
kernel aliases are identical. Since we're using kernel 6.4, enable this
option in barebox.

Signed-off-by: Roland Hieber <rhi@pengutronix.de>
---
PATCH v3: rebase to current next branch

PATCH v2: no change

PATCH v1: https://lore.distrokit.org/distrokit/20231010191631.31141-3-rhi@pengutronix.de
---
 configs/platform-v7a/barebox-am335x.config               | 2 +-
 configs/platform-v7a/barebox-am335x.config.diff          | 2 +-
 configs/platform-v7a/barebox-at91.config                 | 2 +-
 configs/platform-v7a/barebox-at91.config.diff            | 2 +-
 configs/platform-v7a/barebox-mx6.config                  | 2 +-
 configs/platform-v7a/barebox-mx6.config.diff             | 2 +-
 configs/platform-v7a/barebox-rpi2.config                 | 2 +-
 configs/platform-v7a/barebox-rpi2.config.diff            | 2 +-
 configs/platform-v7a/barebox-stm32mp.config              | 2 +-
 configs/platform-v7a/barebox-stm32mp.config.diff         | 2 +-
 configs/platform-v7a/barebox-vexpress.config             | 2 +-
 configs/platform-v7a/barebox-vexpress.config.diff        | 2 +-
 configs/platform-v7a/barebox.config                      | 2 +-
 configs/platform-v7a_noneon/barebox-at91.config          | 2 +-
 configs/platform-v7a_noneon/barebox-at91.config.diff     | 2 +-
 configs/platform-v7a_noneon/barebox-vexpress.config      | 2 +-
 configs/platform-v7a_noneon/barebox-vexpress.config.diff | 2 +-
 configs/platform-v7a_noneon/barebox.config               | 2 +-
 18 files changed, 18 insertions(+), 18 deletions(-)

diff --git a/configs/platform-v7a/barebox-am335x.config b/configs/platform-v7a/barebox-am335x.config
index e15e865c4443..40228f3b51e7 100644
--- a/configs/platform-v7a/barebox-am335x.config
+++ b/configs/platform-v7a/barebox-am335x.config
@@ -182,7 +182,7 @@ CONFIG_BOOTM_OFTREE_UIMAGE=y
 # CONFIG_BOOTM_FITIMAGE is not set
 CONFIG_BLSPEC=y
 CONFIG_FLEXIBLE_BOOTARGS=y
-# CONFIG_MMCBLKDEV_ROOTARG is not set
+CONFIG_MMCBLKDEV_ROOTARG=y
 CONFIG_BAREBOX_UPDATE=y
 CONFIG_SYSTEM_PARTITIONS=y
 CONFIG_IMD=y
diff --git a/configs/platform-v7a/barebox-am335x.config.diff b/configs/platform-v7a/barebox-am335x.config.diff
index 899a66fc9381..95263f963905 100644
--- a/configs/platform-v7a/barebox-am335x.config.diff
+++ b/configs/platform-v7a/barebox-am335x.config.diff
@@ -1,4 +1,4 @@
-00cfb07a044814b94b716078e86d3d9b
+da4e754ab156cc4c96aeadfc6c19b73f
 # CONFIG_AM33XX_NET_BOOT is not set
 CONFIG_ARCH_AM33XX=y
 # CONFIG_ARCH_BCM283X is not set
diff --git a/configs/platform-v7a/barebox-at91.config b/configs/platform-v7a/barebox-at91.config
index 194d187ff137..1e9d40511ee9 100644
--- a/configs/platform-v7a/barebox-at91.config
+++ b/configs/platform-v7a/barebox-at91.config
@@ -189,7 +189,7 @@ CONFIG_BOOTM_OFTREE_UIMAGE=y
 # CONFIG_BOOTM_FITIMAGE is not set
 CONFIG_BLSPEC=y
 CONFIG_FLEXIBLE_BOOTARGS=y
-# CONFIG_MMCBLKDEV_ROOTARG is not set
+CONFIG_MMCBLKDEV_ROOTARG=y
 CONFIG_BAREBOX_UPDATE=y
 CONFIG_SYSTEM_PARTITIONS=y
 CONFIG_IMD=y
diff --git a/configs/platform-v7a/barebox-at91.config.diff b/configs/platform-v7a/barebox-at91.config.diff
index 0eca8ce55755..35b055a9fd77 100644
--- a/configs/platform-v7a/barebox-at91.config.diff
+++ b/configs/platform-v7a/barebox-at91.config.diff
@@ -1,4 +1,4 @@
-00cfb07a044814b94b716078e86d3d9b
+da4e754ab156cc4c96aeadfc6c19b73f
 CONFIG_ARCH_AT91=y
 # CONFIG_ARCH_BCM283X is not set
 # CONFIG_ARCH_IMX is undefined
diff --git a/configs/platform-v7a/barebox-mx6.config b/configs/platform-v7a/barebox-mx6.config
index 06fe1ce71272..49b0c0fb31dc 100644
--- a/configs/platform-v7a/barebox-mx6.config
+++ b/configs/platform-v7a/barebox-mx6.config
@@ -273,7 +273,7 @@ CONFIG_BOOTM_OFTREE_UIMAGE=y
 # CONFIG_BOOTM_FITIMAGE is not set
 CONFIG_BLSPEC=y
 CONFIG_FLEXIBLE_BOOTARGS=y
-# CONFIG_MMCBLKDEV_ROOTARG is not set
+CONFIG_MMCBLKDEV_ROOTARG=y
 CONFIG_BAREBOX_UPDATE=y
 CONFIG_SYSTEM_PARTITIONS=y
 CONFIG_IMD=y
diff --git a/configs/platform-v7a/barebox-mx6.config.diff b/configs/platform-v7a/barebox-mx6.config.diff
index 8c231f94471c..ba8d9c81a273 100644
--- a/configs/platform-v7a/barebox-mx6.config.diff
+++ b/configs/platform-v7a/barebox-mx6.config.diff
@@ -1,4 +1,4 @@
-00cfb07a044814b94b716078e86d3d9b
+da4e754ab156cc4c96aeadfc6c19b73f
 # CONFIG_ARCH_BCM283X is not set
 CONFIG_ARCH_HAS_FEC_IMX=y
 CONFIG_ARCH_HAS_IMX_GPT=y
diff --git a/configs/platform-v7a/barebox-rpi2.config b/configs/platform-v7a/barebox-rpi2.config
index 3bcbcc28b754..48c19d04bec7 100644
--- a/configs/platform-v7a/barebox-rpi2.config
+++ b/configs/platform-v7a/barebox-rpi2.config
@@ -175,7 +175,7 @@ CONFIG_BOOTM_OFTREE=y
 # CONFIG_BOOTM_FITIMAGE is not set
 CONFIG_BLSPEC=y
 CONFIG_FLEXIBLE_BOOTARGS=y
-# CONFIG_MMCBLKDEV_ROOTARG is not set
+CONFIG_MMCBLKDEV_ROOTARG=y
 CONFIG_BAREBOX_UPDATE=y
 CONFIG_SYSTEM_PARTITIONS=y
 CONFIG_IMD=y
diff --git a/configs/platform-v7a/barebox-rpi2.config.diff b/configs/platform-v7a/barebox-rpi2.config.diff
index b3b496fca3a8..614e7151fd70 100644
--- a/configs/platform-v7a/barebox-rpi2.config.diff
+++ b/configs/platform-v7a/barebox-rpi2.config.diff
@@ -1,4 +1,4 @@
-00cfb07a044814b94b716078e86d3d9b
+da4e754ab156cc4c96aeadfc6c19b73f
 CONFIG_ARM_ASM_UNIFIED=y
 # CONFIG_CMD_NVMEM is not set
 CONFIG_DRIVER_NET_BCMGENET=y
diff --git a/configs/platform-v7a/barebox-stm32mp.config b/configs/platform-v7a/barebox-stm32mp.config
index 76f051a68bb1..c9cb065ce3e1 100644
--- a/configs/platform-v7a/barebox-stm32mp.config
+++ b/configs/platform-v7a/barebox-stm32mp.config
@@ -171,7 +171,7 @@ CONFIG_BOOTM_OFTREE_UIMAGE=y
 # CONFIG_BOOTM_FITIMAGE is not set
 CONFIG_BLSPEC=y
 CONFIG_FLEXIBLE_BOOTARGS=y
-# CONFIG_MMCBLKDEV_ROOTARG is not set
+CONFIG_MMCBLKDEV_ROOTARG=y
 CONFIG_BAREBOX_UPDATE=y
 CONFIG_SYSTEM_PARTITIONS=y
 CONFIG_IMD=y
diff --git a/configs/platform-v7a/barebox-stm32mp.config.diff b/configs/platform-v7a/barebox-stm32mp.config.diff
index 23f14eeed6c1..5708326ae722 100644
--- a/configs/platform-v7a/barebox-stm32mp.config.diff
+++ b/configs/platform-v7a/barebox-stm32mp.config.diff
@@ -1,4 +1,4 @@
-00cfb07a044814b94b716078e86d3d9b
+da4e754ab156cc4c96aeadfc6c19b73f
 # CONFIG_ARCH_BCM283X is not set
 CONFIG_ARCH_HAS_RESET_CONTROLLER=y
 CONFIG_ARCH_NR_GPIO=416
diff --git a/configs/platform-v7a/barebox-vexpress.config b/configs/platform-v7a/barebox-vexpress.config
index ba2cb67c499c..596776ab88fa 100644
--- a/configs/platform-v7a/barebox-vexpress.config
+++ b/configs/platform-v7a/barebox-vexpress.config
@@ -158,7 +158,7 @@ CONFIG_BOOTM_OFTREE=y
 # CONFIG_BOOTM_FITIMAGE is not set
 CONFIG_BLSPEC=y
 CONFIG_FLEXIBLE_BOOTARGS=y
-# CONFIG_MMCBLKDEV_ROOTARG is not set
+CONFIG_MMCBLKDEV_ROOTARG=y
 CONFIG_BAREBOX_UPDATE=y
 CONFIG_SYSTEM_PARTITIONS=y
 CONFIG_IMD=y
diff --git a/configs/platform-v7a/barebox-vexpress.config.diff b/configs/platform-v7a/barebox-vexpress.config.diff
index ff68e3efa1c3..24345a450c4e 100644
--- a/configs/platform-v7a/barebox-vexpress.config.diff
+++ b/configs/platform-v7a/barebox-vexpress.config.diff
@@ -1,4 +1,4 @@
-00cfb07a044814b94b716078e86d3d9b
+da4e754ab156cc4c96aeadfc6c19b73f
 CONFIG_AMBA_SP804=y
 # CONFIG_ARCH_BCM283X is not set
 CONFIG_ARCH_VEXPRESS=y
diff --git a/configs/platform-v7a/barebox.config b/configs/platform-v7a/barebox.config
index 7bc38c8cf20f..2cb5df8e4796 100644
--- a/configs/platform-v7a/barebox.config
+++ b/configs/platform-v7a/barebox.config
@@ -174,7 +174,7 @@ CONFIG_BOOTM_OFTREE=y
 # CONFIG_BOOTM_FITIMAGE is not set
 CONFIG_BLSPEC=y
 CONFIG_FLEXIBLE_BOOTARGS=y
-# CONFIG_MMCBLKDEV_ROOTARG is not set
+CONFIG_MMCBLKDEV_ROOTARG=y
 CONFIG_BAREBOX_UPDATE=y
 CONFIG_SYSTEM_PARTITIONS=y
 CONFIG_IMD=y
diff --git a/configs/platform-v7a_noneon/barebox-at91.config b/configs/platform-v7a_noneon/barebox-at91.config
index d66e099ecada..600417a314df 100644
--- a/configs/platform-v7a_noneon/barebox-at91.config
+++ b/configs/platform-v7a_noneon/barebox-at91.config
@@ -180,7 +180,7 @@ CONFIG_BOOTM_OFTREE_UIMAGE=y
 # CONFIG_BOOTM_FITIMAGE is not set
 CONFIG_BLSPEC=y
 CONFIG_FLEXIBLE_BOOTARGS=y
-# CONFIG_MMCBLKDEV_ROOTARG is not set
+CONFIG_MMCBLKDEV_ROOTARG=y
 CONFIG_BAREBOX_UPDATE=y
 CONFIG_SYSTEM_PARTITIONS=y
 CONFIG_IMD=y
diff --git a/configs/platform-v7a_noneon/barebox-at91.config.diff b/configs/platform-v7a_noneon/barebox-at91.config.diff
index 29584321f023..9a5ff84cf648 100644
--- a/configs/platform-v7a_noneon/barebox-at91.config.diff
+++ b/configs/platform-v7a_noneon/barebox-at91.config.diff
@@ -1,4 +1,4 @@
-1dedd85e90c7b6ae44712caf6c69913b
+4843d0dbea5da5cc603015348ad891de
 CONFIG_ARCH_AT91=y
 # CONFIG_ARCH_BCM283X is not set
 # CONFIG_ARCH_IMX is undefined
diff --git a/configs/platform-v7a_noneon/barebox-vexpress.config b/configs/platform-v7a_noneon/barebox-vexpress.config
index d2b7aa6c0073..cf504a6c606c 100644
--- a/configs/platform-v7a_noneon/barebox-vexpress.config
+++ b/configs/platform-v7a_noneon/barebox-vexpress.config
@@ -158,7 +158,7 @@ CONFIG_BOOTM_OFTREE=y
 # CONFIG_BOOTM_FITIMAGE is not set
 CONFIG_BLSPEC=y
 CONFIG_FLEXIBLE_BOOTARGS=y
-# CONFIG_MMCBLKDEV_ROOTARG is not set
+CONFIG_MMCBLKDEV_ROOTARG=y
 CONFIG_BAREBOX_UPDATE=y
 # CONFIG_SYSTEM_PARTITIONS is not set
 CONFIG_IMD=y
diff --git a/configs/platform-v7a_noneon/barebox-vexpress.config.diff b/configs/platform-v7a_noneon/barebox-vexpress.config.diff
index fff891e02b70..2215ceb876cc 100644
--- a/configs/platform-v7a_noneon/barebox-vexpress.config.diff
+++ b/configs/platform-v7a_noneon/barebox-vexpress.config.diff
@@ -1,4 +1,4 @@
-1dedd85e90c7b6ae44712caf6c69913b
+4843d0dbea5da5cc603015348ad891de
 CONFIG_AMBA_SP804=y
 # CONFIG_ARCH_BCM283X is not set
 CONFIG_ARCH_VEXPRESS=y
diff --git a/configs/platform-v7a_noneon/barebox.config b/configs/platform-v7a_noneon/barebox.config
index bbedcdb2d650..908bf1fe8d3f 100644
--- a/configs/platform-v7a_noneon/barebox.config
+++ b/configs/platform-v7a_noneon/barebox.config
@@ -174,7 +174,7 @@ CONFIG_BOOTM_OFTREE=y
 # CONFIG_BOOTM_FITIMAGE is not set
 CONFIG_BLSPEC=y
 CONFIG_FLEXIBLE_BOOTARGS=y
-# CONFIG_MMCBLKDEV_ROOTARG is not set
+CONFIG_MMCBLKDEV_ROOTARG=y
 CONFIG_BAREBOX_UPDATE=y
 # CONFIG_SYSTEM_PARTITIONS is not set
 CONFIG_IMD=y
-- 
2.39.2




^ permalink raw reply	[flat|nested] 12+ messages in thread

* [DistroKit] [PATCH v3 4/6] v7a: barebox: enable GUID Partition Table support
  2023-10-20  9:05 [DistroKit] [PATCH v3 1/6] v7a: image-stm32mp: use 'partition-table-type' option instead of 'gpt' Roland Hieber
  2023-10-20  9:05 ` [DistroKit] [PATCH v3 2/6] images: use 'partition-table-type' option instead of 'partition-table' Roland Hieber
  2023-10-20  9:05 ` [DistroKit] [PATCH v3 3/6] v7a: barebox: pass root=mmcblkXpN instead of root=PARTUUID=… to kernel Roland Hieber
@ 2023-10-20  9:05 ` Roland Hieber
  2023-10-20  9:05 ` [DistroKit] [PATCH v3 5/6] images: remove qemu size hack Roland Hieber
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 12+ messages in thread
From: Roland Hieber @ 2023-10-20  9:05 UTC (permalink / raw)
  To: distrokit; +Cc: Roland Hieber

We want to be able to boot from devices formatted with GPT, enable this
on the platforms that don't have it yet.

Signed-off-by: Roland Hieber <rhi@pengutronix.de>
---
PATCH v3: rebase to current next branch

PATCH v2: no change

PATCH v1: https://lore.distrokit.org/distrokit/20231010191631.31141-4-rhi@pengutronix.de
---
 configs/platform-v7a/barebox-am335x.config               | 5 ++++-
 configs/platform-v7a/barebox-am335x.config.diff          | 2 +-
 configs/platform-v7a/barebox-at91.config                 | 5 ++++-
 configs/platform-v7a/barebox-at91.config.diff            | 2 +-
 configs/platform-v7a/barebox-mx6.config.diff             | 6 +-----
 configs/platform-v7a/barebox-rpi2.config                 | 5 ++++-
 configs/platform-v7a/barebox-rpi2.config.diff            | 2 +-
 configs/platform-v7a/barebox-stm32mp.config.diff         | 4 +---
 configs/platform-v7a/barebox-vexpress.config             | 5 ++++-
 configs/platform-v7a/barebox-vexpress.config.diff        | 2 +-
 configs/platform-v7a/barebox.config                      | 5 ++++-
 configs/platform-v7a_noneon/barebox-at91.config          | 5 ++++-
 configs/platform-v7a_noneon/barebox-at91.config.diff     | 2 +-
 configs/platform-v7a_noneon/barebox-vexpress.config      | 5 ++++-
 configs/platform-v7a_noneon/barebox-vexpress.config.diff | 2 +-
 configs/platform-v7a_noneon/barebox.config               | 5 ++++-
 16 files changed, 40 insertions(+), 22 deletions(-)

diff --git a/configs/platform-v7a/barebox-am335x.config b/configs/platform-v7a/barebox-am335x.config
index 40228f3b51e7..a85bbe294886 100644
--- a/configs/platform-v7a/barebox-am335x.config
+++ b/configs/platform-v7a/barebox-am335x.config
@@ -199,7 +199,9 @@ CONFIG_CONSOLE_ALLOW_COLOR=y
 CONFIG_PARTITION=y
 CONFIG_PARTITION_DISK=y
 CONFIG_PARTITION_DISK_DOS=y
-# CONFIG_PARTITION_DISK_EFI is not set
+CONFIG_PARTITION_DISK_EFI=y
+CONFIG_PARTITION_DISK_EFI_GPT_NO_FORCE=y
+CONFIG_PARTITION_DISK_EFI_GPT_COMPARE=y
 CONFIG_ENV_HANDLING=y
 CONFIG_DEFAULT_ENVIRONMENT=y
 CONFIG_DEFAULT_COMPRESSION_NONE=y
@@ -945,6 +947,7 @@ CONFIG_LIBFDT=y
 #
 # end of Library gui routines
 
+CONFIG_PRINTF_UUID=y
 CONFIG_NLS=y
 # CONFIG_BLOBGEN is not set
 CONFIG_ARCH_HAS_STACK_DUMP=y
diff --git a/configs/platform-v7a/barebox-am335x.config.diff b/configs/platform-v7a/barebox-am335x.config.diff
index 95263f963905..273b6c346982 100644
--- a/configs/platform-v7a/barebox-am335x.config.diff
+++ b/configs/platform-v7a/barebox-am335x.config.diff
@@ -1,4 +1,4 @@
-da4e754ab156cc4c96aeadfc6c19b73f
+ec05109bb691f36043a0a4f1bf9c20ad
 # CONFIG_AM33XX_NET_BOOT is not set
 CONFIG_ARCH_AM33XX=y
 # CONFIG_ARCH_BCM283X is not set
diff --git a/configs/platform-v7a/barebox-at91.config b/configs/platform-v7a/barebox-at91.config
index 1e9d40511ee9..389599629374 100644
--- a/configs/platform-v7a/barebox-at91.config
+++ b/configs/platform-v7a/barebox-at91.config
@@ -206,7 +206,9 @@ CONFIG_PBL_CONSOLE=y
 CONFIG_PARTITION=y
 CONFIG_PARTITION_DISK=y
 CONFIG_PARTITION_DISK_DOS=y
-# CONFIG_PARTITION_DISK_EFI is not set
+CONFIG_PARTITION_DISK_EFI=y
+CONFIG_PARTITION_DISK_EFI_GPT_NO_FORCE=y
+CONFIG_PARTITION_DISK_EFI_GPT_COMPARE=y
 CONFIG_ENV_HANDLING=y
 CONFIG_DEFAULT_ENVIRONMENT=y
 CONFIG_DEFAULT_COMPRESSION_NONE=y
@@ -951,6 +953,7 @@ CONFIG_IMAGE_SPARSE=y
 #
 # end of Library gui routines
 
+CONFIG_PRINTF_UUID=y
 CONFIG_NLS=y
 # CONFIG_BLOBGEN is not set
 CONFIG_ARCH_HAS_STACK_DUMP=y
diff --git a/configs/platform-v7a/barebox-at91.config.diff b/configs/platform-v7a/barebox-at91.config.diff
index 35b055a9fd77..8b093ab0fdaf 100644
--- a/configs/platform-v7a/barebox-at91.config.diff
+++ b/configs/platform-v7a/barebox-at91.config.diff
@@ -1,4 +1,4 @@
-da4e754ab156cc4c96aeadfc6c19b73f
+ec05109bb691f36043a0a4f1bf9c20ad
 CONFIG_ARCH_AT91=y
 # CONFIG_ARCH_BCM283X is not set
 # CONFIG_ARCH_IMX is undefined
diff --git a/configs/platform-v7a/barebox-mx6.config.diff b/configs/platform-v7a/barebox-mx6.config.diff
index ba8d9c81a273..cc7d235ee68b 100644
--- a/configs/platform-v7a/barebox-mx6.config.diff
+++ b/configs/platform-v7a/barebox-mx6.config.diff
@@ -1,4 +1,4 @@
-da4e754ab156cc4c96aeadfc6c19b73f
+ec05109bb691f36043a0a4f1bf9c20ad
 # CONFIG_ARCH_BCM283X is not set
 CONFIG_ARCH_HAS_FEC_IMX=y
 CONFIG_ARCH_HAS_IMX_GPT=y
@@ -197,9 +197,6 @@ CONFIG_NVMEM=y
 # CONFIG_NVMEM_REBOOT_MODE is not set
 # CONFIG_NVMEM_RMEM is not set
 # CONFIG_NVMEM_SNVS_LPGPR is not set
-CONFIG_PARTITION_DISK_EFI=y
-CONFIG_PARTITION_DISK_EFI_GPT_COMPARE=y
-CONFIG_PARTITION_DISK_EFI_GPT_NO_FORCE=y
 # CONFIG_PBL_OPTEE is undefined
 # CONFIG_PCI is not set
 # CONFIG_PCI_ECAM_GENERIC is not set
@@ -209,7 +206,6 @@ CONFIG_PARTITION_DISK_EFI_GPT_NO_FORCE=y
 # CONFIG_PINCTRL_BCM283X is undefined
 CONFIG_PINCTRL_IMX_IOMUX_V3=y
 CONFIG_PNG=y
-CONFIG_PRINTF_UUID=y
 CONFIG_PROMPT="barebox:"
 CONFIG_PWM=y
 CONFIG_PWM_IMX=y
diff --git a/configs/platform-v7a/barebox-rpi2.config b/configs/platform-v7a/barebox-rpi2.config
index 48c19d04bec7..f72910d5d75a 100644
--- a/configs/platform-v7a/barebox-rpi2.config
+++ b/configs/platform-v7a/barebox-rpi2.config
@@ -192,7 +192,9 @@ CONFIG_CONSOLE_ALLOW_COLOR=y
 CONFIG_PARTITION=y
 CONFIG_PARTITION_DISK=y
 CONFIG_PARTITION_DISK_DOS=y
-# CONFIG_PARTITION_DISK_EFI is not set
+CONFIG_PARTITION_DISK_EFI=y
+CONFIG_PARTITION_DISK_EFI_GPT_NO_FORCE=y
+CONFIG_PARTITION_DISK_EFI_GPT_COMPARE=y
 CONFIG_ENV_HANDLING=y
 CONFIG_DEFAULT_ENVIRONMENT=y
 CONFIG_DEFAULT_COMPRESSION_NONE=y
@@ -927,6 +929,7 @@ CONFIG_LIBFDT=y
 #
 # end of Library gui routines
 
+CONFIG_PRINTF_UUID=y
 CONFIG_NLS=y
 # CONFIG_BLOBGEN is not set
 CONFIG_ARCH_HAS_STACK_DUMP=y
diff --git a/configs/platform-v7a/barebox-rpi2.config.diff b/configs/platform-v7a/barebox-rpi2.config.diff
index 614e7151fd70..b26e7a4f56a0 100644
--- a/configs/platform-v7a/barebox-rpi2.config.diff
+++ b/configs/platform-v7a/barebox-rpi2.config.diff
@@ -1,4 +1,4 @@
-da4e754ab156cc4c96aeadfc6c19b73f
+ec05109bb691f36043a0a4f1bf9c20ad
 CONFIG_ARM_ASM_UNIFIED=y
 # CONFIG_CMD_NVMEM is not set
 CONFIG_DRIVER_NET_BCMGENET=y
diff --git a/configs/platform-v7a/barebox-stm32mp.config.diff b/configs/platform-v7a/barebox-stm32mp.config.diff
index 5708326ae722..3a4ebf51a091 100644
--- a/configs/platform-v7a/barebox-stm32mp.config.diff
+++ b/configs/platform-v7a/barebox-stm32mp.config.diff
@@ -1,4 +1,4 @@
-da4e754ab156cc4c96aeadfc6c19b73f
+ec05109bb691f36043a0a4f1bf9c20ad
 # CONFIG_ARCH_BCM283X is not set
 CONFIG_ARCH_HAS_RESET_CONTROLLER=y
 CONFIG_ARCH_NR_GPIO=416
@@ -105,7 +105,6 @@ CONFIG_NVMEM=y
 # CONFIG_NVMEM_REBOOT_MODE is not set
 # CONFIG_NVMEM_RMEM is not set
 # CONFIG_NVMEM_SNVS_LPGPR is not set
-CONFIG_PARTITION_DISK_EFI=y
 # CONFIG_PARTITION_DISK_EFI_GPT_COMPARE is not set
 # CONFIG_PARTITION_DISK_EFI_GPT_NO_FORCE is not set
 CONFIG_PBL_CONSOLE=y
@@ -114,7 +113,6 @@ CONFIG_PBL_CONSOLE=y
 CONFIG_PHY_STM32_USBPHYC=y
 # CONFIG_PINCTRL_BCM283X is undefined
 CONFIG_PINCTRL_STM32=y
-CONFIG_PRINTF_UUID=y
 CONFIG_PROMPT="barebox:"
 CONFIG_PWM=y
 CONFIG_PWM_STM32=y
diff --git a/configs/platform-v7a/barebox-vexpress.config b/configs/platform-v7a/barebox-vexpress.config
index 596776ab88fa..baf5420ed58f 100644
--- a/configs/platform-v7a/barebox-vexpress.config
+++ b/configs/platform-v7a/barebox-vexpress.config
@@ -175,7 +175,9 @@ CONFIG_PBL_CONSOLE=y
 CONFIG_PARTITION=y
 CONFIG_PARTITION_DISK=y
 CONFIG_PARTITION_DISK_DOS=y
-# CONFIG_PARTITION_DISK_EFI is not set
+CONFIG_PARTITION_DISK_EFI=y
+CONFIG_PARTITION_DISK_EFI_GPT_NO_FORCE=y
+CONFIG_PARTITION_DISK_EFI_GPT_COMPARE=y
 CONFIG_ENV_HANDLING=y
 CONFIG_DEFAULT_ENVIRONMENT=y
 CONFIG_DEFAULT_COMPRESSION_NONE=y
@@ -866,6 +868,7 @@ CONFIG_LIBFDT=y
 #
 # end of Library gui routines
 
+CONFIG_PRINTF_UUID=y
 CONFIG_NLS=y
 # CONFIG_BLOBGEN is not set
 CONFIG_ARCH_HAS_STACK_DUMP=y
diff --git a/configs/platform-v7a/barebox-vexpress.config.diff b/configs/platform-v7a/barebox-vexpress.config.diff
index 24345a450c4e..5baaca56eb7b 100644
--- a/configs/platform-v7a/barebox-vexpress.config.diff
+++ b/configs/platform-v7a/barebox-vexpress.config.diff
@@ -1,4 +1,4 @@
-da4e754ab156cc4c96aeadfc6c19b73f
+ec05109bb691f36043a0a4f1bf9c20ad
 CONFIG_AMBA_SP804=y
 # CONFIG_ARCH_BCM283X is not set
 CONFIG_ARCH_VEXPRESS=y
diff --git a/configs/platform-v7a/barebox.config b/configs/platform-v7a/barebox.config
index 2cb5df8e4796..70e4c1de3970 100644
--- a/configs/platform-v7a/barebox.config
+++ b/configs/platform-v7a/barebox.config
@@ -191,7 +191,9 @@ CONFIG_CONSOLE_ALLOW_COLOR=y
 CONFIG_PARTITION=y
 CONFIG_PARTITION_DISK=y
 CONFIG_PARTITION_DISK_DOS=y
-# CONFIG_PARTITION_DISK_EFI is not set
+CONFIG_PARTITION_DISK_EFI=y
+CONFIG_PARTITION_DISK_EFI_GPT_NO_FORCE=y
+CONFIG_PARTITION_DISK_EFI_GPT_COMPARE=y
 CONFIG_ENV_HANDLING=y
 CONFIG_DEFAULT_ENVIRONMENT=y
 CONFIG_DEFAULT_COMPRESSION_NONE=y
@@ -918,6 +920,7 @@ CONFIG_LIBFDT=y
 #
 # end of Library gui routines
 
+CONFIG_PRINTF_UUID=y
 CONFIG_NLS=y
 # CONFIG_BLOBGEN is not set
 CONFIG_ARCH_HAS_STACK_DUMP=y
diff --git a/configs/platform-v7a_noneon/barebox-at91.config b/configs/platform-v7a_noneon/barebox-at91.config
index 600417a314df..c24b5d36b79d 100644
--- a/configs/platform-v7a_noneon/barebox-at91.config
+++ b/configs/platform-v7a_noneon/barebox-at91.config
@@ -197,7 +197,9 @@ CONFIG_PBL_CONSOLE=y
 CONFIG_PARTITION=y
 CONFIG_PARTITION_DISK=y
 CONFIG_PARTITION_DISK_DOS=y
-# CONFIG_PARTITION_DISK_EFI is not set
+CONFIG_PARTITION_DISK_EFI=y
+CONFIG_PARTITION_DISK_EFI_GPT_NO_FORCE=y
+CONFIG_PARTITION_DISK_EFI_GPT_COMPARE=y
 CONFIG_ENV_HANDLING=y
 CONFIG_DEFAULT_ENVIRONMENT=y
 CONFIG_DEFAULT_COMPRESSION_NONE=y
@@ -966,6 +968,7 @@ CONFIG_IMAGE_SPARSE=y
 #
 # end of Library gui routines
 
+CONFIG_PRINTF_UUID=y
 CONFIG_NLS=y
 # CONFIG_BLOBGEN is not set
 CONFIG_ARCH_HAS_STACK_DUMP=y
diff --git a/configs/platform-v7a_noneon/barebox-at91.config.diff b/configs/platform-v7a_noneon/barebox-at91.config.diff
index 9a5ff84cf648..e2cdc16d00ff 100644
--- a/configs/platform-v7a_noneon/barebox-at91.config.diff
+++ b/configs/platform-v7a_noneon/barebox-at91.config.diff
@@ -1,4 +1,4 @@
-4843d0dbea5da5cc603015348ad891de
+71b0583d9737e188a32240ae7d29a558
 CONFIG_ARCH_AT91=y
 # CONFIG_ARCH_BCM283X is not set
 # CONFIG_ARCH_IMX is undefined
diff --git a/configs/platform-v7a_noneon/barebox-vexpress.config b/configs/platform-v7a_noneon/barebox-vexpress.config
index cf504a6c606c..09f112d397e1 100644
--- a/configs/platform-v7a_noneon/barebox-vexpress.config
+++ b/configs/platform-v7a_noneon/barebox-vexpress.config
@@ -175,7 +175,9 @@ CONFIG_PBL_CONSOLE=y
 CONFIG_PARTITION=y
 CONFIG_PARTITION_DISK=y
 CONFIG_PARTITION_DISK_DOS=y
-# CONFIG_PARTITION_DISK_EFI is not set
+CONFIG_PARTITION_DISK_EFI=y
+CONFIG_PARTITION_DISK_EFI_GPT_NO_FORCE=y
+CONFIG_PARTITION_DISK_EFI_GPT_COMPARE=y
 CONFIG_ENV_HANDLING=y
 CONFIG_DEFAULT_ENVIRONMENT=y
 CONFIG_DEFAULT_COMPRESSION_NONE=y
@@ -864,6 +866,7 @@ CONFIG_LIBFDT=y
 #
 # end of Library gui routines
 
+CONFIG_PRINTF_UUID=y
 CONFIG_NLS=y
 # CONFIG_BLOBGEN is not set
 CONFIG_ARCH_HAS_STACK_DUMP=y
diff --git a/configs/platform-v7a_noneon/barebox-vexpress.config.diff b/configs/platform-v7a_noneon/barebox-vexpress.config.diff
index 2215ceb876cc..36ab78e8ebc3 100644
--- a/configs/platform-v7a_noneon/barebox-vexpress.config.diff
+++ b/configs/platform-v7a_noneon/barebox-vexpress.config.diff
@@ -1,4 +1,4 @@
-4843d0dbea5da5cc603015348ad891de
+71b0583d9737e188a32240ae7d29a558
 CONFIG_AMBA_SP804=y
 # CONFIG_ARCH_BCM283X is not set
 CONFIG_ARCH_VEXPRESS=y
diff --git a/configs/platform-v7a_noneon/barebox.config b/configs/platform-v7a_noneon/barebox.config
index 908bf1fe8d3f..9bbc3745d184 100644
--- a/configs/platform-v7a_noneon/barebox.config
+++ b/configs/platform-v7a_noneon/barebox.config
@@ -191,7 +191,9 @@ CONFIG_CONSOLE_ALLOW_COLOR=y
 CONFIG_PARTITION=y
 CONFIG_PARTITION_DISK=y
 CONFIG_PARTITION_DISK_DOS=y
-# CONFIG_PARTITION_DISK_EFI is not set
+CONFIG_PARTITION_DISK_EFI=y
+CONFIG_PARTITION_DISK_EFI_GPT_NO_FORCE=y
+CONFIG_PARTITION_DISK_EFI_GPT_COMPARE=y
 CONFIG_ENV_HANDLING=y
 CONFIG_DEFAULT_ENVIRONMENT=y
 CONFIG_DEFAULT_COMPRESSION_NONE=y
@@ -916,6 +918,7 @@ CONFIG_LIBFDT=y
 #
 # end of Library gui routines
 
+CONFIG_PRINTF_UUID=y
 CONFIG_NLS=y
 # CONFIG_BLOBGEN is not set
 CONFIG_ARCH_HAS_STACK_DUMP=y
-- 
2.39.2




^ permalink raw reply	[flat|nested] 12+ messages in thread

* [DistroKit] [PATCH v3 5/6] images: remove qemu size hack
  2023-10-20  9:05 [DistroKit] [PATCH v3 1/6] v7a: image-stm32mp: use 'partition-table-type' option instead of 'gpt' Roland Hieber
                   ` (2 preceding siblings ...)
  2023-10-20  9:05 ` [DistroKit] [PATCH v3 4/6] v7a: barebox: enable GUID Partition Table support Roland Hieber
@ 2023-10-20  9:05 ` Roland Hieber
  2023-10-20  9:05 ` [DistroKit] [PATCH v3 6/6] images: convert to GPT format Roland Hieber
  2023-10-20 10:56 ` [DistroKit] [PATCH v3 1/6] v7a: image-stm32mp: use 'partition-table-type' option instead of 'gpt' Robert Schwebel
  5 siblings, 0 replies; 12+ messages in thread
From: Roland Hieber @ 2023-10-20  9:05 UTC (permalink / raw)
  To: distrokit; +Cc: Roland Hieber

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.

Since the first MiB (when using 1 MiB alignment) is occupied by the
partition table, and the first partition only starts at offset 1 MiB,
the data partition now no longer fits into the available space. Set it
to 'autoresize' so that genimage computes the size to fill the remaining
space in the image.

Signed-off-by: Roland Hieber <rhi@pengutronix.de>
---
PATCH v3: no change

PATCH v2: https://lore.distrokit.org/distrokit/20231011105038.1380620-5-rhi@pengutronix.de
 * use 'autoresize' for data partition instead of explicit size

PATCH v1: https://lore.distrokit.org/distrokit/20231010191631.31141-5-rhi@pengutronix.de
---
 .../platform-mips/config/images/ar9331.config   | 16 ++++------------
 .../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  | 17 ++++-------------
 .../config/images/vexpress-nor.config           | 10 +++-------
 .../config/images/vexpress.config               | 17 ++++-------------
 7 files changed, 26 insertions(+), 76 deletions(-)

diff --git a/configs/platform-mips/config/images/ar9331.config b/configs/platform-mips/config/images/ar9331.config
index 07125bea4c88..16122eb26a22 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
+		autoresize = true
 	}
 }
 
diff --git a/configs/platform-mips/config/images/malta.config b/configs/platform-mips/config/images/malta.config
index 07125bea4c88..16122eb26a22 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
+		autoresize = true
 	}
 }
 
diff --git a/configs/platform-mipsel/config/images/malta.config b/configs/platform-mipsel/config/images/malta.config
index 07125bea4c88..16122eb26a22 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
+		autoresize = true
 	}
 }
 
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..5c523ae1707d 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
@@ -15,19 +18,7 @@ image @IMAGE@ {
 	}
 	partition data {
 		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
+		autoresize = true
 	}
 }
 
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..54c47a42c8bf 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
@@ -10,19 +13,7 @@ image @IMAGE@ {
 	}
 	partition data {
 		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
+		autoresize = true
 	}
 }
 
-- 
2.39.2




^ permalink raw reply	[flat|nested] 12+ messages in thread

* [DistroKit] [PATCH v3 6/6] images: convert to GPT format
  2023-10-20  9:05 [DistroKit] [PATCH v3 1/6] v7a: image-stm32mp: use 'partition-table-type' option instead of 'gpt' Roland Hieber
                   ` (3 preceding siblings ...)
  2023-10-20  9:05 ` [DistroKit] [PATCH v3 5/6] images: remove qemu size hack Roland Hieber
@ 2023-10-20  9:05 ` Roland Hieber
  2023-10-20 10:56 ` [DistroKit] [PATCH v3 1/6] v7a: image-stm32mp: use 'partition-table-type' option instead of 'gpt' Robert Schwebel
  5 siblings, 0 replies; 12+ messages in thread
From: Roland Hieber @ 2023-10-20  9:05 UTC (permalink / raw)
  To: distrokit; +Cc: Roland Hieber

The GUID Partition Table format has several advantages over the legacy
MBR format. Especially when we want to make use of systemd-repart
functionality later, the GPT format is a necessity. Therefore, migrate
all images to the GPT format.

For some platforms (Raspberry Pi, AM355x, AT91), we still need a legacy
MBR partition table so that the ROM code can find a bootable partition
(which contains our barebox image). For those cases, transform the image
into a hybrid format containing an MBR at offset 0, which contains the
VFAT boot partition for the ROM loader, and a protective GPT partition
of partition type 0xEE after it to claim the remaining space on the
storage medium for GPT purposes. Then a GPT header is added at the
default GPT offset of 0x200, which defines the boot partition as well as
the root partition, and which is read by Barebox and Linux to boot the
system.

For images that contain a raw barebox image at a fixed offset outside of
a GPT partition, make sure that the GPT does not conflict with the
barebox image, and write only the primary GPT header into the hole
specified by the barebox image (offset 440 to 1K), but move the GPT
partition array to an offset behind the barebox image. (genimage will
then also offset the following partitions accordingly.)

Remove any 'disk-signature' options, which are not compatible with GPT;
genimage will generate a random Disk UUID instead. Also remove any
'partition-type' options, and set the respective partition type GUIDs
specified by the Discoverable Partitions Specification [1], or let
genimage default to the 'linux-generic' partition type.

For the rpi1 image-hdimg, overwrite the upstream hd.config with a
hardcoded genimage config file since it is not possible to build a
hybrid MBR/GPT image with the image recipe from upstream PTXdist.

For the v7a image-hdimg, enable GPT support in the platformconfig menu,
and re-add the respective config lines from the upstream version of the
config file in order to make GPT work.

The images with fixed partition sizes for qemu need to stay below the
size specified in the 'size' option, so decrease the size of the last
partition further to make space for the secondary GPT header, which will
reside in the last block of the image.

Link: [1] https://uapi-group.org/specifications/specs/discoverable_partitions_specification/
Signed-off-by: Roland Hieber <rhi@pengutronix.de>
---
PATCH v3: no change

PATCH v2: https://lore.distrokit.org/distrokit/20231011105038.1380620-6-rhi@pengutronix.de
 * fix typo in log message
 * use partition-type-uuids from Discoverable Partitions Specification

PATCH v1: https://lore.distrokit.org/distrokit/20231010191631.31141-6-rhi@pengutronix.de
---
 .../platform-mips/config/images/ar9331.config    |  5 ++---
 configs/platform-mips/config/images/malta.config |  5 ++---
 .../platform-mipsel/config/images/malta.config   |  5 ++---
 configs/platform-rpi1/config/images/hd.config    | 16 ++++++++++++++++
 configs/platform-rpi1/platformconfig             |  4 ----
 configs/platform-rpi1/platforms/image-hdimg.in   | 11 +++++++++++
 .../platform-v7a/config/images/at91-sd.config    |  6 +++---
 .../platform-v7a/config/images/beaglebone.config |  8 ++++----
 configs/platform-v7a/config/images/gf.config     |  6 +++---
 configs/platform-v7a/config/images/hd.config     |  4 ++--
 .../platform-v7a/config/images/riotboard.config  |  8 ++++----
 configs/platform-v7a/config/images/rpi2.config   |  8 ++++----
 .../platform-v7a/config/images/sabrelite.config  |  6 +++---
 .../platform-v7a/config/images/udoo-neo.config   |  6 +++---
 .../platform-v7a/config/images/vexpress.config   |  7 +++----
 configs/platform-v7a/platformconfig              |  2 +-
 .../config/images/at91-sd.config                 |  6 +++---
 .../config/images/vexpress.config                |  5 ++---
 .../config/images/espressobin.config             |  4 ++--
 configs/platform-v8a/config/images/rock3a.config |  5 ++---
 20 files changed, 72 insertions(+), 55 deletions(-)
 create mode 100644 configs/platform-rpi1/config/images/hd.config
 create mode 100644 configs/platform-rpi1/platforms/image-hdimg.in

diff --git a/configs/platform-mips/config/images/ar9331.config b/configs/platform-mips/config/images/ar9331.config
index 16122eb26a22..f26627f84cc0 100644
--- a/configs/platform-mips/config/images/ar9331.config
+++ b/configs/platform-mips/config/images/ar9331.config
@@ -3,16 +3,15 @@ image @IMAGE@ {
 	size = 1G
 	hdimage {
 		align = 1M
-		disk-signature = 0x74823abf
 		fill = true
+		partition-table-type = gpt
 	}
 	partition root-A {
 		image = root.ext2
-		partition-type = 0x83
+		partition-type-uuid = e9434544-6e2c-47cc-bae2-12d6deafb44c # root-mips
 		size = 512M
 	}
 	partition data {
-		partition-type = 0x83
 		autoresize = true
 	}
 }
diff --git a/configs/platform-mips/config/images/malta.config b/configs/platform-mips/config/images/malta.config
index 16122eb26a22..f26627f84cc0 100644
--- a/configs/platform-mips/config/images/malta.config
+++ b/configs/platform-mips/config/images/malta.config
@@ -3,16 +3,15 @@ image @IMAGE@ {
 	size = 1G
 	hdimage {
 		align = 1M
-		disk-signature = 0x74823abf
 		fill = true
+		partition-table-type = gpt
 	}
 	partition root-A {
 		image = root.ext2
-		partition-type = 0x83
+		partition-type-uuid = e9434544-6e2c-47cc-bae2-12d6deafb44c # root-mips
 		size = 512M
 	}
 	partition data {
-		partition-type = 0x83
 		autoresize = true
 	}
 }
diff --git a/configs/platform-mipsel/config/images/malta.config b/configs/platform-mipsel/config/images/malta.config
index 16122eb26a22..c873c7e8b724 100644
--- a/configs/platform-mipsel/config/images/malta.config
+++ b/configs/platform-mipsel/config/images/malta.config
@@ -3,16 +3,15 @@ image @IMAGE@ {
 	size = 1G
 	hdimage {
 		align = 1M
-		disk-signature = 0x74823abf
 		fill = true
+		partition-table-type = gpt
 	}
 	partition root-A {
 		image = root.ext2
-		partition-type = 0x83
+		partition-type-uuid = 37c58c8a-d913-4156-a25f-48b1b64e07f0 # root-mips-le
 		size = 512M
 	}
 	partition data {
-		partition-type = 0x83
 		autoresize = true
 	}
 }
diff --git a/configs/platform-rpi1/config/images/hd.config b/configs/platform-rpi1/config/images/hd.config
new file mode 100644
index 000000000000..7b659a3130ad
--- /dev/null
+++ b/configs/platform-rpi1/config/images/hd.config
@@ -0,0 +1,16 @@
+image @IMAGE@ {
+	hdimage {
+		align = 1M
+		partition-table-type = hybrid
+	}
+	partition boot-vfat {
+		image = boot.vfat
+		partition-type-uuid = F
+		partition-type = 0xc
+		bootable = true
+	}
+	partition root {
+		image = root.ext2
+		partition-type-uuid = 69dad710-2ce4-4e3c-b16c-21a1d49abed3 # root-arm
+	}
+}
diff --git a/configs/platform-rpi1/platformconfig b/configs/platform-rpi1/platformconfig
index 234e6fe013ed..e92346fbe9b3 100644
--- a/configs/platform-rpi1/platformconfig
+++ b/configs/platform-rpi1/platformconfig
@@ -230,10 +230,6 @@ PTXCONF_IMAGE_BOOT_VFAT=y
 PTXCONF_IMAGE_BOOT_VFAT_GPU_MEM=16
 # PTXCONF_IMAGE_HD_VDI is not set
 PTXCONF_IMAGE_HDIMG=y
-# PTXCONF_IMAGE_HDIMG_GPT is not set
-# PTXCONF_IMAGE_HDIMG_NONE is not set
-# PTXCONF_IMAGE_HDIMG_BAREBOX is not set
-PTXCONF_IMAGE_HDIMG_VFAT=y
 PTXCONF_IMAGE_KERNEL=y
 
 #
diff --git a/configs/platform-rpi1/platforms/image-hdimg.in b/configs/platform-rpi1/platforms/image-hdimg.in
new file mode 100644
index 000000000000..052e7e71df38
--- /dev/null
+++ b/configs/platform-rpi1/platforms/image-hdimg.in
@@ -0,0 +1,11 @@
+## SECTION=image
+
+config IMAGE_HDIMG
+	bool
+	select HOST_GENIMAGE
+	select IMAGE_BOOT_VFAT
+	select IMAGE_ROOT_EXT
+	prompt "Generate images/hd.img"
+        help
+	  Build a harddisk root image. The image will contain one partition
+	  containing the root.ext2 and a corresponding partition table.
diff --git a/configs/platform-v7a/config/images/at91-sd.config b/configs/platform-v7a/config/images/at91-sd.config
index 641db071224f..a892868cd7b7 100644
--- a/configs/platform-v7a/config/images/at91-sd.config
+++ b/configs/platform-v7a/config/images/at91-sd.config
@@ -9,19 +9,19 @@ image @IMAGE@-boot.vfat {
 image @IMAGE@ {
 	hdimage {
 		align = 1M
-		disk-signature = 0x67823abf
+		partition-table-type = hybrid
 	}
 	partition boot {
 		image = @IMAGE@-boot.vfat
 		partition-type = 0xc
+		partition-type-uuid = F
 		bootable = true
 	}
 	partition root-A {
 		image = root.ext2
-		partition-type = 0x83
+		partition-type-uuid = 69dad710-2ce4-4e3c-b16c-21a1d49abed3 # root-arm
 	}
 	partition data {
-		partition-type = 0x83
 		size = 512M
 	}
 }
diff --git a/configs/platform-v7a/config/images/beaglebone.config b/configs/platform-v7a/config/images/beaglebone.config
index 07d251bfbe69..7509f501ec86 100644
--- a/configs/platform-v7a/config/images/beaglebone.config
+++ b/configs/platform-v7a/config/images/beaglebone.config
@@ -9,23 +9,23 @@ image beaglebone-boot.vfat {
 image @IMAGE@ {
 	hdimage {
 		align = 1M
-		disk-signature = 0xabe26147
+		partition-table-type = hybrid
 	}
 	partition boot {
 		image = beaglebone-boot.vfat
 		partition-type = 0xc
+		partition-type-uuid = F
 		bootable = true
 	}
 	partition root-A {
 		image = root.ext2
-		partition-type = 0x83
+		partition-type-uuid = 69dad710-2ce4-4e3c-b16c-21a1d49abed3 # root-arm
 	}
 	partition root-B {
 		image = root.ext2
-		partition-type = 0x83
+		partition-type-uuid = 69dad710-2ce4-4e3c-b16c-21a1d49abed3 # root-arm
 	}
 	partition data {
-		partition-type = 0x83
 		size = 512M
 	}
 }
diff --git a/configs/platform-v7a/config/images/gf.config b/configs/platform-v7a/config/images/gf.config
index fbaddf15f527..6ec1d90db659 100644
--- a/configs/platform-v7a/config/images/gf.config
+++ b/configs/platform-v7a/config/images/gf.config
@@ -9,19 +9,19 @@ image gf-boot.vfat {
 image @IMAGE@ {
 	hdimage {
 		align = 1M
-		disk-signature = 0x74823abf
+		partition-table-type = hybrid
 	}
 	partition boot {
 		image = gf-boot.vfat
 		partition-type = 0xc
+		partition-type-uuid = F
 		bootable = true
 	}
 	partition root-A {
 		image = root.ext2
-		partition-type = 0x83
+		partition-type-uuid = 69dad710-2ce4-4e3c-b16c-21a1d49abed3 # root-arm
 	}
 	partition data {
-		partition-type = 0x83
 		size = 512M
 	}
 }
diff --git a/configs/platform-v7a/config/images/hd.config b/configs/platform-v7a/config/images/hd.config
index 03cf37a0dbcf..dba48ca106ae 100644
--- a/configs/platform-v7a/config/images/hd.config
+++ b/configs/platform-v7a/config/images/hd.config
@@ -4,11 +4,11 @@
 image @IMAGE@ {
 	hdimage {
 		align = 1M
-		disk-signature = 0xdfb978e3
+		partition-table-type = "@PARTITION_TABLE_TYPE@"
 	}
 	@BOOTLOADER_PARTITIONS@
 	partition root {
 		image = root.ext2
-		partition-type = 0x83
+		partition-type-uuid = 69dad710-2ce4-4e3c-b16c-21a1d49abed3 # root-arm
 	}
 }
diff --git a/configs/platform-v7a/config/images/riotboard.config b/configs/platform-v7a/config/images/riotboard.config
index f311fd5e41b0..8ce12a07c71c 100644
--- a/configs/platform-v7a/config/images/riotboard.config
+++ b/configs/platform-v7a/config/images/riotboard.config
@@ -1,7 +1,8 @@
 image @IMAGE@ {
 	hdimage {
 		align = 1M
-		disk-signature = 0x67bac764
+		partition-table-type = gpt
+		gpt-location = 2M
 	}
 
 	partition barebox {
@@ -13,16 +14,15 @@ image @IMAGE@ {
 
 	partition root-A {
 		image = root.ext2
-		partition-type = 0x83
+		partition-type-uuid = 69dad710-2ce4-4e3c-b16c-21a1d49abed3 # root-arm
 	}
 
 	partition root-B {
 		image = root.ext2
-		partition-type = 0x83
+		partition-type-uuid = 69dad710-2ce4-4e3c-b16c-21a1d49abed3 # root-arm
 	}
 
 	partition data {
-		partition-type = 0x83
 		size = 512M
 	}
 }
diff --git a/configs/platform-v7a/config/images/rpi2.config b/configs/platform-v7a/config/images/rpi2.config
index eebf7052713f..71baae3bb8be 100644
--- a/configs/platform-v7a/config/images/rpi2.config
+++ b/configs/platform-v7a/config/images/rpi2.config
@@ -10,24 +10,24 @@ image rpi2-boot.vfat {
 image @IMAGE@ {
 	hdimage {
 		align = 1M
-		disk-signature = 0xbedf7893
+		partition-table-type = hybrid
 	}
 	partition boot {
 		offset = 4M
 		image = rpi2-boot.vfat
 		partition-type = 0xc
+		partition-type-uuid = F
 		bootable = true
 	}
 	partition root-A {
 		image = root.ext2
-		partition-type = 0x83
+		partition-type-uuid = 69dad710-2ce4-4e3c-b16c-21a1d49abed3 # root-arm
 	}
 	partition root-B {
 		image = root.ext2
-		partition-type = 0x83
+		partition-type-uuid = 69dad710-2ce4-4e3c-b16c-21a1d49abed3 # root-arm
 	}
 	partition data {
-		partition-type = 0x83
 		size = 512M
 	}
 }
diff --git a/configs/platform-v7a/config/images/sabrelite.config b/configs/platform-v7a/config/images/sabrelite.config
index 29e6b5f5a44a..2c7109c5c310 100644
--- a/configs/platform-v7a/config/images/sabrelite.config
+++ b/configs/platform-v7a/config/images/sabrelite.config
@@ -1,7 +1,8 @@
 image @IMAGE@ {
 	hdimage {
 		align = 1M
-		disk-signature = 0x67bac764
+		partition-table-type = gpt
+		gpt-location = 2M
 	}
 
 	partition barebox {
@@ -13,10 +14,9 @@ image @IMAGE@ {
 
 	partition root-A {
 		image = root.ext2
-		partition-type = 0x83
+		partition-type-uuid = 69dad710-2ce4-4e3c-b16c-21a1d49abed3 # root-arm
 	}
 	partition data {
-		partition-type = 0x83
 		size = 512M
 	}
 }
diff --git a/configs/platform-v7a/config/images/udoo-neo.config b/configs/platform-v7a/config/images/udoo-neo.config
index da677757804d..f801b5524baf 100644
--- a/configs/platform-v7a/config/images/udoo-neo.config
+++ b/configs/platform-v7a/config/images/udoo-neo.config
@@ -1,7 +1,8 @@
 image @IMAGE@ {
 	hdimage {
 		align = 1M
-		disk-signature = 0x374ac764
+		partition-table-type = gpt
+		gpt-location = 2M
 	}
 
 	partition barebox {
@@ -13,10 +14,9 @@ image @IMAGE@ {
 
 	partition root-A {
 		image = root.ext2
-		partition-type = 0x83
+		partition-type-uuid = 69dad710-2ce4-4e3c-b16c-21a1d49abed3 # root-arm
 	}
 	partition data {
-		partition-type = 0x83
 		size = 512M
 	}
 }
diff --git a/configs/platform-v7a/config/images/vexpress.config b/configs/platform-v7a/config/images/vexpress.config
index 5c523ae1707d..87eaedfe8b82 100644
--- a/configs/platform-v7a/config/images/vexpress.config
+++ b/configs/platform-v7a/config/images/vexpress.config
@@ -3,21 +3,20 @@ image @IMAGE@ {
 	size = 256M
 	hdimage {
 		align = 1M
-		disk-signature = 0x74823abf
 		fill = true
+		partition-table-type = gpt
 	}
 	partition root-A {
 		image = root.ext2
-		partition-type = 0x83
+		partition-type-uuid = 69dad710-2ce4-4e3c-b16c-21a1d49abed3 # root-arm
 		size = 96M
 	}
 	partition root-B {
 		image = root.ext2
-		partition-type = 0x83
+		partition-type-uuid = 69dad710-2ce4-4e3c-b16c-21a1d49abed3 # root-arm
 		size = 96M
 	}
 	partition data {
-		partition-type = 0x83
 		autoresize = true
 	}
 }
diff --git a/configs/platform-v7a/platformconfig b/configs/platform-v7a/platformconfig
index f1540f746124..75d431179c0c 100644
--- a/configs/platform-v7a/platformconfig
+++ b/configs/platform-v7a/platformconfig
@@ -242,7 +242,7 @@ PTXCONF_IMAGE_BEAGLEBONE=y
 PTXCONF_IMAGE_GF=y
 # PTXCONF_IMAGE_HD_VDI is not set
 PTXCONF_IMAGE_HDIMG=y
-# PTXCONF_IMAGE_HDIMG_GPT is not set
+PTXCONF_IMAGE_HDIMG_GPT=y
 PTXCONF_IMAGE_HDIMG_NONE=y
 # PTXCONF_IMAGE_HDIMG_BAREBOX is not set
 # PTXCONF_IMAGE_HDIMG_VFAT is not set
diff --git a/configs/platform-v7a_noneon/config/images/at91-sd.config b/configs/platform-v7a_noneon/config/images/at91-sd.config
index caecd247065a..9bf369ec9c2b 100644
--- a/configs/platform-v7a_noneon/config/images/at91-sd.config
+++ b/configs/platform-v7a_noneon/config/images/at91-sd.config
@@ -9,19 +9,19 @@ image @IMAGE@-boot.vfat {
 image @IMAGE@ {
 	hdimage {
 		align = 1M
-		disk-signature = 0x67823abf
+		partition-table-type = hybrid
 	}
 	partition boot {
 		image = @IMAGE@-boot.vfat
 		partition-type = 0xc
+		partition-type-uuid = F
 		bootable = true
 	}
 	partition root-A {
 		image = root.ext2
-		partition-type = 0x83
+		partition-type-uuid = 69dad710-2ce4-4e3c-b16c-21a1d49abed3 # root-arm
 	}
 	partition data {
-		partition-type = 0x83
 		size = 512M
 	}
 }
diff --git a/configs/platform-v7a_noneon/config/images/vexpress.config b/configs/platform-v7a_noneon/config/images/vexpress.config
index 54c47a42c8bf..0712ad82ce96 100644
--- a/configs/platform-v7a_noneon/config/images/vexpress.config
+++ b/configs/platform-v7a_noneon/config/images/vexpress.config
@@ -3,16 +3,15 @@ image @IMAGE@ {
 	size = 256M
 	hdimage {
 		align = 1M
-		disk-signature = 0x74823abf
 		fill = true
+		partition-table-type = gpt
 	}
 	partition root-A {
 		image = root.ext2
-		partition-type = 0x83
+		partition-type-uuid = 69dad710-2ce4-4e3c-b16c-21a1d49abed3 # root-arm
 		size = 192M
 	}
 	partition data {
-		partition-type = 0x83
 		autoresize = true
 	}
 }
diff --git a/configs/platform-v8a/config/images/espressobin.config b/configs/platform-v8a/config/images/espressobin.config
index c4ab201691a9..188bb9ae4d9e 100644
--- a/configs/platform-v8a/config/images/espressobin.config
+++ b/configs/platform-v8a/config/images/espressobin.config
@@ -1,14 +1,14 @@
 image @IMAGE@ {
 	hdimage {
 		align = 1M
+		partition-table-type = gpt
 	}
 	partition root-A {
 		image = root.ext2
-		partition-type = 0x83
+		partition-type-uuid = 69dad710-2ce4-4e3c-b16c-21a1d49abed3 # root-arm
 		size = 512M
 	}
 	partition data {
-		partition-type = 0x83
 		size = 512M
 	}
 }
diff --git a/configs/platform-v8a/config/images/rock3a.config b/configs/platform-v8a/config/images/rock3a.config
index 522d82cdc9c9..d6d5ada84426 100644
--- a/configs/platform-v8a/config/images/rock3a.config
+++ b/configs/platform-v8a/config/images/rock3a.config
@@ -1,7 +1,7 @@
 image @IMAGE@ {
 	hdimage {
 		align = 1M
-		disk-signature = 0xf5feaddc
+		partition-table-type = gpt
 	}
 	partition boot1 {
 		offset = 32k
@@ -24,10 +24,9 @@ image @IMAGE@ {
 	partition root-A {
 		offset = 5M
 		image = "root.ext2"
-		partition-type = 0x83
+		partition-type-uuid = b921b045-1df0-41c3-af44-4c6f280d3fae # root-arm64
 	}
 	partition data {
-		partition-type = 0x83
 		size = 512M
 	}
 }
-- 
2.39.2




^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [DistroKit] [PATCH v3 1/6] v7a: image-stm32mp: use 'partition-table-type' option instead of 'gpt'
  2023-10-20  9:05 [DistroKit] [PATCH v3 1/6] v7a: image-stm32mp: use 'partition-table-type' option instead of 'gpt' Roland Hieber
                   ` (4 preceding siblings ...)
  2023-10-20  9:05 ` [DistroKit] [PATCH v3 6/6] images: convert to GPT format Roland Hieber
@ 2023-10-20 10:56 ` Robert Schwebel
  5 siblings, 0 replies; 12+ messages in thread
From: Robert Schwebel @ 2023-10-20 10:56 UTC (permalink / raw)
  To: Roland Hieber; +Cc: distrokit

Applied series to next.

On Fri, Oct 20, 2023 at 11:05:14AM +0200, Roland Hieber wrote:
> The 'gpt' option in genimage has been deprecated in favour of
> 'partition-table-type = gpt'.
> 
> Signed-off-by: Roland Hieber <rhi@pengutronix.de>
> ---
> PATCH v3: no change
> 
> PATCH v2: no change
> 
> PATCH v1: https://lore.distrokit.org/distrokit/20231010191631.31141-1-rhi@pengutronix.de
> ---
>  configs/platform-v7a/config/images/stm32mp.config | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/configs/platform-v7a/config/images/stm32mp.config b/configs/platform-v7a/config/images/stm32mp.config
> index afef06d7e43d..38bac2483c9c 100644
> --- a/configs/platform-v7a/config/images/stm32mp.config
> +++ b/configs/platform-v7a/config/images/stm32mp.config
> @@ -1,7 +1,7 @@
>  image @IMAGE@ {
>  	hdimage {
>  		align = 1M
> -		gpt = true
> +		partition-table-type = gpt
>  		gpt-no-backup = true
>  	}
>  	partition fsbl1 {
> -- 
> 2.39.2
> 
> 
> 

-- 
Pengutronix e.K.                           | Dipl.-Ing. Robert Schwebel  |
Steuerwalder Str. 21                       | https://www.pengutronix.de/ |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-9    |



^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [DistroKit]  [PATCH v3 3/6] v7a: barebox: pass root=mmcblkXpN instead of root=PARTUUID=… to kernel
  2023-10-20  9:05 ` [DistroKit] [PATCH v3 3/6] v7a: barebox: pass root=mmcblkXpN instead of root=PARTUUID=… to kernel Roland Hieber
@ 2023-11-22 13:27   ` Ahmad Fatoum
  2023-11-22 14:17     ` Roland Hieber
  0 siblings, 1 reply; 12+ messages in thread
From: Ahmad Fatoum @ 2023-11-22 13:27 UTC (permalink / raw)
  To: Roland Hieber, distrokit

Hello Roland,

On 20.10.23 11:05, Roland Hieber wrote:
> Kernels prior to v5.10-rc1 could not ensure deterministic ordering for
> MMC devices. For this reason, the default 'append-root' behaviour of
> barebox for MMC block devices is to append a 'root=PARTUUID=XYZ' option
> to the kernel command line. The PARTUUID is derived from the partition
> table and is expected to be unique system-wide. This is however
> susceptible to breakage if the exact same image is written to different
> boot media in the system, e.g. SD and eMMC, so the PARTUUID will no
> longer uniquely refer to a single partition.
> 
> Newer kernel versions honor the numbering used for 'mmc' aliases,
> which makes 'root=mmcblkXpN' deterministic as long as barebox and
> kernel aliases are identical. Since we're using kernel 6.4, enable this
> option in barebox.

As you mention this feature requires that barebox and kernel aliases
are identical. At least for the STM32MP157C-EV1, this is not the case
as the kernel device tree has no aliases at all.

Can you send a revert?

Cheers,
Ahmad

> 
> Signed-off-by: Roland Hieber <rhi@pengutronix.de>
> ---
> PATCH v3: rebase to current next branch
> 
> PATCH v2: no change
> 
> PATCH v1: https://lore.distrokit.org/distrokit/20231010191631.31141-3-rhi@pengutronix.de
> ---
>  configs/platform-v7a/barebox-am335x.config               | 2 +-
>  configs/platform-v7a/barebox-am335x.config.diff          | 2 +-
>  configs/platform-v7a/barebox-at91.config                 | 2 +-
>  configs/platform-v7a/barebox-at91.config.diff            | 2 +-
>  configs/platform-v7a/barebox-mx6.config                  | 2 +-
>  configs/platform-v7a/barebox-mx6.config.diff             | 2 +-
>  configs/platform-v7a/barebox-rpi2.config                 | 2 +-
>  configs/platform-v7a/barebox-rpi2.config.diff            | 2 +-
>  configs/platform-v7a/barebox-stm32mp.config              | 2 +-
>  configs/platform-v7a/barebox-stm32mp.config.diff         | 2 +-
>  configs/platform-v7a/barebox-vexpress.config             | 2 +-
>  configs/platform-v7a/barebox-vexpress.config.diff        | 2 +-
>  configs/platform-v7a/barebox.config                      | 2 +-
>  configs/platform-v7a_noneon/barebox-at91.config          | 2 +-
>  configs/platform-v7a_noneon/barebox-at91.config.diff     | 2 +-
>  configs/platform-v7a_noneon/barebox-vexpress.config      | 2 +-
>  configs/platform-v7a_noneon/barebox-vexpress.config.diff | 2 +-
>  configs/platform-v7a_noneon/barebox.config               | 2 +-
>  18 files changed, 18 insertions(+), 18 deletions(-)
> 
> diff --git a/configs/platform-v7a/barebox-am335x.config b/configs/platform-v7a/barebox-am335x.config
> index e15e865c4443..40228f3b51e7 100644
> --- a/configs/platform-v7a/barebox-am335x.config
> +++ b/configs/platform-v7a/barebox-am335x.config
> @@ -182,7 +182,7 @@ CONFIG_BOOTM_OFTREE_UIMAGE=y
>  # CONFIG_BOOTM_FITIMAGE is not set
>  CONFIG_BLSPEC=y
>  CONFIG_FLEXIBLE_BOOTARGS=y
> -# CONFIG_MMCBLKDEV_ROOTARG is not set
> +CONFIG_MMCBLKDEV_ROOTARG=y
>  CONFIG_BAREBOX_UPDATE=y
>  CONFIG_SYSTEM_PARTITIONS=y
>  CONFIG_IMD=y
> diff --git a/configs/platform-v7a/barebox-am335x.config.diff b/configs/platform-v7a/barebox-am335x.config.diff
> index 899a66fc9381..95263f963905 100644
> --- a/configs/platform-v7a/barebox-am335x.config.diff
> +++ b/configs/platform-v7a/barebox-am335x.config.diff
> @@ -1,4 +1,4 @@
> -00cfb07a044814b94b716078e86d3d9b
> +da4e754ab156cc4c96aeadfc6c19b73f
>  # CONFIG_AM33XX_NET_BOOT is not set
>  CONFIG_ARCH_AM33XX=y
>  # CONFIG_ARCH_BCM283X is not set
> diff --git a/configs/platform-v7a/barebox-at91.config b/configs/platform-v7a/barebox-at91.config
> index 194d187ff137..1e9d40511ee9 100644
> --- a/configs/platform-v7a/barebox-at91.config
> +++ b/configs/platform-v7a/barebox-at91.config
> @@ -189,7 +189,7 @@ CONFIG_BOOTM_OFTREE_UIMAGE=y
>  # CONFIG_BOOTM_FITIMAGE is not set
>  CONFIG_BLSPEC=y
>  CONFIG_FLEXIBLE_BOOTARGS=y
> -# CONFIG_MMCBLKDEV_ROOTARG is not set
> +CONFIG_MMCBLKDEV_ROOTARG=y
>  CONFIG_BAREBOX_UPDATE=y
>  CONFIG_SYSTEM_PARTITIONS=y
>  CONFIG_IMD=y
> diff --git a/configs/platform-v7a/barebox-at91.config.diff b/configs/platform-v7a/barebox-at91.config.diff
> index 0eca8ce55755..35b055a9fd77 100644
> --- a/configs/platform-v7a/barebox-at91.config.diff
> +++ b/configs/platform-v7a/barebox-at91.config.diff
> @@ -1,4 +1,4 @@
> -00cfb07a044814b94b716078e86d3d9b
> +da4e754ab156cc4c96aeadfc6c19b73f
>  CONFIG_ARCH_AT91=y
>  # CONFIG_ARCH_BCM283X is not set
>  # CONFIG_ARCH_IMX is undefined
> diff --git a/configs/platform-v7a/barebox-mx6.config b/configs/platform-v7a/barebox-mx6.config
> index 06fe1ce71272..49b0c0fb31dc 100644
> --- a/configs/platform-v7a/barebox-mx6.config
> +++ b/configs/platform-v7a/barebox-mx6.config
> @@ -273,7 +273,7 @@ CONFIG_BOOTM_OFTREE_UIMAGE=y
>  # CONFIG_BOOTM_FITIMAGE is not set
>  CONFIG_BLSPEC=y
>  CONFIG_FLEXIBLE_BOOTARGS=y
> -# CONFIG_MMCBLKDEV_ROOTARG is not set
> +CONFIG_MMCBLKDEV_ROOTARG=y
>  CONFIG_BAREBOX_UPDATE=y
>  CONFIG_SYSTEM_PARTITIONS=y
>  CONFIG_IMD=y
> diff --git a/configs/platform-v7a/barebox-mx6.config.diff b/configs/platform-v7a/barebox-mx6.config.diff
> index 8c231f94471c..ba8d9c81a273 100644
> --- a/configs/platform-v7a/barebox-mx6.config.diff
> +++ b/configs/platform-v7a/barebox-mx6.config.diff
> @@ -1,4 +1,4 @@
> -00cfb07a044814b94b716078e86d3d9b
> +da4e754ab156cc4c96aeadfc6c19b73f
>  # CONFIG_ARCH_BCM283X is not set
>  CONFIG_ARCH_HAS_FEC_IMX=y
>  CONFIG_ARCH_HAS_IMX_GPT=y
> diff --git a/configs/platform-v7a/barebox-rpi2.config b/configs/platform-v7a/barebox-rpi2.config
> index 3bcbcc28b754..48c19d04bec7 100644
> --- a/configs/platform-v7a/barebox-rpi2.config
> +++ b/configs/platform-v7a/barebox-rpi2.config
> @@ -175,7 +175,7 @@ CONFIG_BOOTM_OFTREE=y
>  # CONFIG_BOOTM_FITIMAGE is not set
>  CONFIG_BLSPEC=y
>  CONFIG_FLEXIBLE_BOOTARGS=y
> -# CONFIG_MMCBLKDEV_ROOTARG is not set
> +CONFIG_MMCBLKDEV_ROOTARG=y
>  CONFIG_BAREBOX_UPDATE=y
>  CONFIG_SYSTEM_PARTITIONS=y
>  CONFIG_IMD=y
> diff --git a/configs/platform-v7a/barebox-rpi2.config.diff b/configs/platform-v7a/barebox-rpi2.config.diff
> index b3b496fca3a8..614e7151fd70 100644
> --- a/configs/platform-v7a/barebox-rpi2.config.diff
> +++ b/configs/platform-v7a/barebox-rpi2.config.diff
> @@ -1,4 +1,4 @@
> -00cfb07a044814b94b716078e86d3d9b
> +da4e754ab156cc4c96aeadfc6c19b73f
>  CONFIG_ARM_ASM_UNIFIED=y
>  # CONFIG_CMD_NVMEM is not set
>  CONFIG_DRIVER_NET_BCMGENET=y
> diff --git a/configs/platform-v7a/barebox-stm32mp.config b/configs/platform-v7a/barebox-stm32mp.config
> index 76f051a68bb1..c9cb065ce3e1 100644
> --- a/configs/platform-v7a/barebox-stm32mp.config
> +++ b/configs/platform-v7a/barebox-stm32mp.config
> @@ -171,7 +171,7 @@ CONFIG_BOOTM_OFTREE_UIMAGE=y
>  # CONFIG_BOOTM_FITIMAGE is not set
>  CONFIG_BLSPEC=y
>  CONFIG_FLEXIBLE_BOOTARGS=y
> -# CONFIG_MMCBLKDEV_ROOTARG is not set
> +CONFIG_MMCBLKDEV_ROOTARG=y
>  CONFIG_BAREBOX_UPDATE=y
>  CONFIG_SYSTEM_PARTITIONS=y
>  CONFIG_IMD=y
> diff --git a/configs/platform-v7a/barebox-stm32mp.config.diff b/configs/platform-v7a/barebox-stm32mp.config.diff
> index 23f14eeed6c1..5708326ae722 100644
> --- a/configs/platform-v7a/barebox-stm32mp.config.diff
> +++ b/configs/platform-v7a/barebox-stm32mp.config.diff
> @@ -1,4 +1,4 @@
> -00cfb07a044814b94b716078e86d3d9b
> +da4e754ab156cc4c96aeadfc6c19b73f
>  # CONFIG_ARCH_BCM283X is not set
>  CONFIG_ARCH_HAS_RESET_CONTROLLER=y
>  CONFIG_ARCH_NR_GPIO=416
> diff --git a/configs/platform-v7a/barebox-vexpress.config b/configs/platform-v7a/barebox-vexpress.config
> index ba2cb67c499c..596776ab88fa 100644
> --- a/configs/platform-v7a/barebox-vexpress.config
> +++ b/configs/platform-v7a/barebox-vexpress.config
> @@ -158,7 +158,7 @@ CONFIG_BOOTM_OFTREE=y
>  # CONFIG_BOOTM_FITIMAGE is not set
>  CONFIG_BLSPEC=y
>  CONFIG_FLEXIBLE_BOOTARGS=y
> -# CONFIG_MMCBLKDEV_ROOTARG is not set
> +CONFIG_MMCBLKDEV_ROOTARG=y
>  CONFIG_BAREBOX_UPDATE=y
>  CONFIG_SYSTEM_PARTITIONS=y
>  CONFIG_IMD=y
> diff --git a/configs/platform-v7a/barebox-vexpress.config.diff b/configs/platform-v7a/barebox-vexpress.config.diff
> index ff68e3efa1c3..24345a450c4e 100644
> --- a/configs/platform-v7a/barebox-vexpress.config.diff
> +++ b/configs/platform-v7a/barebox-vexpress.config.diff
> @@ -1,4 +1,4 @@
> -00cfb07a044814b94b716078e86d3d9b
> +da4e754ab156cc4c96aeadfc6c19b73f
>  CONFIG_AMBA_SP804=y
>  # CONFIG_ARCH_BCM283X is not set
>  CONFIG_ARCH_VEXPRESS=y
> diff --git a/configs/platform-v7a/barebox.config b/configs/platform-v7a/barebox.config
> index 7bc38c8cf20f..2cb5df8e4796 100644
> --- a/configs/platform-v7a/barebox.config
> +++ b/configs/platform-v7a/barebox.config
> @@ -174,7 +174,7 @@ CONFIG_BOOTM_OFTREE=y
>  # CONFIG_BOOTM_FITIMAGE is not set
>  CONFIG_BLSPEC=y
>  CONFIG_FLEXIBLE_BOOTARGS=y
> -# CONFIG_MMCBLKDEV_ROOTARG is not set
> +CONFIG_MMCBLKDEV_ROOTARG=y
>  CONFIG_BAREBOX_UPDATE=y
>  CONFIG_SYSTEM_PARTITIONS=y
>  CONFIG_IMD=y
> diff --git a/configs/platform-v7a_noneon/barebox-at91.config b/configs/platform-v7a_noneon/barebox-at91.config
> index d66e099ecada..600417a314df 100644
> --- a/configs/platform-v7a_noneon/barebox-at91.config
> +++ b/configs/platform-v7a_noneon/barebox-at91.config
> @@ -180,7 +180,7 @@ CONFIG_BOOTM_OFTREE_UIMAGE=y
>  # CONFIG_BOOTM_FITIMAGE is not set
>  CONFIG_BLSPEC=y
>  CONFIG_FLEXIBLE_BOOTARGS=y
> -# CONFIG_MMCBLKDEV_ROOTARG is not set
> +CONFIG_MMCBLKDEV_ROOTARG=y
>  CONFIG_BAREBOX_UPDATE=y
>  CONFIG_SYSTEM_PARTITIONS=y
>  CONFIG_IMD=y
> diff --git a/configs/platform-v7a_noneon/barebox-at91.config.diff b/configs/platform-v7a_noneon/barebox-at91.config.diff
> index 29584321f023..9a5ff84cf648 100644
> --- a/configs/platform-v7a_noneon/barebox-at91.config.diff
> +++ b/configs/platform-v7a_noneon/barebox-at91.config.diff
> @@ -1,4 +1,4 @@
> -1dedd85e90c7b6ae44712caf6c69913b
> +4843d0dbea5da5cc603015348ad891de
>  CONFIG_ARCH_AT91=y
>  # CONFIG_ARCH_BCM283X is not set
>  # CONFIG_ARCH_IMX is undefined
> diff --git a/configs/platform-v7a_noneon/barebox-vexpress.config b/configs/platform-v7a_noneon/barebox-vexpress.config
> index d2b7aa6c0073..cf504a6c606c 100644
> --- a/configs/platform-v7a_noneon/barebox-vexpress.config
> +++ b/configs/platform-v7a_noneon/barebox-vexpress.config
> @@ -158,7 +158,7 @@ CONFIG_BOOTM_OFTREE=y
>  # CONFIG_BOOTM_FITIMAGE is not set
>  CONFIG_BLSPEC=y
>  CONFIG_FLEXIBLE_BOOTARGS=y
> -# CONFIG_MMCBLKDEV_ROOTARG is not set
> +CONFIG_MMCBLKDEV_ROOTARG=y
>  CONFIG_BAREBOX_UPDATE=y
>  # CONFIG_SYSTEM_PARTITIONS is not set
>  CONFIG_IMD=y
> diff --git a/configs/platform-v7a_noneon/barebox-vexpress.config.diff b/configs/platform-v7a_noneon/barebox-vexpress.config.diff
> index fff891e02b70..2215ceb876cc 100644
> --- a/configs/platform-v7a_noneon/barebox-vexpress.config.diff
> +++ b/configs/platform-v7a_noneon/barebox-vexpress.config.diff
> @@ -1,4 +1,4 @@
> -1dedd85e90c7b6ae44712caf6c69913b
> +4843d0dbea5da5cc603015348ad891de
>  CONFIG_AMBA_SP804=y
>  # CONFIG_ARCH_BCM283X is not set
>  CONFIG_ARCH_VEXPRESS=y
> diff --git a/configs/platform-v7a_noneon/barebox.config b/configs/platform-v7a_noneon/barebox.config
> index bbedcdb2d650..908bf1fe8d3f 100644
> --- a/configs/platform-v7a_noneon/barebox.config
> +++ b/configs/platform-v7a_noneon/barebox.config
> @@ -174,7 +174,7 @@ CONFIG_BOOTM_OFTREE=y
>  # CONFIG_BOOTM_FITIMAGE is not set
>  CONFIG_BLSPEC=y
>  CONFIG_FLEXIBLE_BOOTARGS=y
> -# CONFIG_MMCBLKDEV_ROOTARG is not set
> +CONFIG_MMCBLKDEV_ROOTARG=y
>  CONFIG_BAREBOX_UPDATE=y
>  # CONFIG_SYSTEM_PARTITIONS is not set
>  CONFIG_IMD=y

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |




^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [DistroKit]  [PATCH v3 3/6] v7a: barebox: pass root=mmcblkXpN instead of root=PARTUUID=… to kernel
  2023-11-22 13:27   ` Ahmad Fatoum
@ 2023-11-22 14:17     ` Roland Hieber
  2023-11-22 14:24       ` Ahmad Fatoum
  0 siblings, 1 reply; 12+ messages in thread
From: Roland Hieber @ 2023-11-22 14:17 UTC (permalink / raw)
  To: Ahmad Fatoum; +Cc: distrokit

On Wed, Nov 22, 2023 at 02:27:00PM +0100, Ahmad Fatoum wrote:
> Hello Roland,
> 
> On 20.10.23 11:05, Roland Hieber wrote:
> > Kernels prior to v5.10-rc1 could not ensure deterministic ordering for
> > MMC devices. For this reason, the default 'append-root' behaviour of
> > barebox for MMC block devices is to append a 'root=PARTUUID=XYZ' option
> > to the kernel command line. The PARTUUID is derived from the partition
> > table and is expected to be unique system-wide. This is however
> > susceptible to breakage if the exact same image is written to different
> > boot media in the system, e.g. SD and eMMC, so the PARTUUID will no
> > longer uniquely refer to a single partition.
> > 
> > Newer kernel versions honor the numbering used for 'mmc' aliases,
> > which makes 'root=mmcblkXpN' deterministic as long as barebox and
> > kernel aliases are identical. Since we're using kernel 6.4, enable this
> > option in barebox.
> 
> As you mention this feature requires that barebox and kernel aliases
> are identical. At least for the STM32MP157C-EV1, this is not the case
> as the kernel device tree has no aliases at all.

Oh. How come? Can we patch the kernel DT to make them the same?

> Can you send a revert?

I can send a revert, but I don't like the implications. Incidentally,
this topic was discussed in length last week on a systemd pull request
of mine [1], with the TL;DR that filesystem and partition UUIDs should
not generally be considered unique. While that might be the case in the
DistroKit test runs, we also have some boards with eMMCs that can hold
the same image as the SD cards that we boot from. I suspect this might
come back to bite us some time in the future.

[1]: https://github.com/systemd/systemd/pull/29219#issuecomment-1812226959

 - Roland

-- 
Roland Hieber, Pengutronix e.K.          | r.hieber@pengutronix.de     |
Steuerwalder Str. 21                     | https://www.pengutronix.de/ |
31137 Hildesheim, Germany                | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686         | Fax:   +49-5121-206917-5555 |



^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [DistroKit]  [PATCH v3 3/6] v7a: barebox: pass root=mmcblkXpN instead of root=PARTUUID=… to kernel
  2023-11-22 14:17     ` Roland Hieber
@ 2023-11-22 14:24       ` Ahmad Fatoum
  2023-12-11  9:37         ` [DistroKit] [PATCH] v7a: barebox-stm32mp1: pass " Roland Hieber
  0 siblings, 1 reply; 12+ messages in thread
From: Ahmad Fatoum @ 2023-11-22 14:24 UTC (permalink / raw)
  To: Roland Hieber; +Cc: distrokit

Hello Roland,

On 22.11.23 15:17, Roland Hieber wrote:
> On Wed, Nov 22, 2023 at 02:27:00PM +0100, Ahmad Fatoum wrote:
>> Hello Roland,
>>
>> On 20.10.23 11:05, Roland Hieber wrote:
>>> Kernels prior to v5.10-rc1 could not ensure deterministic ordering for
>>> MMC devices. For this reason, the default 'append-root' behaviour of
>>> barebox for MMC block devices is to append a 'root=PARTUUID=XYZ' option
>>> to the kernel command line. The PARTUUID is derived from the partition
>>> table and is expected to be unique system-wide. This is however
>>> susceptible to breakage if the exact same image is written to different
>>> boot media in the system, e.g. SD and eMMC, so the PARTUUID will no
>>> longer uniquely refer to a single partition.
>>>
>>> Newer kernel versions honor the numbering used for 'mmc' aliases,
>>> which makes 'root=mmcblkXpN' deterministic as long as barebox and
>>> kernel aliases are identical. Since we're using kernel 6.4, enable this
>>> option in barebox.
>>
>> As you mention this feature requires that barebox and kernel aliases
>> are identical. At least for the STM32MP157C-EV1, this is not the case
>> as the kernel device tree has no aliases at all.
> 
> Oh. How come? Can we patch the kernel DT to make them the same?

Having aliases for everything is uncommon outside i.MX. I am in favor
of adding aliases upstream to all DTs we support, but that would take
a while.

> 
>> Can you send a revert?
> 
> I can send a revert, but I don't like the implications. Incidentally,
> this topic was discussed in length last week on a systemd pull request
> of mine [1], with the TL;DR that filesystem and partition UUIDs should
> not generally be considered unique. While that might be the case in the
> DistroKit test runs, we also have some boards with eMMCs that can hold
> the same image as the SD cards that we boot from. I suspect this might
> come back to bite us some time in the future.

I don't mind restoring CONFIG_MMCBLKDEV_ROOTARG for devices whose aliases
have been vetted to be identical between barebox and Linux, but right now,
this breaks boot on at least one board.

Cheers,
Ahmad



> 
> [1]: https://github.com/systemd/systemd/pull/29219#issuecomment-1812226959
> 
>  - Roland
> 

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |




^ permalink raw reply	[flat|nested] 12+ messages in thread

* [DistroKit] [PATCH] v7a: barebox-stm32mp1: pass root=PARTUUID=… to kernel
  2023-11-22 14:24       ` Ahmad Fatoum
@ 2023-12-11  9:37         ` Roland Hieber
  2023-12-12 17:58           ` Robert Schwebel
  0 siblings, 1 reply; 12+ messages in thread
From: Roland Hieber @ 2023-12-11  9:37 UTC (permalink / raw)
  To: distrokit; +Cc: Ahmad Fatoum, Roland Hieber

This partly reverts commit e0ca556db7983a99acc3330dc32cdae395e84003.

As Ahmad reports, the kernel device tree of STM32MP157C-EV1 has no
aliases at all, which is a precondition for enabling MMCBLKDEV_ROOTARG
in barebox. Restore the old state which detects the PARTUUID of the root
partition and passes it to the kernel.

Link: https://lore.distrokit.org/distrokit/9afb1d8a-f90d-7d74-781d-c33f6b7a2efb@pengutronix.de
Fixes: e0ca556db7983a99acc3 (2023-10-20, "v7a: barebox: pass root=mmcblkXpN instead of root=PARTUUID=… to kernel")
Reported-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
Signed-off-by: Roland Hieber <rhi@pengutronix.de>
---
 configs/platform-v7a/barebox-stm32mp.config      | 2 +-
 configs/platform-v7a/barebox-stm32mp.config.diff | 1 +
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/configs/platform-v7a/barebox-stm32mp.config b/configs/platform-v7a/barebox-stm32mp.config
index c9cb065ce3e1..76f051a68bb1 100644
--- a/configs/platform-v7a/barebox-stm32mp.config
+++ b/configs/platform-v7a/barebox-stm32mp.config
@@ -171,7 +171,7 @@ CONFIG_BOOTM_OFTREE_UIMAGE=y
 # CONFIG_BOOTM_FITIMAGE is not set
 CONFIG_BLSPEC=y
 CONFIG_FLEXIBLE_BOOTARGS=y
-CONFIG_MMCBLKDEV_ROOTARG=y
+# CONFIG_MMCBLKDEV_ROOTARG is not set
 CONFIG_BAREBOX_UPDATE=y
 CONFIG_SYSTEM_PARTITIONS=y
 CONFIG_IMD=y
diff --git a/configs/platform-v7a/barebox-stm32mp.config.diff b/configs/platform-v7a/barebox-stm32mp.config.diff
index 3a4ebf51a091..f1511064ff62 100644
--- a/configs/platform-v7a/barebox-stm32mp.config.diff
+++ b/configs/platform-v7a/barebox-stm32mp.config.diff
@@ -82,6 +82,7 @@ CONFIG_MFD_STM32_TIMERS=y
 CONFIG_MFD_STPMIC1=y
 CONFIG_MFD_SYSCON=y
 CONFIG_MICREL_PHY=y
+# CONFIG_MMCBLKDEV_ROOTARG is not set
 # CONFIG_MTD is not set
 # CONFIG_MTD_CONCAT is undefined
 # CONFIG_MTD_DATAFLASH is undefined
-- 
2.39.2




^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [DistroKit]  [PATCH] v7a: barebox-stm32mp1: pass root=PARTUUID=… to kernel
  2023-12-11  9:37         ` [DistroKit] [PATCH] v7a: barebox-stm32mp1: pass " Roland Hieber
@ 2023-12-12 17:58           ` Robert Schwebel
  0 siblings, 0 replies; 12+ messages in thread
From: Robert Schwebel @ 2023-12-12 17:58 UTC (permalink / raw)
  To: Roland Hieber; +Cc: distrokit, Ahmad Fatoum

Applied to next.

On Mon, Dec 11, 2023 at 10:37:58AM +0100, Roland Hieber wrote:
> This partly reverts commit e0ca556db7983a99acc3330dc32cdae395e84003.
> 
> As Ahmad reports, the kernel device tree of STM32MP157C-EV1 has no
> aliases at all, which is a precondition for enabling MMCBLKDEV_ROOTARG
> in barebox. Restore the old state which detects the PARTUUID of the root
> partition and passes it to the kernel.
> 
> Link: https://lore.distrokit.org/distrokit/9afb1d8a-f90d-7d74-781d-c33f6b7a2efb@pengutronix.de
> Fixes: e0ca556db7983a99acc3 (2023-10-20, "v7a: barebox: pass root=mmcblkXpN instead of root=PARTUUID=… to kernel")
> Reported-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
> Signed-off-by: Roland Hieber <rhi@pengutronix.de>
> ---
>  configs/platform-v7a/barebox-stm32mp.config      | 2 +-
>  configs/platform-v7a/barebox-stm32mp.config.diff | 1 +
>  2 files changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/configs/platform-v7a/barebox-stm32mp.config b/configs/platform-v7a/barebox-stm32mp.config
> index c9cb065ce3e1..76f051a68bb1 100644
> --- a/configs/platform-v7a/barebox-stm32mp.config
> +++ b/configs/platform-v7a/barebox-stm32mp.config
> @@ -171,7 +171,7 @@ CONFIG_BOOTM_OFTREE_UIMAGE=y
>  # CONFIG_BOOTM_FITIMAGE is not set
>  CONFIG_BLSPEC=y
>  CONFIG_FLEXIBLE_BOOTARGS=y
> -CONFIG_MMCBLKDEV_ROOTARG=y
> +# CONFIG_MMCBLKDEV_ROOTARG is not set
>  CONFIG_BAREBOX_UPDATE=y
>  CONFIG_SYSTEM_PARTITIONS=y
>  CONFIG_IMD=y
> diff --git a/configs/platform-v7a/barebox-stm32mp.config.diff b/configs/platform-v7a/barebox-stm32mp.config.diff
> index 3a4ebf51a091..f1511064ff62 100644
> --- a/configs/platform-v7a/barebox-stm32mp.config.diff
> +++ b/configs/platform-v7a/barebox-stm32mp.config.diff
> @@ -82,6 +82,7 @@ CONFIG_MFD_STM32_TIMERS=y
>  CONFIG_MFD_STPMIC1=y
>  CONFIG_MFD_SYSCON=y
>  CONFIG_MICREL_PHY=y
> +# CONFIG_MMCBLKDEV_ROOTARG is not set
>  # CONFIG_MTD is not set
>  # CONFIG_MTD_CONCAT is undefined
>  # CONFIG_MTD_DATAFLASH is undefined
> -- 
> 2.39.2
> 
> 
> 

-- 
Pengutronix e.K.                           | Dipl.-Ing. Robert Schwebel  |
Steuerwalder Str. 21                       | https://www.pengutronix.de/ |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-9    |



^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2023-12-12 17:58 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-10-20  9:05 [DistroKit] [PATCH v3 1/6] v7a: image-stm32mp: use 'partition-table-type' option instead of 'gpt' Roland Hieber
2023-10-20  9:05 ` [DistroKit] [PATCH v3 2/6] images: use 'partition-table-type' option instead of 'partition-table' Roland Hieber
2023-10-20  9:05 ` [DistroKit] [PATCH v3 3/6] v7a: barebox: pass root=mmcblkXpN instead of root=PARTUUID=… to kernel Roland Hieber
2023-11-22 13:27   ` Ahmad Fatoum
2023-11-22 14:17     ` Roland Hieber
2023-11-22 14:24       ` Ahmad Fatoum
2023-12-11  9:37         ` [DistroKit] [PATCH] v7a: barebox-stm32mp1: pass " Roland Hieber
2023-12-12 17:58           ` Robert Schwebel
2023-10-20  9:05 ` [DistroKit] [PATCH v3 4/6] v7a: barebox: enable GUID Partition Table support Roland Hieber
2023-10-20  9:05 ` [DistroKit] [PATCH v3 5/6] images: remove qemu size hack Roland Hieber
2023-10-20  9:05 ` [DistroKit] [PATCH v3 6/6] images: convert to GPT format Roland Hieber
2023-10-20 10:56 ` [DistroKit] [PATCH v3 1/6] v7a: image-stm32mp: use 'partition-table-type' option instead of 'gpt' Robert Schwebel

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox