<feed xmlns='http://www.w3.org/2005/Atom'>
<title>openslx-ng/ipxe.git/src/util, branch openslx</title>
<subtitle>Fork of ipxe; additional commands and features</subtitle>
<id>https://git.openslx.org/openslx-ng/ipxe.git/atom/src/util?h=openslx</id>
<link rel='self' href='https://git.openslx.org/openslx-ng/ipxe.git/atom/src/util?h=openslx'/>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/'/>
<updated>2026-01-13T15:41:21+00:00</updated>
<entry>
<title>[console] Mark generated keymaps as permitted for Secure Boot</title>
<updated>2026-01-13T15:41:21+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2026-01-13T15:41:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=49f700a25b771881e45b74ad560c909f3a860cb3'/>
<id>urn:sha1:49f700a25b771881e45b74ad560c909f3a860cb3</id>
<content type='text'>
Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[efi] Mark imported EDK2 headers as permitted for Secure Boot</title>
<updated>2026-01-13T15:18:16+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2026-01-13T14:00:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=b09af00fab6ec193d2cb7488825bf1a95015497f'/>
<id>urn:sha1:b09af00fab6ec193d2cb7488825bf1a95015497f</id>
<content type='text'>
Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[efi] Update to current EDK2 headers</title>
<updated>2025-11-11T23:24:22+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2025-11-11T16:18:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=27ec3c76ab2dfdc384c589b9f4c8a610a33ba8d1'/>
<id>urn:sha1:27ec3c76ab2dfdc384c589b9f4c8a610a33ba8d1</id>
<content type='text'>
Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[build] Handle isohybrid with xorrisofs</title>
<updated>2025-07-08T10:49:16+00:00</updated>
<author>
<name>Christian Hesse</name>
</author>
<published>2025-07-08T10:49:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=06083d2676593cd52367547805af1127d75a8c3b'/>
<id>urn:sha1:06083d2676593cd52367547805af1127d75a8c3b</id>
<content type='text'>
Generating an isohybrid image with `xorrisofs` is supposed to happen
with option `-isohybrid-gpt-basdat`, not command `isohybrid`.

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[zbin] Allow for constructing compressed dynamic relocation records</title>
<updated>2025-05-06T11:11:56+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2025-05-06T11:11:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=70bb5e5e63453f5b931de9c5cc88df8d510462fb'/>
<id>urn:sha1:70bb5e5e63453f5b931de9c5cc88df8d510462fb</id>
<content type='text'>
Define a new "ZREL" compressor information block, describing a block
of Elf_Rel or Elf_Rela runtime relocations to be converted to an
iPXE-specific compressed relocation format.

The compressed relocation format is based loosely on the Elf_Relr
bitmap+offset format, with some optimisations for use in iPXE.  In
particular:

  - a relative "skip" value is used instead of an absolute offset

  - the width of the skip value is reduced to 19 bits (when present)

  - an explicit skip value of zero is used to terminate the list

  - unaligned relocations are prohibited

The layout of bits within the compressed relocation record is also
adjusted to make assembly code implementations simpler: the skip flag
bit is placed in the MSB so that it can be tested using "bltz" or
similar instructions, and the skip value is placed above the
relocation flag bits so that a typical shifting implementation will
naturally end up with a zero value in its accumulator if and only if
the record was a terminator.

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[build] Allow for 32-bit and 64-bit versions of util/zbin</title>
<updated>2025-05-06T11:11:02+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2025-05-06T11:07:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=98646b9f016d9bff91a5c89f402aeb452ee7f84b'/>
<id>urn:sha1:98646b9f016d9bff91a5c89f402aeb452ee7f84b</id>
<content type='text'>
Parsing ELF data is simpler if we don't have to build a single binary
to handle both 32-bit and 64-bit ELF formats.

Allow for separate 32-bit and 64-bit binaries built from util/zbin.c
(as is already done for util/elf2efi.c).

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[riscv] Add support for the RISC-V CPU architecture</title>
<updated>2024-09-15T21:34:10+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2024-09-15T09:54:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=c215048ddaac75969c22c018871295a5748a47e8'/>
<id>urn:sha1:c215048ddaac75969c22c018871295a5748a47e8</id>
<content type='text'>
Add support for building iPXE as a 64-bit or 32-bit RISC-V binary, for
either UEFI or Linux userspace platforms.  For example:

  # RISC-V 64-bit UEFI
  make CROSS=riscv64-linux-gnu- bin-riscv64-efi/ipxe.efi

  # RISC-V 32-bit UEFI
  make CROSS=riscv64-linux-gnu- bin-riscv32-efi/ipxe.efi

  # RISC-V 64-bit Linux
  make CROSS=riscv64-linux-gnu- bin-riscv64-linux/tests.linux
  qemu-riscv64 -L /usr/riscv64-linux-gnu/sys-root \
               ./bin-riscv64-linux/tests.linux

  # RISC-V 32-bit Linux
  make CROSS=riscv64-linux-gnu- SYSROOT=/usr/riscv32-linux-gnu/sys-root \
       bin-riscv32-linux/tests.linux
  qemu-riscv32 -L /usr/riscv32-linux-gnu/sys-root \
               ./bin-riscv32-linux/tests.linux

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[efi] Ignore new LoongArch PC-relative relocations and relaxations</title>
<updated>2024-02-22T14:40:53+00:00</updated>
<author>
<name>Alexey Sheplyakov</name>
</author>
<published>2024-02-21T09:07:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=ee6185dcf5ad7b0d5e486e66c424341764fc221d'/>
<id>urn:sha1:ee6185dcf5ad7b0d5e486e66c424341764fc221d</id>
<content type='text'>
Several new relocations types have been added in LoongArch ABI version
2.10.  In particular:

- R_LARCH_B16 (18-bit PC-relative jump)
- R_LARCH_B21 (23-bit PC-relative jump)
- R_LARCH_PCREL20_S2 (22-bit PC-relative offset)

Also relocation relaxations have been introduced.  Recent GCC (13.2)
and binutils 2.41+ use these types of relocations, which confuses
elf2efi tool.  As a result, iPXE EFI images for LoongArch fail to
build with the following error:

  Unrecognised relocation type 103

Fix by ignoring R_LARCH_B{16,21} and R_LARCH_PCREL20_S2 (as with other
PC-relative relocations), and by ignoring relaxations (R_LARCH_RELAX).
Relocation relaxations are basically optimizations: ignoring them
results in a correct binary (although it might be suboptimal).

Modified-by: Michael Brown &lt;mcb30@ipxe.org&gt;
Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[efi] Add potentially missing relocation types</title>
<updated>2023-12-21T12:29:03+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2023-12-21T12:29:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=9e92c39894610c825a4cd6ccb40229fdeaa7223f'/>
<id>urn:sha1:9e92c39894610c825a4cd6ccb40229fdeaa7223f</id>
<content type='text'>
Add definitions for relocation types that may be missing on older
versions of the host system's elf.h.

This mirrors wimboot commit 47f6298 ("[efi] Add potentially missing
relocation types").

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[efi] Fix Coverity warning about unintended sign extension</title>
<updated>2023-12-19T16:56:34+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2023-12-19T16:56:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=3fc1b407d204e950a41c567e84f4c4f079cc052e'/>
<id>urn:sha1:3fc1b407d204e950a41c567e84f4c4f079cc052e</id>
<content type='text'>
The result of multiplying a uint16_t by another uint16_t will be a
signed int.  Comparing this against a size_t will perform an unwanted
sign extension.

Fix by explicitly casting e_phnum to an unsigned int, thereby matching
the data type used for the loop index variable (and avoiding the
unwanted sign extension).

This mirrors wimboot commit 15f6162 ("[efi] Fix Coverity warning about
unintended sign extension").

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
</feed>
