[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-users] Booting efi and bios with one binary.

On Thu, 2015-02-26 at 19:01 -0800, Chris Takemura wrote:
> >
> >>  * clean seabios-dir; reconfigure for xen/qemu directly.
> >>  * rebuild seabios
> >>  * modify ovmf-dir/Makefile to include -D ENABLE_CSM
> >>  * build ovmf
> >>  * build hvmloader
> >> 
> >> 
> >> I *think* that hvmloader includes the ovmf and seabios images within
> >> it.  Is that correct?  Is there any way I can check that the seabios
> >> csm is included?  Is it getting used?
> >
> >I've no idea how this CSM stuff works, but would it not be expected that
> >Csm16.bin would be baked into the ovmf image somehow, and then that ovmf
> >image baked into hvmloader? (that wiki page seems to suggest that).
> >
> >I'd be very surprised if ovmf was able to use the separate seabios baked
> >into hvmloader, it just has no way of even knowing it is there.
> >hvmloader just copies the appropriate blob (per BIOS selection) into the
> >right place in RAM and then jumps to it, so any other blob is
> >effectively lost at that point.
> Great.  That's my understanding also.  I would definitely expect that an
> hvmloader with functional CSM wouldn't need the seabios blob.  What I'm
> really wondering is if there's any way to check that the CSM module exists
> in the OVMF output -- the doc refers to tools to extract the blob, but has
> no indication of what they are.

I've no idea either. If the blob is stored uncompressed then perhaps
strings(1) (from binutils package) might include e.g. the SeaBIOS
version banner which you should also see in out/$whatever.

> >Other than the above filename thing, perhaps as an experiment try
> >putting a seabios CSM image into the ESP (EFI System Partition) of a
> >guest and loading it as an EFI application from the EFI shell (or adding
> >it to boot manager)? Once you have that aspect working then figure out
> >separately how to embed the CSM (if that's even possible, maybe ESP is
> >the right answer?).
> Hmm.  I've tried that now, and the firmware doesn't acknowledge the CSM
> file as executable. ("Error reported: Unsupported" when I try.) It does
> load a grub efi binary successfully.  Is the CSM blob actually supposed to
> be an EFI executable?  That would make sense, but I don't know anything
> about it.

I would have expected an EFI executable too.

Does file(1) report that the CSM blob is a PE executable of some sort?

I don't have an x86 EFI executable around, but e.g. for this arm64
grub.efi I have sitting here it says:

        PE32+ executable (EFI application) (stripped to external PDB), for MS 

> >If you do figure this out then it would be very appreciated if you could
> >document it at http://wiki.xen.org/wiki/OVMF [0]. Eventually I'd really
> >like to embed this stuff into the regular build (and perhaps make OVMF
> >w/ SeaBIOS CSM available the default BIOS, and perhaps deprecate bare
> >SeaBIOS with time). If you fancy doing some xen.git Makefile hacking let
> >me know ;-)
> If I figure this out, I'll be as surprised as anyone.

Between the two of us groping around in the dark maybe we'll get
somewhere ;-)


Xen-users mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.