From: Michael Tokarev <mjt@tls.msk.ru>
To: Laszlo Ersek <lersek@redhat.com>, Gerd Hoffmann <kraxel@redhat.com>
Cc: edk2-devel@lists.sourceforge.net,
qemu devel list <qemu-devel@nongnu.org>,
BALATON Zoltan <balaton@eik.bme.hu>
Subject: Re: [Qemu-devel] [edk2] syslinux vs. OVMF
Date: Tue, 26 May 2015 20:04:56 +0300 [thread overview]
Message-ID: <5564A7B8.4050001@msgid.tls.msk.ru> (raw)
In-Reply-To: <5564A407.8010302@redhat.com>
26.05.2015 19:49, Laszlo Ersek wrote:
[]
>> However, after the update of efi roms in qemu, the original problem
>> of booting syslinux in OVMF still persists. I received several
>> private messages asking whenever I succeeded in resolving the
>> original prob outlined at
>>
>> http://www.syslinux.org/archives/2014-November/022804.html
>>
>> and I always referred to this thread, until someone told me that
>> the update does not fix the issue. Now I verified it locally,
>> and no, I still can't use syslinux with OVMF with qemu efi roms,
>> getting exactly the same output as I've seen on Nov-2014.
>
> If you are getting *exactly* the same output as in the message
> referenced above, complete with the iPXE banner, then you're not using
No, I mean I see the same error message "Failed to read blocks: 0xC"
after syslinux.efi load. The banner is new, with a few changed details.
> the right (updated) iPXE binaries. (I think Gerd's patches implementing
> the update have not been merged into upstream qemu yet? The most recent
> patch from Gerd, under pc-bios/, is
> c246cee4eedb17ae3932d699e009a8b63240235f. Unrelated, and too old.)
Oh sh*t. You're right. Indeed, that's the last patch, and indeed
it is too old. I guess we need http://lists.ipxe.org/pipermail/ipxe-devel/2015-March/004007.html
or some other bits from https://www.kraxel.org/cgit/qemu/log/?h=rebase/roms-next.
Somehow, since the talk was about updating binaries before the next
(2.3 at that time) release, I thought current qemu have all necessary
bits.
> I'm saying this because, if you had everything in place, then the iPXE
> banner would *not* be printed. iPXE would not hijack the boot flow "as
> usual", it would only provide an SNP (Simple Network Protocol)
> implementation for edk2's network stack (including the PXE base code
> driver). And the iPXE banner would be absent.
Ok. I do see a banner here, so things doesn't work as they should,
and that's because I don't have the last patches which aren't still
in qemu.
> To summarize, I've found three bugs in iPXE thus far:
>
> - the EFI_SIMPLE_NETWORK_PROTOCOL.Transmit() and .GetStatus() interfaces
> are not correctly implemented. This trips up at least grub. Fixed by
> "efi_snp: improve compliance with the EFI_SIMPLE_NETWORK_PROTOCOL spec"
> patch; not taken by upstream.
Not taken? Why? Just time issues or some problem?
> - iPXE's own EFI_LOAD_FILE_PROTOCOL implementation causes edk2's PXE
> base code driver to become inactive / useless. See the discussion in
> <http://lists.ipxe.org/pipermail/ipxe-devel/2015-February/003979.html>.
> Fixed by "make load file protocol optional", and "ipxe: disable load
> file protocol". Not taken by upstream. This is the bug that you are
> still running into, most likely.
Again, why it hasn't been taken?
> (The iPXE banner is printed in ipxe(), "src/usr/autoboot.c", via the
> macro PRODUCT_TAG_LINE and its friends. The ipxe() function is not
> called after these patches, because its caller, efi_snp_load_file(), is
> never reached either.)
>
> - NIC driver not torn down at ExitBootServices(). Fixed by (one month
> old) upstream iPXE commit 755d2b8f. This bug becomes a problem only when
> you actually start a runtime OS, and even then it is very sensitive to
> memory layout.
>
> Earlier I received reports about syslinux 6.03-pre20 working nicely with
> OVMF's builtin virtio-net driver:
>
> http://lukas.zapletalovi.com/2014/09/efi-in-qemu-kvm-on-fedora-20.html
>
> Can you please verify that on your end? (Disable iPXE oprom loading with
> "-device virtio-net-pci,romfile=".) That would at least narrow down the
> troubles.
Yes, that one works. It needs updated OVMF, but that's details,
and you know this already as well.
>> As you checked, grub loads, but apparently syslinux still doesn't.
>
> I guess I'll have to set up syslinux too, and see it for myself. ;)
Nah. there's no need to. Lemme to actually apply the patches and see.
Thanks,
/mjt
next prev parent reply other threads:[~2015-05-26 17:05 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <alpine.GSO.2.01.1504062122470.1832@mono>
[not found] ` <5523E12E.8010103@redhat.com>
[not found] ` <1428653687.11559.5.camel@nilsson.home.kraxel.org>
2015-04-10 10:06 ` [Qemu-devel] [edk2] syslinux vs. OVMF Laszlo Ersek
2015-04-10 11:04 ` [Qemu-devel] virtio-net regression [was: syslinux vs. OVMF] Laszlo Ersek
2015-04-10 14:36 ` Laszlo Ersek
2015-04-10 19:56 ` Laszlo Ersek
2015-05-26 14:36 ` [Qemu-devel] [edk2] syslinux vs. OVMF Michael Tokarev
2015-05-26 16:49 ` Laszlo Ersek
2015-05-26 17:04 ` Michael Tokarev [this message]
2015-05-26 18:38 ` Laszlo Ersek
2015-05-26 20:17 ` BALATON Zoltan
2015-05-26 20:27 ` Michael Tokarev
2015-05-26 20:42 ` BALATON Zoltan
2015-05-26 21:31 ` Michael Tokarev
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=5564A7B8.4050001@msgid.tls.msk.ru \
--to=mjt@tls.msk.ru \
--cc=balaton@eik.bme.hu \
--cc=edk2-devel@lists.sourceforge.net \
--cc=kraxel@redhat.com \
--cc=lersek@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.