<feed xmlns='http://www.w3.org/2005/Atom'>
<title>openslx-ng/ipxe.git/src/arch/x86/prefix, branch master</title>
<subtitle>Fork of ipxe; additional commands and features</subtitle>
<id>https://git.openslx.org/openslx-ng/ipxe.git/atom/src/arch/x86/prefix?h=master</id>
<link rel='self' href='https://git.openslx.org/openslx-ng/ipxe.git/atom/src/arch/x86/prefix?h=master'/>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/'/>
<updated>2019-01-15T13:08:44+00:00</updated>
<entry>
<title>[pci] Correct invalid base-class/sub-class/prog-if order in PCIR</title>
<updated>2019-01-15T13:08:44+00:00</updated>
<author>
<name>Petr Borsodi</name>
</author>
<published>2019-01-15T13:06:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=ba0d5aa993df4bad28b2a6a36c10b43c7e5c33f2'/>
<id>urn:sha1:ba0d5aa993df4bad28b2a6a36c10b43c7e5c33f2</id>
<content type='text'>
PCI Configuration Space contains fields prog-if at the offset 0x09,
sub-class at the offset 0x0a and base-class at the offset 0x0b (it
respects little endian).  PCIR structure uses these fields in the same
order.

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[build] Avoid use of "ld --oformat binary"</title>
<updated>2018-01-02T20:26:40+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2018-01-02T20:26:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=2bb4ec1f54af11f51f6f064c0086b6b80be2dcd2'/>
<id>urn:sha1:2bb4ec1f54af11f51f6f064c0086b6b80be2dcd2</id>
<content type='text'>
Using "ld --oformat binary" for mbr.bin and usbdisk.bin seems to cause
segmentation faults on some versions of binutils (observed on Fedora
27).  Work around this problem by using ld to create an intermediate
ELF object, followed by objcopy (via the existing %.tmp -&gt; %.bin rule)
to create the final binary.

Note that we cannot simply use a single-stage "objcopy -O binary"
since this will not process the relocation records for x86_64: see
commit 1afcccd ("[build] Do not use "objcopy -O binary" for objects
with relocation records").

Reported-by: Brent S &lt;bts@square-r00t.net&gt;
Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[romprefix] Avoid unaligned accesses within ROM headers</title>
<updated>2017-08-30T09:15:25+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2017-08-30T09:15:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=75acb3c775544b6ecc4bfb1bba633717c8ec9394'/>
<id>urn:sha1:75acb3c775544b6ecc4bfb1bba633717c8ec9394</id>
<content type='text'>
Ensure that all headers (PCI, UNDI, PnP, iPXE) are aligned to at least
four bytes, so that all accesses to header fields will be correctly
aligned even when reading directly from the expansion ROM BAR.

Reported-by: Peter von Konigsmark &lt;peter@exablaze.com&gt;
Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[hdprefix] Avoid attempts to read beyond the end of the disk</title>
<updated>2017-06-14T11:14:54+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2017-06-13T12:16:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=84e25513b1ce6aeb4f0d6c9d20cd687c00591de8'/>
<id>urn:sha1:84e25513b1ce6aeb4f0d6c9d20cd687c00591de8</id>
<content type='text'>
When booting from a hard disk image (e.g. bin/ipxe.usb) within an
emulator such as QEMU, the disk may not exist beyond the end of the
image.  Limit all reads to the length of the image to avoid spurious
errors when loading the iPXE image.

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[prefix] Include diagnostic information within progress messages</title>
<updated>2016-12-06T09:38:33+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2016-12-06T09:38:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=80c482c0ed674b0077db6fc5a7dbd706f00c63bf'/>
<id>urn:sha1:80c482c0ed674b0077db6fc5a7dbd706f00c63bf</id>
<content type='text'>
Include some relevant diagnostic infomation within the progress
messages generated via DEBUG=libprefix.

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[prefix] Remove impossible progress message</title>
<updated>2016-12-06T07:44:10+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2016-12-06T07:36:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=ce81601181f741e0ab63a77405d2eddec98576e9'/>
<id>urn:sha1:ce81601181f741e0ab63a77405d2eddec98576e9</id>
<content type='text'>
The "progress" macro can be used only from within the .prefix section.
At the point of calling relocate(), we are running in .text16 and so
the near call to print_message() will end up calling a random function
somewhere in .text16.

Interestingly, this problem has remained unnoticed for some time.  It
is rare to build with DEBUG=libprefix.  In the few cases that it has
been used during development, the randomly selected function in
.text16 seems to have been a harmless no-op with no visible
side-effects (beyond the unnoticed failure to print the "relocate"
progress message).

Fix by removing the futile attempt to print a progress message before
calling relocate().

Reported-by: Raed Salem &lt;raeds@mellanox.com&gt;
Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[romprefix] Avoid using PMM-allocated memory in UNDI loader entry point</title>
<updated>2016-12-05T15:21:45+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2016-12-05T14:11:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=cc40fcbf8b0dedc18431b9281f793c20c6276f96'/>
<id>urn:sha1:cc40fcbf8b0dedc18431b9281f793c20c6276f96</id>
<content type='text'>
The UNDI loader entry point is very likely to be called after POST,
when there is a high chance that the PMM-allocated image source area
and decompression area have been reused by something else.

In particular, using an iPXE .iso to test a separate iPXE ROM's UNDI
loader entry point in a qemu VM is likely to crash.  SeaBIOS allocates
PMM blocks from close to the top of memory and so these blocks have a
high chance of colliding with the runtime addresses subsequently
chosen by the non-ROM iPXE by scanning the INT 15,e820 memory map.

The standard romprefix.S has no choice about relying on the
PMM-allocated image source area, since it has no other way to retrieve
its compressed payload.

In mromprefix.S, the image source area functions only as an optional
buffer used to avoid repeated reads from the (potentially slow)
expansion ROM BAR by the decompression code.  We can therefore always
set %esi=0 when calling install_prealloc from the UNDI loader entry
point, and simply fall back to reading directly from the expansion ROM
BAR.

We can always set %edi=0 when calling install_prealloc from the UNDI
loader entry point.  This will behave as though the decompression area
PMM allocation failed, and will therefore use INT 15,88 to find a
temporary decompression area somewhere close to 64MB.  This is by no
means guaranteed to be safe from collisions, but it's probably safer
on balance than the PMM-allocated address.

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[prefix] Use CRC32 to verify each block prior to decompression</title>
<updated>2016-03-24T16:52:26+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2016-03-23T13:41:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=c4e8c40227ebb11361e066be96ed93927eedfbf4'/>
<id>urn:sha1:c4e8c40227ebb11361e066be96ed93927eedfbf4</id>
<content type='text'>
Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[efi] Move architecture-independent EFI prefixes to interface/efi</title>
<updated>2016-03-17T14:51:14+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2016-03-17T14:50:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=04ef198d2fcf864b82a722ee737eac88fc48b1a4'/>
<id>urn:sha1:04ef198d2fcf864b82a722ee737eac88fc48b1a4</id>
<content type='text'>
Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[librm] Provide an abstraction wrapper for prot_call</title>
<updated>2016-02-18T23:23:38+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2016-02-18T23:23:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=31b5c2e753dbcb3d5023bccc8e644d0bcb56b2ad'/>
<id>urn:sha1:31b5c2e753dbcb3d5023bccc8e644d0bcb56b2ad</id>
<content type='text'>
Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
</feed>
