On Mon, Nov 13, 2023 at 06:37:01AM +0100, Emile `iMil' Heitor wrote: > > I first asked guidance in port-xen@ but the topic doesn't seem to have much > success, I'll try my chances here. > > I am trying to make NetBSD/amd64 boot in PVH mode with qemu, using qemu's > -kernel flag. The kernel does start executing thanks to the first step > explained here > https://www.daemonology.net/blog/2022-10-18-FreeBSD-Firecracker.html > i.e. adding PVH entry point to the kernel ELF notes. > > #define ELFNOTE(name, type, desctype, descdata...) \ > -.pushsection .note.name ; \ > +.pushsection .note.name, "a", @note ; \ > .align 4 ; \ > .long 2f - 1f /* namesz */ ; \ > .long 4f - 3f /* descsz */ ; \ > @@ -588,6 +603,8 @@ next: pop %edi > movl %eax,(%ebp) > > The start_xen32 entrypoint is then found, and the kernel start, but falls in > an infinite loop in locore.S when mapping symbols and preloaded modules, > more precisely, in the fillkpt_nox macro. I assume %ecx is wrong or the region > corrupted for some reason. > https://github.com/NetBSD/src/blob/trunk/sys/arch/amd64/amd64/locore.S#L738
I don't think you can use start_xen32 as is, as it expects a Xen environnemwnt. You may need to write a new start routine, or make a difference between Xen vs non-Xen in the existing one. -- Manuel Bouyer <bou...@antioche.eu.org> NetBSD: 26 ans d'experience feront toujours la difference --