[syslinux] pxechn.c32 for EFI

Spike White spikewhitetx at gmail.com
Tue Dec 30 08:41:45 PST 2014


> Does the EFI version of PXELinux support http like gpxe, that would be
awesome loading down those 400 meg wim Windows PE File and loading them
using wimboot from ipxe (that works still with PXELinux) - only I only got
it working so far with tftp that makes no difference ;)

Good question.  I've only ever used tftp to first load vmlinuz/initrd and
then
ks.cfg.  Then use HTTP for subsequent content.  That's only 30 - 40 MB
transferred via tftp.

You're wanting to load the full (bloated!) winPE, which is a few GB. Using
HTTP would be preferable.

According to this:
   http://www.syslinux.org/wiki/index.php/PXELINUX

When using HTTP/FTP, you have to use the lpxelinux.0 NBP.  The std
pxelinux.0 NBP doesn't understand the filename syntax or protocol.

However, to boot UEFI you have to use the syslinux.efi NBP.

So your question is:  does syslinux.efi understand the "http://..." filename
syntax and protocol?  Or is there a "lsyslinux.efi" equiv?

I'm sure Gene or Ady will know the answer.

> Also why was I calling it PXE 3? Well the cards say they are version 3
when you look at the network analyzer and this is from the EFI SPEC.
>
> "Type (1), Ma
> jorVer (1), MinorVer (1)
> Type is a one byte field that i
> dentifies the network
> interface that
> will be used by the downloaded program. Type is followed by two
> one byte version number fields, MajorVer and MinorVer.
> Type
> UNDI (1) = 0x01
> Versions
> WfM-1.1a 16-bit UNDI: MajorVer = 0x02. MinorVer = 0x00
> PXE-2.0 16-bit UNDI: MajorVer = 0x02, MinorVer = 0x01
> 32/64-bit UNDI & H/W UNDI: MajorVer = 0x03, MinorVer = 0x00"
> ^^^^ See the line directly above ;)  ^^^^
>
> I'm not saying I'm right - but it's unofficially version 3.

That's the firmware version.  (I'm sure it's based on Intel's reference
PXE implementations.  All PXE ROMs seem to be.)
My clients report 2.01 for their firmware version, when doing BIOS. i.e.
   Vendor Class Identifier == PXEClient:Arch:00000:UNDI:002001

And 3.16 when doing UEFI 64 bit.  I.e.,
   Vendor Class Identifier == PXEClient:Arch:0007:UNDI:003016

Spike


More information about the Syslinux mailing list