<feed xmlns='http://www.w3.org/2005/Atom'>
<title>openslx-ng/ipxe.git/src/arch/x86/drivers, 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/drivers?h=master</id>
<link rel='self' href='https://git.openslx.org/openslx-ng/ipxe.git/atom/src/arch/x86/drivers?h=master'/>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/'/>
<updated>2019-01-25T14:53:43+00:00</updated>
<entry>
<title>[init] Show startup and shutdown function names in debug messages</title>
<updated>2019-01-25T14:53:43+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2019-01-25T14:53:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=36a4c85f911c85f5ab183331ff74d125f9a9ed32'/>
<id>urn:sha1:36a4c85f911c85f5ab183331ff74d125f9a9ed32</id>
<content type='text'>
Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[undi] Include subsystem IDs in broken interrupt device check</title>
<updated>2018-04-18T15:57:05+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2018-04-18T15:38:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=d6f02c72c984aaeab11741d54f9d9e81d9ce79f2'/>
<id>urn:sha1:d6f02c72c984aaeab11741d54f9d9e81d9ce79f2</id>
<content type='text'>
Allow the subsystem IDs to be used when checking for PXE stacks with
broken interrupt support.

Suggested-by: Levi Hsieh &lt;Levi.Hsieh@dell.com&gt;
Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[undi] Treat invalid IRQ numbers as non-fatal errors</title>
<updated>2018-03-21T08:28:05+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2018-03-21T08:28:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=0600ffeb3051a3ccbd56a4d6999d3eb55bc886df'/>
<id>urn:sha1:0600ffeb3051a3ccbd56a4d6999d3eb55bc886df</id>
<content type='text'>
If the underlying PXE stack reports an invalid IRQ number (above
IRQ_MAX), treat this as equivalent to an empty IRQ number and fall
back to using polling mode.

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[hyperv] Do not steal ownership from the Gen 2 UEFI firmware</title>
<updated>2017-07-28T20:30:43+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2017-07-28T20:19:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=936657832f2262ad04bdf16b9229ce0b1d1c174f'/>
<id>urn:sha1:936657832f2262ad04bdf16b9229ce0b1d1c174f</id>
<content type='text'>
We must not steal ownership from the Gen 2 UEFI firmware, since doing
so will cause an immediate system crash (most likely in the form of a
reboot).

This problem was masked before commit a0f6e75 ("[hyperv] Do not fail
if guest OS ID MSR is already set"), since prior to that commit we
would always fail if we found any non-zero guest OS identity.  We now
accept a non-zero previous guest OS identity in order to allow for
situations such as chainloading from iPXE to another iPXE, and as a
prerequisite for commit b91cc98 ("[hyperv] Cope with Windows Server
2016 enlightenments").

A proper fix would be to reverse engineer the UEFI protocols exposed
within the Hyper-V Gen 2 firmware and use these to bind to the VMBus
device representing the network connection, (with the native Hyper-V
driver moved to become a BIOS-only feature).

As an interim solution, fail to initialise the native Hyper-V driver
if we detect the guest OS identity known to be used by the Gen 2 UEFI
firmware.  This will cause the standard all-drivers build (ipxe.efi)
to fall back to using the SNP driver.

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>[hyperv] Cope with Windows Server 2016 enlightenments</title>
<updated>2017-04-28T15:20:47+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2017-04-25T13:13:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=b91cc983da48b2791a672431551f7859e33126ec'/>
<id>urn:sha1:b91cc983da48b2791a672431551f7859e33126ec</id>
<content type='text'>
An "enlightened" external bootloader (such as Windows Server 2016's
winload.exe) may take ownership of the Hyper-V connection before all
INT 13 operations have been completed.  When this happens, all VMBus
devices are implicitly closed and we are left with a non-functional
network connection.

Detect when our Hyper-V connection has been lost (by checking the
SynIC message page MSR).  Reclaim ownership of the Hyper-V connection
and reestablish any VMBus devices, without disrupting any existing
iPXE state (such as IPv4 settings attached to the network device).

Windows Server 2016 will not cleanly take ownership of an active
Hyper-V connection.  Experimentation shows that we can quiesce by
resetting only the SynIC message page MSR; this results in a
successful SAN boot (on a Windows 2012 R2 physical host).  Choose to
quiesce by resetting (almost) all MSRs, in the hope that this will be
more robust against corner cases such as a stray synthetic interrupt
occurring during the handover.

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[hyperv] Remove redundant return status code from mapping functions</title>
<updated>2017-04-28T15:20:35+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2017-04-28T15:18:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=276d618ca9588198acde376e28e49bd5a93b20d6'/>
<id>urn:sha1:276d618ca9588198acde376e28e49bd5a93b20d6</id>
<content type='text'>
Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[hyperv] Do not fail if guest OS ID MSR is already set</title>
<updated>2017-04-26T19:15:39+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2017-04-25T12:33:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=a0f6e75532c68f49b3e1c73ca88151d9663f5269'/>
<id>urn:sha1:a0f6e75532c68f49b3e1c73ca88151d9663f5269</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>[hyperv] Provide timer based on the 10MHz time reference count MSR</title>
<updated>2017-01-26T08:19:26+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2017-01-26T08:03:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=f3ba0fb5fdd866961b5dfc0d227af60b25753f0e'/>
<id>urn:sha1:f3ba0fb5fdd866961b5dfc0d227af60b25753f0e</id>
<content type='text'>
When running on AMD platforms, the legacy hardware emulation is
extremely unreliable.  In particular, the IRQ0 timer interrupt is
likely to simply stop working, resulting in a total failure of any
code that relies on timers (such as DHCP retransmission attempts).

Work around this by using the 10MHz time counter provided by Hyper-V
via an MSR.  (This timer can be tested in KVM via the command-line
option "-cpu host,hv_time".)

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