diff options
Diffstat (limited to 'sys-boot/grub/files/grub-2.06-006-riscv-update-image-header.patch')
-rw-r--r-- | sys-boot/grub/files/grub-2.06-006-riscv-update-image-header.patch | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/sys-boot/grub/files/grub-2.06-006-riscv-update-image-header.patch b/sys-boot/grub/files/grub-2.06-006-riscv-update-image-header.patch new file mode 100644 index 0000000..5ebd4f2 --- /dev/null +++ b/sys-boot/grub/files/grub-2.06-006-riscv-update-image-header.patch @@ -0,0 +1,81 @@ +Update the RISC-V Linux kernel image headers as per the current header. + +Reference: +<Linux kernel source>/Documentation/riscv/boot-image-header.rst + +Signed-off-by: Atish Patra <atish.patra@wdc.com> +--- + include/grub/riscv32/linux.h | 15 ++++++++------- + include/grub/riscv64/linux.h | 15 ++++++++------- + 2 files changed, 16 insertions(+), 14 deletions(-) + +diff --git a/include/grub/riscv32/linux.h b/include/grub/riscv32/linux.h +index 512b777c8..de0dbdcd1 100644 +--- a/include/grub/riscv32/linux.h ++++ b/include/grub/riscv32/linux.h +@@ -19,20 +19,21 @@ + #ifndef GRUB_RISCV32_LINUX_HEADER + #define GRUB_RISCV32_LINUX_HEADER 1 + +-#define GRUB_LINUX_RISCV_MAGIC_SIGNATURE 0x52534356 /* 'RSCV' */ ++#define GRUB_LINUX_RISCV_MAGIC_SIGNATURE 0x05435352 /* 'RSC\0x5' */ + +-/* From linux/Documentation/riscv/booting.txt */ ++/* From linux/Documentation/riscv/boot-image-header.rst */ + struct linux_riscv_kernel_header + { + grub_uint32_t code0; /* Executable code */ + grub_uint32_t code1; /* Executable code */ +- grub_uint64_t text_offset; /* Image load offset */ +- grub_uint64_t res0; /* reserved */ +- grub_uint64_t res1; /* reserved */ ++ grub_uint64_t text_offset; /* Image load offset, little endian */ ++ grub_uint64_t image_size; /* Effective Image size, little endian */ ++ grub_uint64_t flags; /* kernel flags, little endian */ ++ grub_uint32_t version; /* Version of this header */ ++ grub_uint32_t res1; /* reserved */ + grub_uint64_t res2; /* reserved */ + grub_uint64_t res3; /* reserved */ +- grub_uint64_t res4; /* reserved */ +- grub_uint32_t magic; /* Magic number, little endian, "RSCV" */ ++ grub_uint32_t magic; /* Magic number, little endian, "RSC\x05" */ + grub_uint32_t hdr_offset; /* Offset of PE/COFF header */ + }; + +diff --git a/include/grub/riscv64/linux.h b/include/grub/riscv64/linux.h +index 3630c30fb..7c28bc922 100644 +--- a/include/grub/riscv64/linux.h ++++ b/include/grub/riscv64/linux.h +@@ -19,22 +19,23 @@ + #ifndef GRUB_RISCV64_LINUX_HEADER + #define GRUB_RISCV64_LINUX_HEADER 1 + +-#define GRUB_LINUX_RISCV_MAGIC_SIGNATURE 0x52534356 /* 'RSCV' */ ++#define GRUB_LINUX_RISCV_MAGIC_SIGNATURE 0x05435352 /* 'RSC\0x5' */ + + #define GRUB_EFI_PE_MAGIC 0x5A4D + +-/* From linux/Documentation/riscv/booting.txt */ ++/* From linux/Documentation/riscv/boot-image-header.rst */ + struct linux_riscv_kernel_header + { + grub_uint32_t code0; /* Executable code */ + grub_uint32_t code1; /* Executable code */ +- grub_uint64_t text_offset; /* Image load offset */ +- grub_uint64_t res0; /* reserved */ +- grub_uint64_t res1; /* reserved */ ++ grub_uint64_t text_offset; /* Image load offset, little endian */ ++ grub_uint64_t image_size; /* Effective Image size, little endian */ ++ grub_uint64_t flags; /* kernel flags, little endian */ ++ grub_uint32_t version; /* Version of this header */ ++ grub_uint32_t res1; /* reserved */ + grub_uint64_t res2; /* reserved */ + grub_uint64_t res3; /* reserved */ +- grub_uint64_t res4; /* reserved */ +- grub_uint32_t magic; /* Magic number, little endian, "RSCV" */ ++ grub_uint32_t magic; /* Magic number, little endian, "RSC\x05" */ + grub_uint32_t hdr_offset; /* Offset of PE/COFF header */ + }; + +-- +2.29.3 |