On Fri, Mar 01, 2019 at 05:56:36PM +0000, Alex Bennée wrote: > > Stefano Garzarella <sgarz...@redhat.com> writes: > > > On Fri, Mar 01, 2019 at 04:53:57PM +0000, Alex Bennée wrote: > >> > >> Paolo Bonzini <pbonz...@redhat.com> writes: > >> > >> > From: Liam Merwick <liam.merw...@oracle.com> > >> > > >> > The x86/HVM direct boot ABI permits Qemu to be able to boot directly > >> > into the uncompressed Linux kernel binary with minimal firmware > >> > involvement. > >> > > >> > https://xenbits.xen.org/docs/unstable/misc/pvh.html > >> > > >> > This commit adds the header file that defines the start_info struct > >> > that needs to be populated in order to use this ABI. > >> > > >> > The canonical version of start_info.h is in the Xen codebase. > >> > (like QEMU, the Linux kernel uses a copy as well). > >> > > >> > Signed-off-by: Liam Merwick <liam.merw...@oracle.com> > >> > Reviewed-by: Konrad Rzeszutek Wilk <konrad.w...@oracle.com> > >> > Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> > >> > >> This has changed behaviour of a boot. Previously: > >> > >> qemu-system-i386 -serial mon:stdio -nographic -device \ > >> isa-debugcon,chardev=serial0 -kernel ./tests/hello > >> > > > > Hi Alex, > > is your image in multiboot format? > > AFAICT yes, I'm not super familiar with x86 so I'm mostly cribbing from: > > https://github.com/doug65536/qemu-bmibug > > > I sent a patch few weeks ago that fix the loading of multiboot images: > > https://www.mail-archive.com/qemu-devel@nongnu.org/msg596424.html > > That certainly fixes things. Although I'm wondering if it's worth making > my test image PVH compatible anyway (if it's easy to do) as all I really > want to do is exercise the softmmu code. It might be simpler to use > paravirtualised serial ports rather than banging an IO port, IDK?
I don't have a lot of experience too, but I don't think there are a lot of differences in terms of how to use ports. Multiboot and PVH change the way how to jump to your image. Both provide a structure where your image can found the e820 memory map and PVH provides also the RSDP (ACPI) pointer. Maybe create a PVH image should be simpler because you only need to put in the ELF note the entry point of your ELF image. Then, EBX will contain the address of start_info structure (where you can find the e820 mmap). You can take a look of this file in Linux: arch/x86/platform/pvh/head.S I hope this can help :) Cheers, Stefano