<feed xmlns='http://www.w3.org/2005/Atom'>
<title>openslx-ng/ipxe.git, branch v1.0.0-rc1</title>
<subtitle>Fork of ipxe; additional commands and features</subtitle>
<id>https://git.openslx.org/openslx-ng/ipxe.git/atom/?h=v1.0.0-rc1</id>
<link rel='self' href='https://git.openslx.org/openslx-ng/ipxe.git/atom/?h=v1.0.0-rc1'/>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/'/>
<updated>2010-01-26T19:40:57+00:00</updated>
<entry>
<title>[release] Update version to 1.0.0-rc1 for release</title>
<updated>2010-01-26T19:40:57+00:00</updated>
<author>
<name>Marty Connor</name>
</author>
<published>2010-01-26T19:40:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=3ead964955b206e6629fe49c3dbfd16a610a2537'/>
<id>urn:sha1:3ead964955b206e6629fe49c3dbfd16a610a2537</id>
<content type='text'>
</content>
</entry>
<entry>
<title>[rtl818x] Remove broken mmio register support</title>
<updated>2010-01-25T22:04:39+00:00</updated>
<author>
<name>Stefan Hajnoczi</name>
</author>
<published>2010-01-22T18:12:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=5835ed5746590960d99a6366b13347046fbade82'/>
<id>urn:sha1:5835ed5746590960d99a6366b13347046fbade82</id>
<content type='text'>
The rtl818x driver uses programmed I/O but has a fallback to
memory-mapped I/O registers.  The fallback currently will not work since
the registers are accessed using inl()/outl() programmed I/O functions
in the driver.  This patch removes the fallback to we fail cleanly when
programmed I/O is not possible.

Signed-off-by: Stefan Hajnoczi &lt;stefanha@gmail.com&gt;
Signed-off-by: Joshua Oreman &lt;oremanj@rwcr.net&gt;
Signed-off-by: Marty Connor &lt;mdc@etherboot.org&gt;
</content>
</entry>
<entry>
<title>[natsemi] Convert stray mmio readl() to pio inl()</title>
<updated>2010-01-25T21:58:18+00:00</updated>
<author>
<name>Stefan Hajnoczi</name>
</author>
<published>2010-01-25T08:28:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=e51ef7912cd17994081c51d558f902247b1e004a'/>
<id>urn:sha1:e51ef7912cd17994081c51d558f902247b1e004a</id>
<content type='text'>
This driver uses programmed I/O to access hardware registers.  There is
a stray memory-mapped I/O read on a programmed I/O address.  Perhaps
this is an artifact of porting the driver.  Fix this by converting it to
programmed I/O.

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>[dhcp] Keep multiple DHCP offers received, and use them intelligently</title>
<updated>2010-01-21T23:36:26+00:00</updated>
<author>
<name>Joshua Oreman</name>
</author>
<published>2009-11-03T18:45:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=5efc2fcb602864e82de2cd7414e3828f589034e5'/>
<id>urn:sha1:5efc2fcb602864e82de2cd7414e3828f589034e5</id>
<content type='text'>
Instead of keeping only the best IP and PXE offers, store all of them,
and pick the best to use just before a request is sent. This allows
priority differentiation to work even when lower-priority offers
provide PXE options, and improves robustness at sites with broken PXE
servers intermingled with working ones: when a ProxyDHCP request times
out, instead of giving up, we try the next PXE offer we've received.
It also allows us to avoid breaking up combined IP+PXE offers, which
can be important with some firewall configurations. This behavior
matches that of most vendor PXE ROMs.

Store a reference to the DHCPOFFER packet in the offer structure, so
that when registering settings after a successful ACK we can register
the proxy PXE settings we originally received; this removes the need
for a nonstandard duplicate REQUEST/ACK to port 67 of proxy servers
like dnsmasq that provide PXE options in the OFFER.

Total cost: 450 bytes uncompressed.

Signed-off-by: Marty Connor &lt;mdc@etherboot.org&gt;
</content>
</entry>
<entry>
<title>[pci] Save and restore PCI command register</title>
<updated>2010-01-21T23:13:48+00:00</updated>
<author>
<name>Bernhard Kohl</name>
</author>
<published>2010-01-21T23:13:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=466d8fc234cf32cb63d9d773e2f92f51860165f9'/>
<id>urn:sha1:466d8fc234cf32cb63d9d773e2f92f51860165f9</id>
<content type='text'>
This seems to be necessary for some types of PCI devices. We had
problems when using gPXE in KVM virtual machines with direct
PCI device access.

Signed-off-by: Bernhard Kohl &lt;bernhard.kohl@nsn.com&gt;
Signed-off-by: Shao Miller &lt;shao.miller@yrdsb.edu.on.ca&gt;
Modified-by: Marty Connor &lt;mdc@etherboot.org&gt;
Signed-off-by: Marty Connor &lt;mdc@etherboot.org&gt;
</content>
</entry>
<entry>
<title>[ftp] User and password URI support for the FTP protocol</title>
<updated>2010-01-20T23:18:47+00:00</updated>
<author>
<name>gL2n30Y06arv2</name>
</author>
<published>2009-12-29T17:49:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=93805d97652b0f7a00028fe1e9ad461a7b5d423c'/>
<id>urn:sha1:93805d97652b0f7a00028fe1e9ad461a7b5d423c</id>
<content type='text'>
The default user and password are used for anonymous FTP by default.
This patch adds support for an explicit user name and password in an FTP
URI:

    imgfetch ftp://user:password@server.com/path/to/file

Edited-by: Stefan Hajnoczi &lt;stefanha@gmail.com&gt;.  Bugs are my fault.

Signed-off-by: Marty Connor &lt;mdc@etherboot.org&gt;
</content>
</entry>
<entry>
<title>[uri] Decode/encode URIs when parsing/unparsing</title>
<updated>2010-01-20T23:14:28+00:00</updated>
<author>
<name>Joshua Oreman</name>
</author>
<published>2009-12-30T03:36:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=3d9dd93a1452e28c728483b03e352691238491ed'/>
<id>urn:sha1:3d9dd93a1452e28c728483b03e352691238491ed</id>
<content type='text'>
Currently, handling of URI escapes is ad-hoc; escaped strings are
stored as-is in the URI structure, and it is up to the individual
protocol to unescape as necessary. This is error-prone and expensive
in terms of code size. Modify this behavior by unescaping in
parse_uri() and escaping in unparse_uri() those fields that typically
handle URI escapes (hostname, user, password, path, query, fragment),
and allowing unparse_uri() to accept a subset of fields to print so
it can be easily used to generate e.g. the escaped HTTP path?query
request.

Signed-off-by: Joshua Oreman &lt;oremanj@rwcr.net&gt;
Signed-off-by: Marty Connor &lt;mdc@etherboot.org&gt;
</content>
</entry>
<entry>
<title>[settings] Add automagic "netX" settings block for last opened netdev</title>
<updated>2010-01-20T22:52:02+00:00</updated>
<author>
<name>Joshua Oreman</name>
</author>
<published>2009-10-22T04:55:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=ef9d1a32c6dc83d1086141c18d2be19a05ab8e49'/>
<id>urn:sha1:ef9d1a32c6dc83d1086141c18d2be19a05ab8e49</id>
<content type='text'>
A script loaded via autoboot may want to get some of the settings (MAC
address, IP address, et cetera) for the interface via which it was
loaded, in order to pass them to the operating system. Previously such
a script had no way to determine what to put in the X of ${netX/foo}.

Solve this problem by transparently forwarding accesses to the real
settings associated with the most recently opened network device,
so scripts in this situation can say literally ${netX/foo} and get
the foo setting they want.

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>
</feed>
