]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
grub-mkimage: Add SBAT metadata into ELF note for PowerPC targets
authorSudhakar Kuppusamy <sudhakar@linux.ibm.com>
Wed, 23 Oct 2024 12:24:33 +0000 (17:54 +0530)
committerDaniel Kiper <daniel.kiper@oracle.com>
Thu, 31 Oct 2024 15:18:36 +0000 (16:18 +0100)
The SBAT metadata is read from CSV file and transformed into an ELF note
with the -s option.

Signed-off-by: Daniel Axtens <dja@axtens.net>
Signed-off-by: Sudhakar Kuppusamy <sudhakar@linux.ibm.com>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
util/mkimage.c

index ef2b9fae024d939d0bda0142a5f8541113174d40..b46df2909216f2413e788c71db301f2fc462898d 100644 (file)
@@ -943,8 +943,8 @@ grub_install_generate_image (const char *dir, const char *prefix,
       total_module_size += dtb_size + sizeof (struct grub_module_header);
     }
 
-  if (sbat_path != NULL && image_target->id != IMAGE_EFI)
-    grub_util_error (_(".sbat section can be embedded into EFI images only"));
+  if (sbat_path != NULL && (image_target->id != IMAGE_EFI && image_target->id != IMAGE_PPC))
+    grub_util_error (_("SBAT data can be added only to EFI or powerpc-ieee1275 images"));
 
   if (disable_shim_lock)
     total_module_size += sizeof (struct grub_module_header);
@@ -1815,6 +1815,13 @@ grub_install_generate_image (const char *dir, const char *prefix,
       {
        grub_uint64_t target_addr;
        char *sbat = NULL;
+       if (sbat_path != NULL)
+         {
+           sbat_size = grub_util_get_image_size (sbat_path);
+           sbat = xmalloc (sbat_size);
+           grub_util_load_image (sbat_path, sbat);
+           layout.sbat_size = sbat_size;
+         }
        if (image_target->id == IMAGE_LOONGSON_ELF)
          {
            if (comp == GRUB_COMPRESSION_NONE)