Device tree (DTB) lengths are being padded to a multiple of 4 bytes rather than the target-specific pointer size. This causes objects following OBJ_TYPE_DTB objects to be incorrectly parsed during GRUB execution on arm64.
Fix by using ALIGN_ADDR, not ALIGN_UP. Signed-by-off: Matthew Daley <ma...@bugfuzz.com> --- util/mkimage.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/util/mkimage.c b/util/mkimage.c index e22d82afa..b2f43fea6 100644 --- a/util/mkimage.c +++ b/util/mkimage.c @@ -829,7 +829,7 @@ grub_install_generate_image (const char *dir, const char *prefix, if (dtb_path) { - dtb_size = ALIGN_UP(grub_util_get_image_size (dtb_path), 4); + dtb_size = ALIGN_ADDR(grub_util_get_image_size (dtb_path)); total_module_size += dtb_size + sizeof (struct grub_module_header); } -- 2.11.0 _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel