<feed xmlns='http://www.w3.org/2005/Atom'>
<title>openslx-ng/ipxe.git/src/drivers/net/efi, branch master</title>
<subtitle>Fork of ipxe; additional commands and features</subtitle>
<id>https://git.openslx.org/openslx-ng/ipxe.git/atom/src/drivers/net/efi?h=master</id>
<link rel='self' href='https://git.openslx.org/openslx-ng/ipxe.git/atom/src/drivers/net/efi?h=master'/>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/'/>
<updated>2018-03-20T11:31:45+00:00</updated>
<entry>
<title>[efi] Provide Map_Mem() and associated UNDI callbacks</title>
<updated>2018-03-20T11:31:45+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2018-03-20T11:22:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=e8e9ca36130bed2ed241a38fa57e9a35c8ac61f3'/>
<id>urn:sha1:e8e9ca36130bed2ed241a38fa57e9a35c8ac61f3</id>
<content type='text'>
Some drivers are known to call the optional Map_Mem() callback without
first checking that the callback exists.  Provide a usable basic
implementation of Map_Mem() along with the other callbacks that become
mandatory if Map_Mem() is provided.

Note that in theory the PCI I/O protocol is allowed to require
multiple calls to Map(), with each call handling only a subset of the
overall mapped range.  However, the reference implementation in EDK2
assumes that a single Map() will always suffice, so we can probably
make the same simplifying assumption here.

Tested with the Intel E3522X2.EFI driver (which, incidentally, fails
to cleanly remove one of its mappings).

Originally-implemented-by: Maor Dickman &lt;maord@mellanox.com&gt;
Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[efi] Raise TPL when calling UNDI entry point</title>
<updated>2017-09-05T09:48:41+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2017-09-05T09:48:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=3ae70be5bab1f898efcac859b1b8e3418e0f4a4b'/>
<id>urn:sha1:3ae70be5bab1f898efcac859b1b8e3418e0f4a4b</id>
<content type='text'>
The SnpDxe driver raises the task priority level to TPL_CALLBACK when
calling the UNDI entry point.  This does not appear to be a documented
requirement, but we should probably match the behaviour of SnpDxe to
minimise surprises to third party code.

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[efi] Enumerate PCI BARs in same order as SnpDxe</title>
<updated>2017-07-21T14:00:17+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2017-07-21T13:48:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=9ccd8fe569c75265dfa834d325046696e18616de'/>
<id>urn:sha1:9ccd8fe569c75265dfa834d325046696e18616de</id>
<content type='text'>
The UEFI specification has an implicit and demonstrably incorrect
requirement (in the Mem_IO() calling convention) that any UNDI network
device has at most one memory BAR and one I/O BAR.

Some UEFI platforms have been observed to report the existence of
non-existent additional I/O BARs, causing iPXE to select the wrong
BAR.  This problem does not affect the SnpDxe driver, since that
driver will always choose the lowest numbered existent BAR of each
type.

Adjust iPXE's behaviour to match that of SnpDxe, i.e. to always select
the lowest numbered BAR(s).

Debugged-by: Andreas Hammarskjöld &lt;junior@2PintSoftware.com&gt;
Debugged-by: Adklei &lt;adklei@realtek.com&gt;
Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[efi] Skip cable detection at initialisation where possible</title>
<updated>2017-03-19T13:30:27+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2017-03-19T13:22:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=6324227dcaa820436da4acd88ee174d3e26f0d54'/>
<id>urn:sha1:6324227dcaa820436da4acd88ee174d3e26f0d54</id>
<content type='text'>
We currently request cable detection in PXE_OPCODE_INITIALIZE to work
around buggy Emulex drivers (see commit c0b61ba ("[efi] Work around
bugs in Emulex NII driver")).

This causes problems with some other NII drivers (e.g. Mellanox),
which may time out if the underlying link is intrinsically slow to
come up.

Attempt to work around both problems simultaneously by requesting
cable detection only if the underlying NII driver does not support
link status reporting via PXE_OPCODE_GET_STATUS.  (This is based on a
potentially incorrect assumption that the buggy Emulex drivers do not
claim to report link status via PXE_OPCODE_GET_STATUS.)

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[efi] Guard against GetStatus() failing to return a NULL TX buffer</title>
<updated>2016-05-11T22:02:10+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2016-05-11T21:02:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=6164741f81fbb80d25ba3877251f4b31de3ed6a0'/>
<id>urn:sha1:6164741f81fbb80d25ba3877251f4b31de3ed6a0</id>
<content type='text'>
The UEFI specification requires the EFI_SIMPLE_NETWORK_PROTOCOL
GetStatus() method to set TxBuf to NULL if there are no transmit
buffers to recycle.

Some implementations (observed with Lan9118Dxe in EDK2) fill in TxBuf
only when there is a transmit buffer to recycle, which leads to large
numbers of "spurious TX completion" errors.

Work around this problem by initialising TxBuf to NULL before calling
the GetStatus() method.

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[efi] Remove raw EFI_HANDLE values from debug messages</title>
<updated>2015-08-27T14:40:44+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2015-08-27T09:08:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=9501eaf68d79a7baa2d71567481ccb0f43e56253'/>
<id>urn:sha1:9501eaf68d79a7baa2d71567481ccb0f43e56253</id>
<content type='text'>
The raw EFI_HANDLE value is almost never useful to know, and simply
adds noise to the already verbose debug messages.  Improve the
legibility of debug messages by using only the name generated by
efi_handle_name().

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[efi] Work around bugs in Emulex NII driver</title>
<updated>2015-08-17T14:57:05+00:00</updated>
<author>
<name>Fabrice Bacchella</name>
</author>
<published>2015-08-13T10:44:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=c0b61bad99badd575bcae3a25b9de0aa43e88f25'/>
<id>urn:sha1:c0b61bad99badd575bcae3a25b9de0aa43e88f25</id>
<content type='text'>
Modified-by: Michael Brown &lt;mcb30@ipxe.org&gt;
Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[efi] Improve NII driver logging</title>
<updated>2015-08-17T14:55:48+00:00</updated>
<author>
<name>Fabrice Bacchella</name>
</author>
<published>2015-08-12T10:17:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=b71037989d1e4729ec81448f18f692245debc44e'/>
<id>urn:sha1:b71037989d1e4729ec81448f18f692245debc44e</id>
<content type='text'>
Modified-by: Michael Brown &lt;mcb30@ipxe.org&gt;
Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[efi] Poll for TX completions only when there is an outstanding TX buffer</title>
<updated>2015-04-14T16:02:00+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2015-04-14T16:02:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=c6c7e78c42fff7b057ce32467ac6aa84bef94026'/>
<id>urn:sha1:c6c7e78c42fff7b057ce32467ac6aa84bef94026</id>
<content type='text'>
At least one NII implementation (in a Microsoft Surface tablet) seems
to fail to report the absence (sic) of TX completions properly.  Work
around this by checking for TX completions only when we expect to see
one.

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[efi] Poll media status only if advertised as supported</title>
<updated>2015-04-14T15:44:37+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2015-04-14T15:44:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=729c16ad5b5502913d15a1fb17747bc8b586bed2'/>
<id>urn:sha1:729c16ad5b5502913d15a1fb17747bc8b586bed2</id>
<content type='text'>
Some NII implementations will fail the GET_STATUS operation if we
request the media status.  Fix by doing so only if GET_INIT_INFO
reported that media status is supported.

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