On Wed, Nov 29, 2023 at 08:22:32AM +0100, Emile `iMil' Heitor wrote:
> On Thu, 23 Nov 2023, Emile `iMil' Heitor wrote:
> 
> > It seems we have a similar problem to the second bullet point Colin Percival
> > noted here
> > https://www.daemonology.net/blog/2022-10-18-FreeBSD-Firecracker.html
> > When removing the hvm_start_info address save portion, the sym mapping
> > doesn't fall into an infinite loop anymore.
> > Not yet sure how to fix that, I'll have a look at FreeBSD's commits on this
> > matter.
> 
> And so it was, in locore.S:start_xen32, this assumption is wrong when the
> entrypoint is called from qemu:
> 
>       /*
>        * save addr of the hvm_start_info structure. This is also the end
>        * of the symbol table
>        */
> 
> this makes esym point to an address (%ebx + KERNBASE) which is not the
> end of the symbol table.
> Same goes with eblob which is calculated relative to %ebx.
> A friend of mine, Gregory in CC, found that putting those 2 (esym and eblob)
> to 0 made the paging init go fine as both tests (l.660 and 667) will trigger
> jz 1f and keep %edi to __kernel_end.
> This brings us to init_xen_early(), which is failing but that's another story.

Of course, this is *not* a Xen VM, so no surprise that start_xen32
isn't working.

-- 
Manuel Bouyer <bou...@antioche.eu.org>
     NetBSD: 26 ans d'experience feront toujours la difference
--

Reply via email to