<feed xmlns='http://www.w3.org/2005/Atom'>
<title>openslx-ng/ipxe.git/src/arch, branch v1.0.0</title>
<subtitle>Fork of ipxe; additional commands and features</subtitle>
<id>https://git.openslx.org/openslx-ng/ipxe.git/atom/src/arch?h=v1.0.0</id>
<link rel='self' href='https://git.openslx.org/openslx-ng/ipxe.git/atom/src/arch?h=v1.0.0'/>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/'/>
<updated>2010-02-01T00:10:25+00:00</updated>
<entry>
<title>[prefix] Remove unsupported ELF prefices</title>
<updated>2010-02-01T00:10:25+00:00</updated>
<author>
<name>Stefan Hajnoczi</name>
</author>
<published>2010-01-29T18:33:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=1056a1c2d576a704b8213fd769fb241b4a24a91e'/>
<id>urn:sha1:1056a1c2d576a704b8213fd769fb241b4a24a91e</id>
<content type='text'>
The .elf, .elfd, .lmelf, and .lmelfd prefices were brought over from
legacy Etherboot and they do not build in gPXE.  This patch removes the
ELF prefices.

Signed-off-by: Stefan Hajnoczi &lt;stefanha@gmail.com&gt;
Signed-off-by: Marty Connor &lt;mdc@etherboot.org&gt;
</content>
</entry>
<entry>
<title>[prefix] Remove unsupported .exe prefix</title>
<updated>2010-02-01T00:06:55+00:00</updated>
<author>
<name>Stefan Hajnoczi</name>
</author>
<published>2010-01-29T18:25:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=9a89f0d17db14f6ab2a59db615bfe5aa46f42024'/>
<id>urn:sha1:9a89f0d17db14f6ab2a59db615bfe5aa46f42024</id>
<content type='text'>
The unfinished .exe prefix was brought over from legacy Etherboot.
There has been no demand for .exe images so this patch removes the
prefix.

Signed-off-by: Stefan Hajnoczi &lt;stefanha@gmail.com&gt;
Signed-off-by: Marty Connor &lt;mdc@etherboot.org&gt;
</content>
</entry>
<entry>
<title>[prefix] Remove unsupported .com prefix</title>
<updated>2010-02-01T00:05:22+00:00</updated>
<author>
<name>Stefan Hajnoczi</name>
</author>
<published>2010-01-29T18:20:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=ddcf2d5f085d164ce3cc659290e440a0c040b255'/>
<id>urn:sha1:ddcf2d5f085d164ce3cc659290e440a0c040b255</id>
<content type='text'>
The DOS .com prefix was brought over from legacy Etherboot but does not
build.  There has been no demand for .com images so this patch removes
the prefix.

Signed-off-by: Stefan Hajnoczi &lt;stefanha@gmail.com&gt;
Signed-off-by: Marty Connor &lt;mdc@etherboot.org&gt;
</content>
</entry>
<entry>
<title>[prefix] Remove .bImage in favor of .lkrn</title>
<updated>2010-02-01T00:00:56+00:00</updated>
<author>
<name>Stefan Hajnoczi</name>
</author>
<published>2010-01-29T18:14:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=d3b9c3f3d0c26219b4603db3829f33a77380bf7f'/>
<id>urn:sha1:d3b9c3f3d0c26219b4603db3829f33a77380bf7f</id>
<content type='text'>
The .lkrn prefix allows gPXE to be loaded as a Linux bzImage.  The
bImage prefix was carried over from legacy Etherboot and does not build.
This patch removes the .bImage prefix, use .lkrn instead.

Signed-off-by: Stefan Hajnoczi &lt;stefanha@gmail.com&gt;
Signed-off-by: Marty Connor &lt;mdc@etherboot.org&gt;
</content>
</entry>
<entry>
<title>[pxe] Introduce PXE exit hook for NBP chaining</title>
<updated>2010-01-24T12:54:42+00:00</updated>
<author>
<name>Shao Miller</name>
</author>
<published>2010-01-24T03:12:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=112a3f2de281a2afb23ced2082d555720de7c9b0'/>
<id>urn:sha1:112a3f2de281a2afb23ced2082d555720de7c9b0</id>
<content type='text'>
It might be the case that we wish to chain to an NBP without
being "in the way".  We now implement a hook in our exit path
for gPXE *.*pxe build targets.  The hook is a pointer to a
SEG16:OFF16 which we try to jump to during exit.  By default,
this pointer results in the usual exit path.

We also implement the "pxenv_file_exit_hook" PXE API routine
to allow the user to specify an alternate SEG16:OFF16 to jump
to during exit.

Unfortunately, this additional PXE extension has a cost
in code size.  Fortunately, a look at the size difference
for a gPXE .rom build target shows zero size difference
after compression.

The routine is documented in doc/pxe_extensions as follows:

FILE EXIT HOOK

Op-Code:	PXENV_FILE_EXIT_HOOK (00e7h)

Input:	Far pointer to a t_PXENV_FILE_EXIT_HOOK parameter
		structure that has been initialized by the caller.

Output:	PXENV_EXIT_SUCCESS or PXENV_EXIT_FAILURE must be
		returned in AX.  The Status field in the parameter
		structure must be set to one of the values represented
		by the PXENV_STATUS_xxx constants.

Description:Modify the exit path to jump to the specified code.
		Only valid for pxeprefix-based builds.

typedef struct s_PXENV_FILE_EXIT_HOOK {
        PXENV_STATUS_t Status;
        SEGOFF16_t Hook;
} t_PXENV_FILE_EXIT_HOOK;

Set before calling API service:

Hook:	The SEG16:OFF16 of the code to jump to.

Returned from API service:

Status:	See PXENV_STATUS_xxx constants.

Requested-by: H. Peter Anvin &lt;hpa@zytor.com&gt;
Signed-off-by: Shao Miller &lt;shao.miller@yrdsb.edu.on.ca&gt;
Signed-off-by: Marty Connor &lt;mdc@etherboot.org&gt;
</content>
</entry>
<entry>
<title>[prefix] Add .xrom prefix for a ROM that loads itself by PCI accesses</title>
<updated>2010-01-20T22:46:48+00:00</updated>
<author>
<name>Joshua Oreman</name>
</author>
<published>2009-10-18T20:12:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=06a8398422efb613b7ee4f9d8f1abcc813bb3f3b'/>
<id>urn:sha1:06a8398422efb613b7ee4f9d8f1abcc813bb3f3b</id>
<content type='text'>
The standard option ROM format provides a header indicating the size
of the entire ROM, which the BIOS will reserve space for, load, and
call as necessary. However, this space is strictly limited to 128k for
all ROMs. gPXE ameliorates this somewhat by reserving space for itself
in high memory and relocating the majority of its code there, but on
systems prior to PCI3 enough space must still be present to load the
ROM in the first place. Even on PCI3 systems, the BIOS often limits the
size of ROM it will load to a bit over 64kB.

These space problems can be solved by providing an artificially small
size in the ROM header: just enough to let the prefix code (at the
beginning of the ROM image) be loaded by the BIOS. To the BIOS, the
gPXE ROM will appear to be only a few kilobytes; it can then load
the rest of itself by accessing the ROM directly using the PCI
interface reserved for that task.

There are a few problems with this approach. First, gPXE needs to find
an unmapped region in memory to map the ROM so it can read from it;
this is done using the crude but effective approach of scanning high
memory (over 0xF0000000) for a sufficiently large region of all-ones
(0xFF) reads. (In x86 architecture, all-ones is returned for accesses
to memory regions that no mapped device can satisfy.) This is not
provably valid in all situations, but has worked well in practice.
More importantly, this type of ROM access can only work if the PCI ROM
BAR exists at all. NICs on physical add-in PCI cards generally must
have the BAR in order for the BIOS to be able to load their ROM, but
ISA cards and LAN-on-Motherboard cards will both fail to load gPXE
using this scheme.

Due to these uncertainties, it is recommended that .xrom only be used
when a regular .rom image is infeasible due to crowded option ROM
space. However, when it works it could allow loading gPXE images
as large as a flash chip one could find - 128kB or even higher.

Signed-off-by: Marty Connor &lt;mdc@etherboot.org&gt;
</content>
</entry>
<entry>
<title>[config] Make PXE stack a compile-time option</title>
<updated>2010-01-20T22:23:37+00:00</updated>
<author>
<name>Joshua Oreman</name>
</author>
<published>2009-10-06T23:15:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=fa4aec8f034f4999cf933161810b96de83ce31a7'/>
<id>urn:sha1:fa4aec8f034f4999cf933161810b96de83ce31a7</id>
<content type='text'>
For extremely tight space requirements and specific applications, it is
sometimes desirable to create gPXE images that cannot provide the PXE API
functionality to client programs. Add a configuration header option,
PXE_STACK, that can be removed to remove this stack. Also add PXE_MENU
to control the PXE boot menu, which most uses of gPXE do not need.

Signed-off-by: Marty Connor &lt;mdc@etherboot.org&gt;
</content>
</entry>
<entry>
<title>[pxe] Support cached DHCP packets in .kkpxe images</title>
<updated>2010-01-20T22:16:37+00:00</updated>
<author>
<name>Joshua Oreman</name>
</author>
<published>2009-12-08T08:48:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=9e9cc8c60ff573e02615889a4b7fa469c42fe425'/>
<id>urn:sha1:9e9cc8c60ff573e02615889a4b7fa469c42fe425</id>
<content type='text'>
If we don't unload the PXE stack before executing gPXE, automatically
take advantage of the cached DHCPACK that the underlying/parent PXE
stack can provide. If that cached DHCPACK contains option 175.178, or
the user sets the use-cached setting before invoking DHCP, the real
DHCP request will be skipped and the cached DHCPACK will be used for
network configuration. Otherwise, the cached settings block is thrown
away as soon as a fresh one is acquired.

Signed-off-by: Marty Connor &lt;mdc@etherboot.org&gt;
</content>
</entry>
<entry>
<title>[pxe] Separate parent PXE API caller from UNDINET driver</title>
<updated>2010-01-20T22:11:57+00:00</updated>
<author>
<name>Joshua Oreman</name>
</author>
<published>2009-12-08T08:38:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=337e1ed4b4aea8d73ced8077be1f78ac7b347ba6'/>
<id>urn:sha1:337e1ed4b4aea8d73ced8077be1f78ac7b347ba6</id>
<content type='text'>
Calling the parent PXE stack (the stack that loaded us, for
undionly.kkpxe) can be useful for more than UNDI calls; for instance,
it lets us get cached DHCP packets to avoid re-DHCP when working with
embedded images.

Signed-off-by: Marty Connor &lt;mdc@etherboot.org&gt;
</content>
</entry>
<entry>
<title>[tftp] Make TFTP size requests abort transfer with an error</title>
<updated>2010-01-18T00:18:28+00:00</updated>
<author>
<name>Thomas Horsten</name>
</author>
<published>2010-01-07T17:02:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=c124f6360dea456d73acb911e12df6e2c26937c1'/>
<id>urn:sha1:c124f6360dea456d73acb911e12df6e2c26937c1</id>
<content type='text'>
pxenv_tftp_get_fsize is an API call that PXE clients can call to
obtain the size of a remote file. It is implemented by starting a TFTP
transfer with pxe_tftp_open, waiting for the response and then
stopping the transfer with pxe_tftp_close(). This leaves the session
hanging on the TFTP server and it will try to resend the packet
repeatedly (verified with tftpd-hpa) until it times out.

This patch adds a method "tftpsize" that will abort the transfer after
the first packet is received from the server. This will terminate the
session on the server and is the same behaviour as Intel's PXE ROM
exhibits.

Together with a qemu patch to handle the ERROR packet (submitted to
qemu's mailing list), this resolves a specific issue where booting
pxegrub with qemu's TFTP server would be slow or hang.

I've tested this against qemu's tftp server and against my normal boot
infrastructure (tftpd-hpa). Booting pxegrub and loading extra files
now produces a trace similar to Intel's PXE client and there are no
spurious retransmits from tftpd any more.

Signed-off-by: Thomas Horsten &lt;thomas@horsten.com&gt;
Signed-off-by: Milan Plzik &lt;milan.plzik@gmail.com&gt;
Signed-off-by: Stefan Hajnoczi &lt;stefanha@gmail.com&gt;
Signed-off-by: Marty Connor &lt;mdc@etherboot.org&gt;
</content>
</entry>
</feed>
