<feed xmlns='http://www.w3.org/2005/Atom'>
<title>openslx-ng/ipxe.git/src/arch/i386, branch v0.9.5</title>
<subtitle>Fork of ipxe; additional commands and features</subtitle>
<id>https://git.openslx.org/openslx-ng/ipxe.git/atom/src/arch/i386?h=v0.9.5</id>
<link rel='self' href='https://git.openslx.org/openslx-ng/ipxe.git/atom/src/arch/i386?h=v0.9.5'/>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/'/>
<updated>2008-09-29T04:11:51+00:00</updated>
<entry>
<title>[pcbios] Allow for larger-than-20-byte buffers in e820mangler.S</title>
<updated>2008-09-29T04:11:51+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2008-09-29T04:11:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=1dda75c9cdca7105733bfc21e8b4b6d46df19113'/>
<id>urn:sha1:1dda75c9cdca7105733bfc21e8b4b6d46df19113</id>
<content type='text'>
Although the E820 API allows for a caller to provide only a 20-byte
buffer, there exists at least one combination (HP BIOS, 32-bit WinPE)
that relies on information found only in the "extended attributes"
field, which requires a 24-byte buffer.

Allow for up to a 64-byte E820 buffer, in the hope of coping with
future idiocies like this one.
</content>
</entry>
<entry>
<title>[pcbios] Print INT 15,E820 extended attributes, if present</title>
<updated>2008-09-29T02:55:13+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2008-09-29T02:55:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=040f7cdf3a99ed56a4487efc8e131c84984925bf'/>
<id>urn:sha1:040f7cdf3a99ed56a4487efc8e131c84984925bf</id>
<content type='text'>
The ACPI specification defines an additional 4-byte field at offset 20
for an E820 memory map entry.  This field is presumably optional,
since generally E820 gets given only a 20-byte buffer to fill.
However, the bits of this optional field are defined as:

  bit 0 : region is enabled
  bit 1 : region is non-volatile memory rather than RAM

so it seems as though callers that pass in only a 20-byte buffer may
be missing out on some rather important information.
</content>
</entry>
<entry>
<title>[gdb] Fix a compiler warning that shows up only when assertions are enabled</title>
<updated>2008-09-29T00:00:14+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2008-09-29T00:00:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=0015601f0b5c0d677450c1dc507a261d5ca3012d'/>
<id>urn:sha1:0015601f0b5c0d677450c1dc507a261d5ca3012d</id>
<content type='text'>
gcc should (I think) be warning about this anyway, but seems to do so
only when assertions are enabled for this object.
</content>
</entry>
<entry>
<title>[pcbios] Save/restore %es in INT 15,e820</title>
<updated>2008-09-28T23:36:11+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2008-09-28T23:36:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=50dc9344b7265915f5b9b1f795d024e775e3ae49'/>
<id>urn:sha1:50dc9344b7265915f5b9b1f795d024e775e3ae49</id>
<content type='text'>
Our INT 15,e820 code was setting %es=%ss (as part of the "look ahead
in the memory map" logic), but failing to restore %es afterwards.
This is a serious bug, but wasn't affecting many platforms because
almost all callers seem to set %es=%ss anyway.
</content>
</entry>
<entry>
<title>[i386] Add dump_regs() debug call</title>
<updated>2008-09-28T22:06:53+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2008-09-28T22:06:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=e3c550717864cb60b982389eb845b825bb9574e8'/>
<id>urn:sha1:e3c550717864cb60b982389eb845b825bb9574e8</id>
<content type='text'>
Use as "call dump_regs" from any real-mode code within .text16.
Should preserve all registers and flags.
</content>
</entry>
<entry>
<title>[romprefix] Fully clear the "Press B to boot..." message when INT19 is used</title>
<updated>2008-09-26T00:36:22+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2008-09-26T00:36:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=9d72636da186ab22290967887c39a42f0bf17d22'/>
<id>urn:sha1:9d72636da186ab22290967887c39a42f0bf17d22</id>
<content type='text'>
</content>
</entry>
<entry>
<title>[pcbios] Fetch INT 15,e820 entry directly into our e820 cache</title>
<updated>2008-09-25T17:52:49+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2008-09-25T17:45:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=3392cfa7df58a5662417f25226cf75dedabeb750'/>
<id>urn:sha1:3392cfa7df58a5662417f25226cf75dedabeb750</id>
<content type='text'>
Some BIOSes require us to pass in not only the continuation value (in
%ebx) as returned by the previous call to INT 15,e820 but also the
unmodified buffer (at %es:%di) as returned by the previous call to INT
15,e820.  Apparently, someone thought it would be a worthwhile
optimisation to fill in only the low dword of the "length" field and
the low byte of the "type field", assuming that the buffer would
remain unaltered from the previous call.

This problem was being triggered by the "peek ahead" logic in
get_mangled_e820(), which would read the next entry into a temporary
buffer in order to be able to guarantee terminating the map with
%ebx=0 rather than CF=1.  (Terminating with CF=1 upsets some Windows
flavours, despite being documented legal behaviour.)

Work around this problem by always fetching directly into our e820
cache; that way we can guarantee that the underlying call always sees
the previous buffer contents (and the same buffer address).
</content>
</entry>
<entry>
<title>[pcbios] Add facility for testing arbitrary E820 memory maps</title>
<updated>2008-09-25T02:34:26+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2008-09-25T02:34:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=c24bc349ead939d90b5784dbff3cd9fdb9d83ba8'/>
<id>urn:sha1:c24bc349ead939d90b5784dbff3cd9fdb9d83ba8</id>
<content type='text'>
We seem to be having issues with various E820 memory maps.  These
problems are often difficult to reproduce, requiring access to the
specific system exhibiting the problem.

Add a facility for hooking in a fake E820 map generator, using an
arbitrary map defined in a C array, solely in order to be able to test
the map-mangling code against arbitrary E820 maps.
</content>
</entry>
<entry>
<title>[romprefix] Allow BANNER_TIMEOUT to control banners in romprefix.S</title>
<updated>2008-09-25T00:53:42+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2008-09-25T00:53:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=539f94b9805ec4ccb7e526f7043161068727ad41'/>
<id>urn:sha1:539f94b9805ec4ccb7e526f7043161068727ad41</id>
<content type='text'>
In particular, allow BANNER_TIMEOUT=0 to inhibit the prompt banners
altogether.

Ironically, this request comes from the same OEM that originally
required the prompts to be present during POST.
</content>
</entry>
<entry>
<title>[pxe] Enable interrupts before starting PXE NBP execution</title>
<updated>2008-09-24T20:23:50+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2008-09-24T20:23:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=fed106b7fb62ed1a3db3ff690eae1c17a965cce8'/>
<id>urn:sha1:fed106b7fb62ed1a3db3ff690eae1c17a965cce8</id>
<content type='text'>
Based on a patch provided by XenSource for Etherboot 5.4.
</content>
</entry>
</feed>
