[syslinux] comboot+PXE stack
Pawel Oleksik
oleksik at awa.mat.agh.edu.pl
Wed Nov 24 06:25:13 PST 2004
On Tue, Nov 23, 2004 at 06:24:26PM -0800, H. Peter Anvin wrote:
> >
> >1) How to transfer IP address and other options from PXElinux to comboot?
> >2) I got PXE specification, ver. 2.1 (sept. 1999); can I follow it safely?
> >3) Is there an easy interface to use PXE stack (easier than calling INTs)?
> >
>
> 1. You need to call the PXE stack's GET CACHED INFO function and extract
> the relevant information from there. Right now there is no API function
> which gets that preparsed; on the other hand, you get a *lot* of
> information that way.
OK. I have not yet played with it, so additional question: which packet
type (discover, ack or reply) should it be? As a client I would expect
a packet of type OFFER, but there is no such type in the spec.
BTW, can PXElinux send some information to krenel?
Maybe it would be a simpler way to put what I need on "command-line"?
> 2. Mostly. When PXELINUX runs, PXE is set up to run in UDP mode, so you
> need to shut down the UDP stack (AND RESTART IT!) if you want to use the
> TFTP or the UNDI functions. Most of the API functions will call the UDP
> stack, so this isn't really very safe. For sending or receiving UDP
> packets, though, it should work fine (don't call the setup and shutdown
> routines, though.)
I'm going to stay with UDP. And probably only one packet to send and to
receive would be enough. So, it shouldn't be to difficult.
> Invoking the keyboard functions will poll for UDP packets and discard them.
> This is to keep ARP alive.
Does it mean, that before reading keyboard I should read and copy all expected
UDP datagrams?
> 3. INT 22h, AX=0009h does this; this is in many ways simpler than calling
> the PXE stack directly, because you don't have to worry about the fact that
> different PXE versions have different calling conventions.
Of course, in this question I meant "C-interface" :)
And one more question:
in specification there are such comments: "service cannot be used with 32-bit
stack segment", "service cannot be user in protected mode".
How do they concern programming com and com32?
with best regards
p.o.
More information about the Syslinux
mailing list