Currently, choosing IMAGE_HDIMG_GPT together with IMAGE_HDIMG_BAREBOX leads to an error in genimage because the full GPT array is larger than the hole in the barebox image. However, the hole in the barebox images is large enough to fit the protective MBR and the primary GPT header. The rest of the GPT array needs to moved after the barebox image, so set the gpt-location setting to the size of the barebox image.
For the other bootloaders, nothing needs to change, so set the gpt-location to its default value of 1024. For MBR, this config setting is ignored. Link: https://www.barebox.org/doc/latest/boards/imx.html#using-gpt-on-i-mx Signed-off-by: Roland Hieber <r...@pengutronix.de> --- v1 -> v2: just improve the commit message --- config/images/barebox_partitions.config | 2 +- config/images/hd.config | 1 + rules/image-hdimg.make | 3 +++ 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/config/images/barebox_partitions.config b/config/images/barebox_partitions.config index a5c55e69e952..114b461d9099 100644 --- a/config/images/barebox_partitions.config +++ b/config/images/barebox_partitions.config @@ -1,6 +1,6 @@ partition barebox { in-partition-table = false image = "barebox-image" - holes = {"(440; 512)"} + holes = {"(440; 1024)"} size = 2M } diff --git a/config/images/hd.config b/config/images/hd.config index d33ddc43490a..0ae3c27b46b7 100644 --- a/config/images/hd.config +++ b/config/images/hd.config @@ -5,6 +5,7 @@ image @IMAGE@ { hdimage { align = 1M partition-table-type = "@PARTITION_TABLE_TYPE@" + gpt-location = "@GPT_LOCATION@" } @BOOTLOADER_PARTITIONS@ partition root { diff --git a/rules/image-hdimg.make b/rules/image-hdimg.make index b470c0fb6b1a..02f7f84bfcad 100644 --- a/rules/image-hdimg.make +++ b/rules/image-hdimg.make @@ -30,17 +30,20 @@ IMAGE_HDIMG_BOOTLOADER_ENV := \ ifdef PTXCONF_IMAGE_HDIMG_GRUB IMAGE_HDIMG_BOOTLOADER_ENV = \ + GPT_LOCATION='1024' \ GRUB_STAGE_DIR=$(GRUB_STAGE_DIR) \ BOOTLOADER_IMAGES='include("grub.config")' \ BOOTLOADER_PARTITIONS='include("grub_partitions.config")' endif ifdef PTXCONF_IMAGE_HDIMG_BAREBOX IMAGE_HDIMG_BOOTLOADER_ENV := \ + GPT_LOCATION='2M' \ BOOTLOADER_IMAGES='' \ BOOTLOADER_PARTITIONS='include("barebox_partitions.config")' endif ifdef PTXCONF_IMAGE_HDIMG_VFAT IMAGE_HDIMG_BOOTLOADER_ENV := \ + GPT_LOCATION='1024' \ BOOTLOADER_IMAGES='' \ BOOTLOADER_PARTITIONS='include("vfat_partitions.config")' -- 2.30.2