<feed xmlns='http://www.w3.org/2005/Atom'>
<title>openslx-ng/ipxe.git/src/arch/i386/scripts, branch openslx</title>
<subtitle>Fork of ipxe; additional commands and features</subtitle>
<id>https://git.openslx.org/openslx-ng/ipxe.git/atom/src/arch/i386/scripts?h=openslx</id>
<link rel='self' href='https://git.openslx.org/openslx-ng/ipxe.git/atom/src/arch/i386/scripts?h=openslx'/>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/'/>
<updated>2025-06-24T13:40:57+00:00</updated>
<entry>
<title>[build] Allow for the existence of small-data sections</title>
<updated>2025-06-24T13:40:57+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2025-06-24T13:40:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=8df3b96402d1d35a4de928aaaca9f08018932fa3'/>
<id>urn:sha1:8df3b96402d1d35a4de928aaaca9f08018932fa3</id>
<content type='text'>
Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[linux] Centralise the linker script for Linux binaries</title>
<updated>2023-01-22T12:38:03+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2023-01-22T12:05:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=475c0dfa8e5b841ff29d3fbf7d6828e3cdd05ad5'/>
<id>urn:sha1:475c0dfa8e5b841ff29d3fbf7d6828e3cdd05ad5</id>
<content type='text'>
Reduce duplication between i386 and x86_64 by providing a single
shared linker script that both architectures can include.

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[efi] Include Secure Boot Advanced Targeting (SBAT) metadata</title>
<updated>2022-01-13T14:12:44+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2022-01-13T14:10:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=f4f9adf618cd85d330a896e1f721f3aa78d2409d'/>
<id>urn:sha1:f4f9adf618cd85d330a896e1f721f3aa78d2409d</id>
<content type='text'>
SBAT defines an encoding for security generation numbers stored as a
CSV file within a special ".sbat" section in the signed binary.  If a
Secure Boot exploit is discovered then the generation number will be
incremented alongside the corresponding fix.

Platforms may then record the minimum generation number required for
any given product.  This allows for an efficient revocation mechanism
that consumes minimal flash storage space (in contrast to the DBX
mechanism, which allows for only a single-digit number of revocation
events to ever take place across all possible signed binaries).

Add SBAT metadata to iPXE EFI binaries to support this mechanism.

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[bios] Add bin-x86_64-pcbios build platform</title>
<updated>2016-02-16T19:32:32+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2016-02-16T15:19:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=f468f12b1eca15e703aa2a79f1c82969c04c2322'/>
<id>urn:sha1:f468f12b1eca15e703aa2a79f1c82969c04c2322</id>
<content type='text'>
Move most arch/i386 files to arch/x86, and adjust the contents of the
Makefiles and the include/bits/*.h headers to reflect the new
locations.

This patch makes no substantive code changes, as can be seen using a
rename-aware diff (e.g. "git show -M5").

This patch does not make the pcbios platform functional for x86_64; it
merely allows it to compile without errors.

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[prefix] Pad .text16 and .data16 segment sizes at build time</title>
<updated>2016-02-12T14:04:51+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2016-02-12T13:59:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=7ecfe7159f94193a666200a17057d4cd5981b850'/>
<id>urn:sha1:7ecfe7159f94193a666200a17057d4cd5981b850</id>
<content type='text'>
Commit c64747d ("[librm] Speed up real-to-protected mode transition
under KVM") rounded down the .text16 segment address calculated in
alloc_basemem() to a multiple of 64 bytes in order to speed up mode
transitions under KVM.

This creates a potential discrepancy between alloc_basemem() and
free_basemem(), meaning that free_basemem() may free less memory than
was allocated by alloc_basemem().

Fix by padding the calculated sizes of both .text16 and .data16 to a
multiple of 64 bytes at build time.

Debugged-by: Yossef Efraim &lt;yossefe@mellanox.com&gt;
Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[build] Allow building PCI ROMs with device ID lists</title>
<updated>2015-04-15T11:20:06+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2015-04-14T08:59:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=40de41276218ef1bca9f47fd166e83deb1c1f536'/>
<id>urn:sha1:40de41276218ef1bca9f47fd166e83deb1c1f536</id>
<content type='text'>
PCI v3.0 supports a "device list" which allows the ROM to claim
support for multiple PCI device IDs (but only a single vendor ID).
Add support for building such ROMs by scanning the build target
element list and incorporating any device IDs into the ROM's device
list header.  For example:

  make bin/8086153a--8086153b.mrom

would build a ROM claiming support for both 8086:153a and 8086:153b.

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[prefix] Use .bss16 as temporary stack space for calls to install_block</title>
<updated>2015-02-24T16:33:14+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2015-02-24T16:13:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=3e04f0791e614772f3ffe3663e4c8da71e2bc981'/>
<id>urn:sha1:3e04f0791e614772f3ffe3663e4c8da71e2bc981</id>
<content type='text'>
Some decompression algorithms (e.g. LZMA) require large amounts of
temporary stack space, which may not be made available by all
prefixes.  Use .bss16 as a temporary stack for the duration of the
calls to install_block (switching back to the external stack before we
start making calls into code which might access variables in .bss16),
and allow the decompressor to define a global symbol to force a
minimum value on the size of .bss16.

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[build] Fix %.licence build target</title>
<updated>2013-07-15T22:50:54+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2013-07-15T22:08:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=ca319873bf43d5d955cc3d8770b5b2415798907d'/>
<id>urn:sha1:ca319873bf43d5d955cc3d8770b5b2415798907d</id>
<content type='text'>
Our use of --gc-sections causes the linker to discard the symbols
defined by FILE_LICENCE(), meaning that the resulting licence
determination is incomplete.

We must use the KEEP() directive in the linker script to force the
linker to not discard the licence symbols.  Using KEEP(*(COMMON))
would be undesirable, since there are some symbols in COMMON which we
may wish to discard.

Fix by placing symbols defined by PROVIDE_SYMBOL() (which is used by
FILE_LICENCE()) into a special ".provided" section, which we then mark
with KEEP().  All such symbols are zero-length, so there is no cost in
terms of the final binary size.

Since the symbols are no longer in COMMON, the linker will reject
symbols with the same name coming from multiple objects.  We therefore
append the object name to the licence symbol, to ensure that it is
unique.

Reported-by: Marin Hannache &lt;git@mareo.fr&gt;
Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[romprefix] Add a dummy ROM header to cover the .mrom payload</title>
<updated>2012-06-12T14:15:03+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2012-06-10T17:25:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=9e8d431a0d58caba3c5f65d4e30fd259d2f782e1'/>
<id>urn:sha1:9e8d431a0d58caba3c5f65d4e30fd259d2f782e1</id>
<content type='text'>
The header of a .mrom image declares its length to be only a few
kilobytes; the remainder is accessed via a sideband mechanism.  This
makes it difficult to append an additional ROM image, such as an EFI
ROM.

Add a second, dummy ROM header covering the payload portion of the
.mrom image, allowing consumers to locate any appended ROM images in
the usual way.

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[build] Fix building on mildly deranged versions of binutils</title>
<updated>2011-04-29T00:27:36+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2011-04-29T00:27:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=987b825b7f046e844a332d27497b4846cb23ba43'/>
<id>urn:sha1:987b825b7f046e844a332d27497b4846cb23ba43</id>
<content type='text'>
Some versions of binutils have curious concepts of what constitutes
subtraction.  For example:

  0x00000000000000f0 _text16_late = .
  0x0000000000000898 _mtext16 = .
  0x0000000000000898 _etext16 = .
  0x0000000000000898 _text16_late_filesz = ABSOLUTE ((_mtext16 - _text16_late))
  0x00000000000007a8 _text16_late_memsz = ABSOLUTE ((_etext16 - _text16_late))

This has interesting side-effects such as producing sizes for .bss
segments that are negative, causing the majority of addressable memory
to be zeroed out.

Fix by using the form

  ABSOLUTE ( x ) - ABSOLUTE ( y )

rather than

  ABSOLUTE ( x - y )

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