|
@@ -391,6 +391,13 @@ int main(int argc, char ** argv)
|
|
|
die("Unable to mmap '%s': %m", argv[2]);
|
|
|
/* Number of 16-byte paragraphs, including space for a 4-byte CRC */
|
|
|
sys_size = (sz + 15 + 4) / 16;
|
|
|
+#ifdef CONFIG_EFI_STUB
|
|
|
+ /*
|
|
|
+ * COFF requires minimum 32-byte alignment of sections, and
|
|
|
+ * adding a signature is problematic without that alignment.
|
|
|
+ */
|
|
|
+ sys_size = (sys_size + 1) & ~1;
|
|
|
+#endif
|
|
|
|
|
|
/* Patch the setup code with the appropriate size parameters */
|
|
|
buf[0x1f1] = setup_sectors-1;
|