mirror of
https://git.savannah.gnu.org/git/grub.git
synced 2026-10-25 08:39:28 +00:00
pre-located image for veyron
This commit is contained in:
1 parent
f2df41cffa
commit
ab8770a314
2 files changed
+25
-4
No files matched your search
@@ -218,7 +218,8 @@ SUFFIX (grub_mkimage_generate_elf) (const struct grub_install_image_target_desc
|
|||||||
string_size += sizeof (".xen");
|
string_size += sizeof (".xen");
|
||||||
footer_size += XEN_NOTE_SIZE;
|
footer_size += XEN_NOTE_SIZE;
|
||||||
}
|
}
|
||||||
if (image_target->id == IMAGE_COREBOOT && image_target->elf_target == EM_ARM)
|
if (image_target->id == IMAGE_COREBOOT && image_target->elf_target == EM_ARM
|
||||||
|
&& image_target->link_addr == 0)
|
||||||
{
|
{
|
||||||
phnum++;
|
phnum++;
|
||||||
shnum++;
|
shnum++;
|
||||||
@@ -319,7 +320,8 @@ SUFFIX (grub_mkimage_generate_elf) (const struct grub_install_image_target_desc
|
|||||||
phdr->p_align = grub_host_to_target32 (image_target->link_align);
|
phdr->p_align = grub_host_to_target32 (image_target->link_align);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (image_target->id == IMAGE_COREBOOT && image_target->elf_target == EM_ARM)
|
if (image_target->id == IMAGE_COREBOOT && image_target->elf_target == EM_ARM
|
||||||
|
&& image_target->link_addr == 0)
|
||||||
{
|
{
|
||||||
char *note_start = (elf_img + program_size + header_size);
|
char *note_start = (elf_img + program_size + header_size);
|
||||||
Elf_Nhdr *note_ptr;
|
Elf_Nhdr *note_ptr;
|
||||||
@@ -532,7 +534,8 @@ SUFFIX (grub_mkimage_generate_elf) (const struct grub_install_image_target_desc
|
|||||||
shdr->sh_entsize = grub_host_to_target32 (0);
|
shdr->sh_entsize = grub_host_to_target32 (0);
|
||||||
shdr++;
|
shdr++;
|
||||||
}
|
}
|
||||||
if (image_target->id == IMAGE_COREBOOT && image_target->elf_target == EM_ARM)
|
if (image_target->id == IMAGE_COREBOOT && image_target->elf_target == EM_ARM
|
||||||
|
&& image_target->link_addr == 0)
|
||||||
{
|
{
|
||||||
memcpy (ptr, ".coreboot_flags", sizeof (".coreboot_flags"));
|
memcpy (ptr, ".coreboot_flags", sizeof (".coreboot_flags"));
|
||||||
shdr->sh_name = grub_host_to_target32 (ptr - str_start);
|
shdr->sh_name = grub_host_to_target32 (ptr - str_start);
|
||||||
|
|||||||
+19
-1
@@ -548,7 +548,25 @@ static const struct grub_install_image_target_desc image_targets[] =
|
|||||||
.mod_gap = GRUB_KERNEL_ARM_COREBOOT_MOD_GAP,
|
.mod_gap = GRUB_KERNEL_ARM_COREBOOT_MOD_GAP,
|
||||||
.mod_align = GRUB_KERNEL_ARM_COREBOOT_MOD_ALIGN,
|
.mod_align = GRUB_KERNEL_ARM_COREBOOT_MOD_ALIGN,
|
||||||
.link_align = 4,
|
.link_align = 4,
|
||||||
/* FIXME: Kept only for comaptibility with existing coreboot installs. */
|
},
|
||||||
|
/* For coreboot versions that don't support self-relocating images. */
|
||||||
|
{
|
||||||
|
.dirname = "arm-coreboot-veyron",
|
||||||
|
.names = { "arm-coreboot-veyron", NULL },
|
||||||
|
.voidp_sizeof = 4,
|
||||||
|
.bigendian = 0,
|
||||||
|
.id = IMAGE_COREBOOT,
|
||||||
|
.flags = PLATFORM_FLAGS_NONE,
|
||||||
|
.total_module_size = GRUB_KERNEL_ARM_COREBOOT_TOTAL_MODULE_SIZE,
|
||||||
|
.decompressor_compressed_size = TARGET_NO_FIELD,
|
||||||
|
.decompressor_uncompressed_size = TARGET_NO_FIELD,
|
||||||
|
.decompressor_uncompressed_addr = TARGET_NO_FIELD,
|
||||||
|
.section_align = GRUB_KERNEL_ARM_COREBOOT_MOD_ALIGN,
|
||||||
|
.vaddr_offset = 0,
|
||||||
|
.elf_target = EM_ARM,
|
||||||
|
.mod_gap = GRUB_KERNEL_ARM_COREBOOT_MOD_GAP,
|
||||||
|
.mod_align = GRUB_KERNEL_ARM_COREBOOT_MOD_ALIGN,
|
||||||
|
.link_align = 4,
|
||||||
.link_addr = 0x43000000,
|
.link_addr = 0x43000000,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in new issue
Block a user