<feed xmlns='http://www.w3.org/2005/Atom'>
<title>openslx-ng/ipxe.git/src/util, 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/util?h=v1.0.0</id>
<link rel='self' href='https://git.openslx.org/openslx-ng/ipxe.git/atom/src/util?h=v1.0.0'/>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/'/>
<updated>2010-01-20T22:46:48+00:00</updated>
<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>[util] Add diffsize.pl utility for generating diffs of object sizes</title>
<updated>2010-01-14T16:30:30+00:00</updated>
<author>
<name>Joshua Oreman</name>
</author>
<published>2009-12-30T01:33:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=dacc64724fda95d62b8b72b8c8b0010a7d6eda8b'/>
<id>urn:sha1:dacc64724fda95d62b8b72b8c8b0010a7d6eda8b</id>
<content type='text'>
This is useful when comparing size optimizations.

Signed-off-by: Marty Connor &lt;mdc@etherboot.org&gt;
</content>
</entry>
<entry>
<title>[zbin] Fix 64-bit compilation warnings for util/zbin.c</title>
<updated>2009-10-20T20:57:54+00:00</updated>
<author>
<name>Joshua Oreman</name>
</author>
<published>2009-10-18T20:32:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=0677a383e076d7391f74045f051ee066c204c91d'/>
<id>urn:sha1:0677a383e076d7391f74045f051ee066c204c91d</id>
<content type='text'>
Recent gcc versions generate more warnings when compiling util/zbin.c
on a 64-bit system:

util/zbin.c: In function `read_file':
util/zbin.c:85: warning: format `%d' expects type `int', but
                argument 3 has type `size_t'
util/zbin.c:91: warning: format `%d' expects type `int', but
                argument 3 has type `size_t'
util/zbin.c: In function `read_zinfo_file':
util/zbin.c:119: warning: format `%d' expects type `int', but
                 argument 4 has type `size_t'
util/zbin.c: In function `alloc_output_file':
util/zbin.c:134: warning: format `%d' expects type `int', but
                 argument 3 has type `size_t'
util/zbin.c: In function `process_zinfo_add':
util/zbin.c:244: warning: format `%d' expects type `int', but
                 argument 3 has type `size_t'
util/zbin.c:266: warning: format `%d' expects type `int', but
                 argument 7 has type `size_t'
util/zbin.c:286: warning: format `%#x' expects type `unsigned int',
                 but argument 7 has type `size_t'
util/zbin.c: In function `write_output_file':
util/zbin.c:348: warning: format `%d' expects type `int', but
                 argument 3 has type `size_t'

This patch eliminates these warnings.

Signed-off-by: Marty Connor &lt;mdc@etherboot.org&gt;
</content>
</entry>
<entry>
<title>[util] Change gensdsk file permissions to include execute</title>
<updated>2009-10-20T14:07:50+00:00</updated>
<author>
<name>Marty Connor</name>
</author>
<published>2009-10-20T14:07:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=15b46c5763f46888c005472e18cdafa75701a2ca'/>
<id>urn:sha1:15b46c5763f46888c005472e18cdafa75701a2ca</id>
<content type='text'>
src/util/gensdsk is a shell script and should have execute permission.

Reported-by: sobtwmxt sobtwmxt@sdf.lonestar.org
</content>
</entry>
<entry>
<title>[zbin] Fix compilation warnings for util/zbin.c</title>
<updated>2009-10-17T17:56:03+00:00</updated>
<author>
<name>Thomas Miletich</name>
</author>
<published>2009-10-17T14:52:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=78e54426c046f5f55526ca9d51a129f2b7e28bc3'/>
<id>urn:sha1:78e54426c046f5f55526ca9d51a129f2b7e28bc3</id>
<content type='text'>
Recent gcc versions generate warnings when compiling util/zbin.c
( tested with gcc-4.3.3 ):

util/zbin.c: In function ‘process_zinfo_pack’:
util/zbin.c:200: warning: format ‘%#zx’ expects type ‘size_t’, but argument 6
has type ‘long unsigned int’
util/zbin.c: In function ‘process_zinfo_add’:
util/zbin.c:257: warning: format ‘%#lx’ expects type ‘long unsigned int’, but
argument 4 has type ‘int’
util/zbin.c:266: warning: format ‘%#lx’ expects type ‘long unsigned int’, but
argument 4 has type ‘int’
util/zbin.c:266: warning: format ‘%d’ expects type ‘int’, but argument 8 has
type ‘long unsigned int’
util/zbin.c:286: warning: format ‘%#lx’ expects type ‘long unsigned int’, but
argument 6 has type ‘int’
util/zbin.c:286: warning: format ‘%#lx’ expects type ‘long unsigned int’, but
argument 7 has type ‘size_t’

This patch eliminates these warnings.

Tested with gcc-4.3.3 on Ubuntu 9.04 and gcc-4.1.2 on Debian Etch.

Signed-off-by: Marty Connor &lt;mdc@etherboot.org&gt;
</content>
</entry>
<entry>
<title>[util] Make mtools check detect new versions</title>
<updated>2009-10-15T18:54:30+00:00</updated>
<author>
<name>Stefan Hajnoczi</name>
</author>
<published>2009-10-14T07:11:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=0ea6e5c221a463ef5d62e00703e0d5595cc4d169'/>
<id>urn:sha1:0ea6e5c221a463ef5d62e00703e0d5595cc4d169</id>
<content type='text'>
The mtools version check does not handle GNU mtools 4.0.10.  This commit
makes the pattern more general so it matches older mtools as well as the
newer "mtools (GNU mtools) 4.0.10" string.

Signed-off-by: Stefan Hajnoczi &lt;stefanha@gmail.com&gt;
Signed-off-by: Marty Connor &lt;mdc@etherboot.org&gt;
</content>
</entry>
<entry>
<title>[modrom] Avoid clobbering near jump with checksum</title>
<updated>2009-10-15T18:47:54+00:00</updated>
<author>
<name>Joshua Oreman</name>
</author>
<published>2009-10-07T20:40:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=b0b0b8f65c478c3b7f17064c7916db7873b33248'/>
<id>urn:sha1:b0b0b8f65c478c3b7f17064c7916db7873b33248</id>
<content type='text'>
A jump instruction starts at the third byte of an option ROM image, and
it is required that the bytes in the whole image add up to zero. To
achieve this, a checksum byte is usually placed after the jump. The jump
can be either a short jump (2 bytes, EB xx) or a near jump (3 bytes,
E9 xx xx). gPXE's romprefix.S uses a near jump, but modrom.pl assumed
a short jump, and clobbered the high byte of the offset. This caused
modrom-modified gPXE ROM images to crash the system during POST.

Fix by making modrom.pl place the checksum at byte 6, like makerom.pl does.

Signed-off-by: Marty Connor &lt;mdc@etherboot.org&gt;
</content>
</entry>
<entry>
<title>[zbin] Change fixup semantics to support ROMs over 128k uncompressed</title>
<updated>2009-08-11T11:59:26+00:00</updated>
<author>
<name>Joshua Oreman</name>
</author>
<published>2009-08-10T05:12:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=d5d68b2e310b8bf0caa6b8529f1ce7adbb92e771'/>
<id>urn:sha1:d5d68b2e310b8bf0caa6b8529f1ce7adbb92e771</id>
<content type='text'>
The option ROM header contains a one-byte field indicating the number
of 512-byte sectors in the ROM image.  Currently it is linked to
contain the number of uncompressed sectors, with an instruction to the
compressor to correct it.  This causes link failure when the
uncompressed size of the ROM image is over 128k.

Fix by replacing the SUBx compressor fixup with an ADDx fixup that
adds the total compressed output length, scaled as requested, to an
addend stored in the field where the final length value will be
placed.  This is similar to the behavior of ELF relocations, and
ensures that an overflow error will not be generated unless the
compressed size is still too large for the field.

This also allows us to do away with the _filesz_pgh and _filesz_sect
calculations exported by the linker script.

Output tested bitwise identical to the old SUBx mechanism on hd, dsk,
lkrn, and rom prefixes, on both 32-bit and 64-bit processors.

Modified-by: Michael Brown &lt;mcb30@etherboot.org&gt;
Signed-off-by: Michael Brown &lt;mcb30@etherboot.org&gt;
</content>
</entry>
<entry>
<title>[geniso] Emit proper error message for incorrect location of ISOLINUX_BIN</title>
<updated>2009-08-08T23:05:49+00:00</updated>
<author>
<name>vibi sreenivasan</name>
</author>
<published>2009-07-03T06:21:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=e6e30618c246a22b27765260f4ed13c24b18182d'/>
<id>urn:sha1:e6e30618c246a22b27765260f4ed13c24b18182d</id>
<content type='text'>
If isolinux.bin is not installed in the expected location the error
message shown is slightly misleading.

Signed-off-by: Vibi Sreenivasan &lt;vibi_sreenivasan@cms.com&gt;
Signed-off-by: Michael Brown &lt;mcb30@etherboot.org&gt;
</content>
</entry>
<entry>
<title>[legal] Add the MIT and ISC licenses to licence.pl</title>
<updated>2009-08-02T22:30:38+00:00</updated>
<author>
<name>H. Peter Anvin</name>
</author>
<published>2009-08-02T21:42:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=5e1aa70301f8e870c2550c2c1cce079a9d87dd17'/>
<id>urn:sha1:5e1aa70301f8e870c2550c2c1cce079a9d87dd17</id>
<content type='text'>
The MIT and ISC licenses are legally equivalent to the bsd2 license,
but with slightly different verbiage.

Signed-off-by: H. Peter Anvin &lt;hpa@zytor.com&gt;
Signed-off-by: Michael Brown &lt;mcb30@etherboot.org&gt;
</content>
</entry>
</feed>
