mirror of https://github.com/acidanthera/audk.git
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:
parent
0a707eb258
commit
0015a4e0a8
|
@ -8,57 +8,35 @@
|
|||
##
|
||||
|
||||
DATA = {
|
||||
#
|
||||
# This hex array have been generated by OvmfPkg/OvmfXenElfHeaderGenerator.c
|
||||
# and copied manually.
|
||||
#
|
||||
# ELF file header
|
||||
0x7f, 0x45, 0x4c, 0x46, # e_ident[0..3]: Magic number
|
||||
0x01, # File class: 32-bit objects
|
||||
0x01, # Data encoding: 2's complement, little endian
|
||||
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
|
||||
0x7f, 0x45, 0x4c, 0x46, 0x01, 0x01, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x03, 0x00, 0x01, 0x00, 0x00, 0x00,
|
||||
0xd0, 0xff, 0x2f, 0x00, # hdr.e_entry
|
||||
0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x00, 0x20, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
# ELF Program segment headers
|
||||
# - Load segment
|
||||
0x01, 0x00, 0x00, 0x00, # p_type = Loadable program segment
|
||||
0x00, 0x00, 0x00, 0x00, # p_offset
|
||||
0x00, 0x00, 0x10, 0x00, # p_vaddr: Segment virtual address
|
||||
0x00, 0x00, 0x10, 0x00, # p_paddr: Segment physical address
|
||||
0x00, 0x00, 0x20, 0x00, # p_filesz: Segment size in file
|
||||
0x00, 0x00, 0x20, 0x00, # p_memsz: Segment size in memory
|
||||
0x07, 0x00, 0x00, 0x00, # p_flags = Segment is executable | writable | readable
|
||||
0x00, 0x00, 0x00, 0x00, # p_align
|
||||
0x01, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x10, 0x00,
|
||||
0x00, 0x00, 0x10, 0x00,
|
||||
0x00, 0x00, 0x20, 0x00,
|
||||
0x00, 0x00, 0x20, 0x00,
|
||||
0x07, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
# - ELFNOTE segment
|
||||
0x04, 0x00, 0x00, 0x00, # p_type = PT_NOTE
|
||||
0x74, 0x00, 0x00, 0x00, # p_offset = point to XEN_ELFNOTE_PHYS32_ENTRY below
|
||||
0x04, 0x00, 0x00, 0x00,
|
||||
0x74, 0x00, 0x00, 0x00,
|
||||
0x74, 0x00, 0x10, 0x00,
|
||||
0x74, 0x00, 0x10, 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,
|
||||
|
||||
# XEN_ELFNOTE_PHYS32_ENTRY
|
||||
0x04, 0x00, 0x00, 0x00, # name size
|
||||
0x04, 0x00, 0x00, 0x00, # desc size
|
||||
0x12, 0x00, 0x00, 0x00, # type = XEN_ELFNOTE_PHYS32_ENTRY
|
||||
0x58, 0x65, 0x6e, 0x00, # name = "Xen"
|
||||
0xd0, 0xff, 0x2f, 0x00, # desc: PVH entry point
|
||||
0x00
|
||||
0x04, 0x00, 0x00, 0x00,
|
||||
0x04, 0x00, 0x00, 0x00,
|
||||
0x12, 0x00, 0x00, 0x00,
|
||||
0x58, 0x65, 0x6e, 0x00,
|
||||
0xd0, 0xff, 0x2f, 0x00
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue