From: Michael Brown <mcb30@ipxe.org>
To: Gerd Hoffmann <kraxel@redhat.com>
Cc: ipxe-devel <ipxe-devel@ipxe.org>, qemu-devel <qemu-devel@nongnu.org>
Subject: Re: [Qemu-devel] [ipxe-devel] EFI_PXE_BASE_CODE_PROTOCOL
Date: Thu, 10 Sep 2015 16:29:38 +0100 [thread overview]
Message-ID: <55F1A1E2.2010603@ipxe.org> (raw)
In-Reply-To: <1441898426.11233.37.camel@redhat.com>
On 10/09/15 16:20, Gerd Hoffmann wrote:
>> Thanks. From my experiments, it seems that GRUB is using the hardcoded
>> path /efi/boot/grub.cfg to locate the configuration file, regardless of
>> where grub.efi was loaded from.
>
> Hmm, probably depends on how you are building it. There are also tools
> like grub2-mknetdir and grub2-mkstandalone. Pretty confusing :(
>
> I'm using the binary shipped with RHEL. The centos one should show the
> same behavior.
>
> https://ftp.fau.de/centos/7.1.1503/os/x86_64/EFI/BOOT/
That grubx64.efi binary makes no attempt to even look for an
EFI_PXE_BASE_CODE_PROTOCOL. Here's the complete log of calls that it makes:
OpenProtocol (
PciRoot(0x0)/Pci(0x3,0x0)/MAC(525400123456,0x1)/grubx64.efi,
LoadedImage,
PciRoot(0x0)/Pci(0x3,0x0)/MAC(525400123456,0x1)/grubx64.efi, <NULL>, G )
= 0 ( 0x3f1aac00 ) -> 0x3e90349b
LocateProtocol ( ConsoleControl, 0x0 ) = NOT_FOUND ( 0x0 ) -> 0x3e90344b
LocateProtocol ( ConsoleControl, 0x0 ) = NOT_FOUND ( 0x0 ) -> 0x3e90344b
OpenProtocol ( ConIn, SimpleTextInputEx,
PciRoot(0x0)/Pci(0x3,0x0)/MAC(525400123456,0x1)/grubx64.efi, <NULL>, G )
= 0 ( 0x3ed3ffc0 ) -> 0x3e90349b
LocateHandle ( ByProtocol, BlockIo, 0x0, 64 ) = 0 ( 32, {
PciRoot(0x0)/Pci(0x1,0x1)/Ata(0x0),
PciRoot(0x0)/Pci(0x1,0x0)/Floppy(0x0),
PciRoot(0x0)/Pci(0x1,0x0)/Floppy(0x1),
PciRoot(0x0)/Pci(0x3,0x0)/MAC(525400123456,0x1) } ) -> 0x3e903478
OpenProtocol ( PciRoot(0x0)/Pci(0x1,0x1)/Ata(0x0), DevicePath,
PciRoot(0x0)/Pci(0x3,0x0)/MAC(525400123456,0x1)/grubx64.efi, <NULL>, G )
= 0 ( 0x3f398f98 ) -> 0x3e90349b
OpenProtocol ( PciRoot(0x0)/Pci(0x1,0x1)/Ata(0x0), BlockIo,
PciRoot(0x0)/Pci(0x3,0x0)/MAC(525400123456,0x1)/grubx64.efi, <NULL>, G )
= 0 ( 0x3f3980a8 ) -> 0x3e90349b
OpenProtocol ( PciRoot(0x0)/Pci(0x1,0x0)/Floppy(0x0), DevicePath,
PciRoot(0x0)/Pci(0x3,0x0)/MAC(525400123456,0x1)/grubx64.efi, <NULL>, G )
= 0 ( 0x3f372998 ) -> 0x3e90349b
OpenProtocol ( PciRoot(0x0)/Pci(0x1,0x0)/Floppy(0x0), BlockIo,
PciRoot(0x0)/Pci(0x3,0x0)/MAC(525400123456,0x1)/grubx64.efi, <NULL>, G )
= 0 ( 0x3f35be68 ) -> 0x3e90349b
OpenProtocol ( PciRoot(0x0)/Pci(0x1,0x0)/Floppy(0x1), DevicePath,
PciRoot(0x0)/Pci(0x3,0x0)/MAC(525400123456,0x1)/grubx64.efi, <NULL>, G )
= 0 ( 0x3f3726d8 ) -> 0x3e90349b
OpenProtocol ( PciRoot(0x0)/Pci(0x1,0x0)/Floppy(0x1), BlockIo,
PciRoot(0x0)/Pci(0x3,0x0)/MAC(525400123456,0x1)/grubx64.efi, <NULL>, G )
= 0 ( 0x3f35c128 ) -> 0x3e90349b
OpenProtocol ( PciRoot(0x0)/Pci(0x3,0x0)/MAC(525400123456,0x1),
DevicePath, PciRoot(0x0)/Pci(0x3,0x0)/MAC(525400123456,0x1)/grubx64.efi,
<NULL>, G ) = 0 ( 0x3ea75b48 ) -> 0x3e90349b
OpenProtocol ( PciRoot(0x0)/Pci(0x3,0x0)/MAC(525400123456,0x1), BlockIo,
PciRoot(0x0)/Pci(0x3,0x0)/MAC(525400123456,0x1)/grubx64.efi, <NULL>, G )
= 0 ( 0x3ea72e50 ) -> 0x3e90349b
LocateProtocol ( UgaDraw, 0x0 ) = NOT_FOUND ( 0x0 ) -> 0x3e90344b
LocateHandle ( ByProtocol, GraphicsOutput, 0x0, 64 ) = 0 ( 16, {
PciRoot(0x0)/Pci(0x2,0x0)/AcpiAdr(0x80010100), ConOut } ) -> 0x3e903478
OpenProtocol ( PciRoot(0x0)/Pci(0x2,0x0)/AcpiAdr(0x80010100),
GraphicsOutput,
PciRoot(0x0)/Pci(0x3,0x0)/MAC(525400123456,0x1)/grubx64.efi, <NULL>, G )
= 0 ( 0x3f3750b8 ) -> 0x3e90349b
LocateHandle ( ByProtocol, SimpleNetwork, 0x0, 64 ) = 0 ( 8, {
PciRoot(0x0)/Pci(0x3,0x0)/MAC(525400123456,0x1) } ) -> 0x3e903478
OpenProtocol ( PciRoot(0x0)/Pci(0x3,0x0)/MAC(525400123456,0x1),
SimpleNetwork,
PciRoot(0x0)/Pci(0x3,0x0)/MAC(525400123456,0x1)/grubx64.efi, <NULL>, G )
= 0 ( 0x3ea755d0 ) -> 0x3e90349b
OpenProtocol (
PciRoot(0x0)/Pci(0x3,0x0)/MAC(525400123456,0x1)/grubx64.efi,
LoadedImage,
PciRoot(0x0)/Pci(0x3,0x0)/MAC(525400123456,0x1)/grubx64.efi, <NULL>, G )
= 0 ( 0x3f1aac00 ) -> 0x3e90349b
OpenProtocol ( PciRoot(0x0)/Pci(0x3,0x0)/MAC(525400123456,0x1),
DevicePath, PciRoot(0x0)/Pci(0x3,0x0)/MAC(525400123456,0x1)/grubx64.efi,
<NULL>, G ) = 0 ( 0x3ea75b48 ) -> 0x3e90349b
It's looking for and successfully opening our
EFI_SIMPLE_NETWORK_PROTOCOL and it is able to obtain an IP address using
"net_bootp". It doesn't look anywhere for EFI_PXE_BASE_CODE_PROTOCOL.
Do you have a set of instructions (starting from "git clone
git://git.savannah.gnu.org/grub.git") which will allow me to rebuild
that grubx64.efi binary from the source?
Thanks,
Michael
next prev parent reply other threads:[~2015-09-10 15:29 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-07 10:14 [Qemu-devel] EFI_PXE_BASE_CODE_PROTOCOL Gerd Hoffmann
2015-09-07 14:02 ` [Qemu-devel] [ipxe-devel] EFI_PXE_BASE_CODE_PROTOCOL Michael Brown
2015-09-07 14:58 ` Gerd Hoffmann
2015-09-10 15:07 ` Michael Brown
2015-09-10 15:20 ` Gerd Hoffmann
2015-09-10 15:29 ` Michael Brown [this message]
2015-09-11 8:56 ` Gerd Hoffmann
2015-10-20 8:16 ` Gerd Hoffmann
2015-10-26 0:14 ` Michael Brown
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=55F1A1E2.2010603@ipxe.org \
--to=mcb30@ipxe.org \
--cc=ipxe-devel@ipxe.org \
--cc=kraxel@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.