Hello,
Given the following vm.cfg file:
name="vm"
type="hvm"
vcpus=4
memory=1024
firmware_override="/root/xen-syms"
kernel="/boot/vmlinuz-4.4-xen"
ramdisk="/boot/initrd-4.4.0+10.img"
cmdline="console=xen,pv dom0=pv --- earlyprintk=xen"
Xen crashes with the following trace:
(d15) (XEN) Xen BUG at pvh-boot.c:82
(d15) (XEN) ----[ Xen-4.12.0-rc x86_64 debug=y Not tainted ]----
(d15) (XEN) CPU: 0
(d15) (XEN) RIP: e008:[<ffff82d0804331f2>] pvh_init+0x27d/0x2fe
<snip>
(d15) (XEN) Xen call trace:
(d15) (XEN) [<ffff82d0804331f2>] pvh_init+0x27d/0x2fe
(d15) (XEN) [<ffff82d080429000>] __start_xen+0x14c/0x28f6
(d15) (XEN) [<ffff82d0802000f3>] __high_start+0x53/0x55
(d15) (XEN)
(d15) (XEN)
(d15) (XEN) ****************************************
(d15) (XEN) Panic on CPU 0:
(d15) (XEN) Xen BUG at pvh-boot.c:82
(d15) (XEN) ****************************************
The problem is that Xen is started at its PVH entrypoint (contrary
to the instructions in the vm config file), and Xen unconditionally
expects RSDP to be passed.
There are at least two bugs here.
1) RSDP was a late addition to the PVH boot protocol. Xen's PVH
entrypoint must not mandate its existence, because there are
releases of the domain builder which don't provide it.
2) The HVM/PVH boot confusion. This think this is a
still-outstanding bug around the broken assumption that the
hvmloader binary speaks the PVH protocol without advertising itself
appropriately (I really regret not objecting to those patches before
they went in). At the least, that needs fixing by putting a proper
ELF note in hvmloader, and the domain builder needs to be updated to
build all PVH-boot-ABI images consistently.
I don't have time to look into this at the moment, if anyone fancies
trying to fix these issues.
~Andrew