mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-07-30 05:43:53 -06:00
pvh: Boot uncompressed kernel using direct boot ABI
These changes (along with corresponding Linux kernel and qboot changes) enable a guest to be booted using the x86/HVM direct boot ABI. This commit adds a load_elfboot() routine to pass the size and location of the kernel entry point to qboot (which will fill in the start_info struct information needed to to boot the guest). Having loaded the ELF binary, load_linux() will run qboot which continues the boot. The address for the kernel entry point is read from an ELF Note in the uncompressed kernel binary by a helper routine passed to load_elf(). Co-developed-by: George Kennedy <George.Kennedy@oracle.com> Signed-off-by: George Kennedy <George.Kennedy@oracle.com> Signed-off-by: Liam Merwick <liam.merwick@oracle.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
20a965067f
commit
ab969087da
2 changed files with 145 additions and 0 deletions
|
@ -1640,6 +1640,16 @@ typedef struct elf64_shdr {
|
|||
#define NT_ARM_HW_WATCH 0x403 /* ARM hardware watchpoint registers */
|
||||
#define NT_ARM_SYSTEM_CALL 0x404 /* ARM system call number */
|
||||
|
||||
/*
|
||||
* Physical entry point into the kernel.
|
||||
*
|
||||
* 32bit entry point into the kernel. When requested to launch the
|
||||
* guest kernel, use this entry point to launch the guest in 32-bit
|
||||
* protected mode with paging disabled.
|
||||
*
|
||||
* [ Corresponding definition in Linux kernel: include/xen/interface/elfnote.h ]
|
||||
*/
|
||||
#define XEN_ELFNOTE_PHYS32_ENTRY 18 /* 0x12 */
|
||||
|
||||
/* Note header in a PT_NOTE section */
|
||||
typedef struct elf32_note {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue