OvmfPkg: Xen: Generate fdf include file from ELF header generator

Updating the fdf include file based on the run of the ELF header
generator. The diff from this patch is the result of:

$ gcc -o elf_gen OvmfPkg/OvmfXenElfHeaderGenerator.c
$ ./elf_gen 2097152 OvmfPkg/XenElfHeader.fdf.inc

Acked-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
This commit is contained in:
Sebastien Boeuf 2022-03-02 21:31:32 +08:00 committed by mergify[bot]
parent 0a707eb258
commit 0015a4e0a8

View File

@ -8,57 +8,35 @@
## ##
DATA = { DATA = {
#
# This hex array have been generated by OvmfPkg/OvmfXenElfHeaderGenerator.c
# and copied manually.
#
# ELF file header # ELF file header
0x7f, 0x45, 0x4c, 0x46, # e_ident[0..3]: Magic number 0x7f, 0x45, 0x4c, 0x46, 0x01, 0x01, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x03, 0x00, 0x01, 0x00, 0x00, 0x00,
0x01, # File class: 32-bit objects 0xd0, 0xff, 0x2f, 0x00, # hdr.e_entry
0x01, # Data encoding: 2's complement, little endian 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x00, 0x20, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, # File version
0x03, # OS ABI identification: Object uses GNU ELF extensions
0x00, # ABI version
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, # e_ident[EI_PAD...]
0x02, 0x00, # e_type = Executable file
0x03, 0x00, # e_machine = Intel 80386
0x01, 0x00, 0x00, 0x00, # e_version
0xd0, 0xff, 0x2f, 0x00, # e_entry: Entry point virtual address
0x34, 0x00, 0x00, 0x00, # e_phoff: Program header table file offset
0x00, 0x00, 0x00, 0x00, # e_shoff: Section header table file offset
0x00, 0x00, 0x00, 0x00, # e_flags: Processor-specific flags
0x34, 0x00, # e_ehsize: ELF header size
0x20, 0x00, # e_phentsize: Program header table entry size
0x02, 0x00, # e_phnum: Program header table entry count
0x00, 0x00, # e_shentsize: Section header table entry size
0x00, 0x00, # e_shnum: Section header table entry count
0x00, 0x00, # e_shstrndx
# ELF Program segment headers # ELF Program segment headers
# - Load segment # - Load segment
0x01, 0x00, 0x00, 0x00, # p_type = Loadable program segment 0x01, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, # p_offset 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x10, 0x00, # p_vaddr: Segment virtual address 0x00, 0x00, 0x10, 0x00,
0x00, 0x00, 0x10, 0x00, # p_paddr: Segment physical address 0x00, 0x00, 0x10, 0x00,
0x00, 0x00, 0x20, 0x00, # p_filesz: Segment size in file 0x00, 0x00, 0x20, 0x00,
0x00, 0x00, 0x20, 0x00, # p_memsz: Segment size in memory 0x00, 0x00, 0x20, 0x00,
0x07, 0x00, 0x00, 0x00, # p_flags = Segment is executable | writable | readable 0x07, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, # p_align 0x00, 0x00, 0x00, 0x00,
# - ELFNOTE segment # - ELFNOTE segment
0x04, 0x00, 0x00, 0x00, # p_type = PT_NOTE 0x04, 0x00, 0x00, 0x00,
0x74, 0x00, 0x00, 0x00, # p_offset = point to XEN_ELFNOTE_PHYS32_ENTRY below 0x74, 0x00, 0x00, 0x00,
0x74, 0x00, 0x10, 0x00, 0x74, 0x00, 0x10, 0x00,
0x74, 0x00, 0x10, 0x00, 0x74, 0x00, 0x10, 0x00,
0x14, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00,
0x14, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, # p_flags = Segment is readable 0x04, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
# XEN_ELFNOTE_PHYS32_ENTRY # XEN_ELFNOTE_PHYS32_ENTRY
0x04, 0x00, 0x00, 0x00, # name size 0x04, 0x00, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, # desc size 0x04, 0x00, 0x00, 0x00,
0x12, 0x00, 0x00, 0x00, # type = XEN_ELFNOTE_PHYS32_ENTRY 0x12, 0x00, 0x00, 0x00,
0x58, 0x65, 0x6e, 0x00, # name = "Xen" 0x58, 0x65, 0x6e, 0x00,
0xd0, 0xff, 0x2f, 0x00, # desc: PVH entry point 0xd0, 0xff, 0x2f, 0x00
0x00
} }