<feed xmlns='http://www.w3.org/2005/Atom'>
<title>openslx-ng/ipxe.git/src/arch, branch v0.9.4</title>
<subtitle>Fork of ipxe; additional commands and features</subtitle>
<id>https://git.openslx.org/openslx-ng/ipxe.git/atom/src/arch?h=v0.9.4</id>
<link rel='self' href='https://git.openslx.org/openslx-ng/ipxe.git/atom/src/arch?h=v0.9.4'/>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/'/>
<updated>2008-09-26T00:36:22+00:00</updated>
<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>
<entry>
<title>[pcbios] Inhibit INT 15 memory map hiding on brain-dead BIOSes</title>
<updated>2008-09-24T17:33:31+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2008-09-24T17:33:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=887d77c27ac6ccdb13892ab05e50281e63df6bbf'/>
<id>urn:sha1:887d77c27ac6ccdb13892ab05e50281e63df6bbf</id>
<content type='text'>
Some really moronic BIOSes bring up the PXE stack via the UNDI loader
entry point during POST, and then don't bother to unload it before
overwriting the code and data segments.  If this happens, we really
don't want to leave INT 15 hooked, because that will cause any loaded
OS to die horribly as soon as it attempts to fetch the system memory
map.

We use a heuristic to detect whether or not we are being loaded at the
top of free base memory.  If we determine that we are being loaded at
some other arbitrary location in base memory, then we assume that it's
not safe to hook INT 15.
</content>
</entry>
<entry>
<title>[romprefix] If we hook INT 19, prompt before attempting boot</title>
<updated>2008-09-23T23:53:40+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2008-09-23T23:53:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=9d44a061885cd81b58cc2d31edd16d60c5d8a3b2'/>
<id>urn:sha1:9d44a061885cd81b58cc2d31edd16d60c5d8a3b2</id>
<content type='text'>
On non-BBS systems we hook INT 19, since there is no other way we can
guarantee gaining control of the flow of execution.  If we end up
doing this, prompt the user before attempting boot, since forcibly
capturing INT 19 is rather antisocial.
</content>
</entry>
<entry>
<title>[pcbios] Sanity-check the INT15,e820 and INT15,e801 memory maps</title>
<updated>2008-09-23T22:35:19+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2008-09-23T22:35:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=8b20e5d2b766dd6165a34b62f33a6bd92a68ed63'/>
<id>urn:sha1:8b20e5d2b766dd6165a34b62f33a6bd92a68ed63</id>
<content type='text'>
Some systems seem to report insane memory maps (particularly at POST
time).  Detect and work around some of the common failure cases.
</content>
</entry>
<entry>
<title>[relocate] Guard against systems that report empty memory regions</title>
<updated>2008-09-23T00:13:28+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2008-09-23T00:13:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=ca0b0f061673b27bb7bfa6f62e99385273c097da'/>
<id>urn:sha1:ca0b0f061673b27bb7bfa6f62e99385273c097da</id>
<content type='text'>
If the INT 15,e820 memory map reports a region [0,0), this confuses
the "truncate to even megabytes" logic, which ends up rounding the
region 'down' to [0,fff00000).

Fix by ensuring that the region's end address is at least 1, before we
subtract 1 to obtain the "last byte in region" address.
</content>
</entry>
<entry>
<title>[memmap] Allow for 4GB+ systems in debug message</title>
<updated>2008-09-22T23:58:12+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2008-09-22T23:58:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=0fd1e54026d9c941fce041157bb00cb42fdef9dd'/>
<id>urn:sha1:0fd1e54026d9c941fce041157bb00cb42fdef9dd</id>
<content type='text'>
INT 15,e801 is capable of returning a memory range that extends to
4GB, so allow for this in the debug message that shows the data
returned by INT 15,e801.
</content>
</entry>
</feed>
