<feed xmlns='http://www.w3.org/2005/Atom'>
<title>openslx-ng/ipxe.git/src/arch/x86/include, 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/include?h=master</id>
<link rel='self' href='https://git.openslx.org/openslx-ng/ipxe.git/atom/src/arch/x86/include?h=master'/>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/'/>
<updated>2018-03-21T15:00:53+00:00</updated>
<entry>
<title>[librm] Ensure that inline code symbols are unique</title>
<updated>2018-03-21T15:00:53+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2018-03-21T14:47:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=bc85368cdd311fe68ffcf251e7e8e90c14f8a9dc'/>
<id>urn:sha1:bc85368cdd311fe68ffcf251e7e8e90c14f8a9dc</id>
<content type='text'>
Commit 6149e0a ("[librm] Provide symbols for inline code placed into
other sections") may cause build failures due to duplicate label names
if the compiler chooses to duplicate inline assembly code.

Fix by using the "%=" special format string to include a
guaranteed-unique number within the label name.

The "%=" will be expanded only if constraints exist for the inline
assembly.  This fix therefore requires that all REAL_CODE() fragments
use a (possibly empty) constraint list.

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[librm] Provide symbols for inline code placed into other sections</title>
<updated>2018-03-21T12:44:04+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2018-03-21T12:39:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=6149e0af3ca21d8ea2a903dd555e6e5c4b6a630a'/>
<id>urn:sha1:6149e0af3ca21d8ea2a903dd555e6e5c4b6a630a</id>
<content type='text'>
Provide symbols constructed from the object name and line number for
code fragments placed into alternative sections, such as inline
REAL_CODE() assembly placed into .text16.  This simplifies the
debugging task of finding the source code corresponding to a given
instruction pointer.

Note that we cannot use __FUNCTION__ since it is not a preprocessor
macro and so cannot be concatenated with string literals.

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[rng] Use fixed-point calculations for min-entropy quantities</title>
<updated>2018-03-20T18:56:01+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2018-03-20T18:42:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=0d35411f88dd37dda755d52b4549337f8299c698'/>
<id>urn:sha1:0d35411f88dd37dda755d52b4549337f8299c698</id>
<content type='text'>
We currently perform various min-entropy calculations using build-time
floating-point arithmetic.  No floating-point code ends up in the
final binary, since the results are eventually converted to integers
and asserted to be compile-time constants.

Though this mechanism is undoubtedly cute, it inhibits us from using
"-mno-sse" to prevent the use of SSE registers by the compiler.

Fix by using fixed-point arithmetic instead.

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[time] Add support for the ACPI power management timer</title>
<updated>2018-03-20T15:26:49+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2018-03-20T15:26:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=3ec2079ce2078ff67c1f857eaf29293586bb5497'/>
<id>urn:sha1:3ec2079ce2078ff67c1f857eaf29293586bb5497</id>
<content type='text'>
Allow the ACPI power management timer to be used if enabled via
TIMER_ACPI in config/timer.h.  This provides an alternative timer on
systems where the standard 8254 PIT is unavailable or unreliable.

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[librm] Add facility to provide register and stack dump for CPU exceptions</title>
<updated>2018-03-18T12:59:34+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2018-03-18T12:54:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=89e31f8491895e6196d4ba56aee3809261aa6b89'/>
<id>urn:sha1:89e31f8491895e6196d4ba56aee3809261aa6b89</id>
<content type='text'>
When DEBUG=librm_mgmt is enabled, intercept CPU exceptions and provide
a register and stack dump, then drop to an emergency shell.  Exiting
from the shell will almost certainly not work, but this provides an
opportunity to view the register and stack dump and carry out some
basic debugging.

Note that we can intercept only the first 8 CPU exceptions, since a
PXE ROM is not permitted to rebase the PIC.

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[cpuid] Allow input %ecx value to be specified</title>
<updated>2017-06-16T00:17:48+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2017-06-15T13:50:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=a6a5825f8d658834610de31b7b9be2e7d0a8804e'/>
<id>urn:sha1:a6a5825f8d658834610de31b7b9be2e7d0a8804e</id>
<content type='text'>
For some CPUID leaves (e.g. %eax=0x00000004), the result depends on
the input value of %ecx.  Allow this subfunction number to be
specified as a parameter to the cpuid() wrapper.

The subfunction number is exposed via the ${cpuid/...} settings
mechanism using the syntax

  ${cpuid/&lt;subfunction&gt;.0x40.&lt;register&gt;.&lt;function&gt;}

e.g.

  ${cpuid/0.0x40.0.0x0000000b}
  ${cpuid/1.0x40.0.0x0000000b}

to retrieve the CPU topology information.

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[acpi] Make acpi_find_rsdt() a per-platform method</title>
<updated>2017-05-23T17:34:39+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2017-05-22T18:27:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=933e6dadc0b415b26c7c0752423e8284164945e0'/>
<id>urn:sha1:933e6dadc0b415b26c7c0752423e8284164945e0</id>
<content type='text'>
Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[undi] Move PXE API caller back into UNDI driver</title>
<updated>2017-03-19T15:57:24+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2017-03-19T15:57:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=7692a8ff02c078ef32dac4f05451f0ffa5872e64'/>
<id>urn:sha1:7692a8ff02c078ef32dac4f05451f0ffa5872e64</id>
<content type='text'>
As of commit 10d19bd ("[pxe] Always retrieve cached DHCPACK and apply
to relevant network device"), the UNDI driver has been the only user
of pxeparent_call().  Remove the unnecessary layer of abstraction by
refactoring this code back into undinet.c, and fix the ability of
undiisr.S to fall back to chaining to the original handler if we were
unable to unhook our own ISR.

This effectively reverts commit 337e1ed ("[pxe] Separate parent PXE
API caller from UNDINET driver").

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[time] Allow timer to be selected at runtime</title>
<updated>2017-01-26T08:17:37+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2017-01-25T20:59:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=302f1eeb80706fb10067efedb1279fa3f85ddda2'/>
<id>urn:sha1:302f1eeb80706fb10067efedb1279fa3f85ddda2</id>
<content type='text'>
Allow the active timer (providing udelay() and currticks()) to be
selected at runtime based on probing during the INIT_EARLY stage of
initialisation.

TICKS_PER_SEC is now a fixed compile-time constant for all builds, and
is independent of the underlying clock tick rate.  We choose the value
1024 to allow multiplications and divisions on seconds to be converted
to bit shifts.

TICKS_PER_MS is defined as 1, allowing multiplications and divisions
on milliseconds to be omitted entirely.  The 2% inaccuracy in this
definition is negligible when using the standard BIOS timer (running
at around 18.2Hz).

TIMER_RDTSC now checks for a constant TSC before claiming to be a
usable timer.  (This timer can be tested in KVM via the command-line
option "-cpu host,+invtsc".)

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[cpuid] Provide cpuid_supported() to test for supported functions</title>
<updated>2017-01-25T20:57:18+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2017-01-25T20:57:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=d37e025b81cb6fd0e7833b927ed138b42a628bc8'/>
<id>urn:sha1:d37e025b81cb6fd0e7833b927ed138b42a628bc8</id>
<content type='text'>
Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
</feed>
