<feed xmlns='http://www.w3.org/2005/Atom'>
<title>openslx-ng/ipxe.git/src/interface/efi, branch v1.0.0</title>
<subtitle>Fork of ipxe; additional commands and features</subtitle>
<id>https://git.openslx.org/openslx-ng/ipxe.git/atom/src/interface/efi?h=v1.0.0</id>
<link rel='self' href='https://git.openslx.org/openslx-ng/ipxe.git/atom/src/interface/efi?h=v1.0.0'/>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/'/>
<updated>2009-08-11T23:23:38+00:00</updated>
<entry>
<title>[netdevice] Allow the hardware and link-layer addresses to differ in size</title>
<updated>2009-08-11T23:23:38+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2009-08-11T22:40:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=4eab5bc8ca6b66dc965cf188dd4577ad19c5b879'/>
<id>urn:sha1:4eab5bc8ca6b66dc965cf188dd4577ad19c5b879</id>
<content type='text'>
IPoIB has a 20-byte link-layer address, of which only eight bytes
represent anything relating to a "hardware address".

The PXE and EFI SNP APIs expect the permanent address to be the same
size as the link-layer address, so fill in the "permanent address"
field with the initial link layer address (as generated by
register_netdev() based upon the real hardware address).
</content>
</entry>
<entry>
<title>[netdevice] Separate out the concept of hardware and link-layer addresses</title>
<updated>2009-08-11T23:19:14+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2009-08-11T19:19:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=37a0aab4ff2c86f4d109d4cd479535be97d07a94'/>
<id>urn:sha1:37a0aab4ff2c86f4d109d4cd479535be97d07a94</id>
<content type='text'>
The hardware address is an intrinsic property of the hardware, while
the link-layer address can be changed at runtime.  This separation is
exposed via APIs such as PXE and EFI, but is currently elided by gPXE.

Expose the hardware and link-layer addresses as separate properties
within a net device.  Drivers should now fill in hw_addr, which will
be used to initialise ll_addr at the time of calling
register_netdev().
</content>
</entry>
<entry>
<title>[netdevice] Make ll_broadcast per-netdevice rather than per-ll_protocol</title>
<updated>2009-07-17T22:02:48+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2009-07-17T21:48:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=d09290161e33574d8f0fa900ebe739214d17fe1a'/>
<id>urn:sha1:d09290161e33574d8f0fa900ebe739214d17fe1a</id>
<content type='text'>
IPoIB has a link-layer broadcast address that varies according to the
partition key.  We currently go through several contortions to pretend
that the link-layer address is a fixed constant; by making the
broadcast address a property of the network device rather than the
link-layer protocol it will be possible to simplify IPoIB's broadcast
handling.
</content>
</entry>
<entry>
<title>[netdevice] Add netdev argument to link-layer push and pull handlers</title>
<updated>2009-06-23T09:41:57+00:00</updated>
<author>
<name>Joshua Oreman</name>
</author>
<published>2009-06-15T18:37:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=eb3ca2a36f0c613aea5c2f02762bc608d5ec785c'/>
<id>urn:sha1:eb3ca2a36f0c613aea5c2f02762bc608d5ec785c</id>
<content type='text'>
In order to construct outgoing link-layer frames or parse incoming
ones properly, some protocols (such as 802.11) need more state than is
available in the existing variables passed to the link-layer protocol
handlers. To remedy this, add struct net_device *netdev as the first
argument to each of these functions, so that more information can be
fetched from the link layer-private part of the network device.

Updated all three call sites (netdevice.c, efi_snp.c, pxe_undi.c) and
both implementations (ethernet.c, ipoib.c) of ll_protocol to use the
new argument.

Signed-off-by: Michael Brown &lt;mcb30@etherboot.org&gt;
</content>
</entry>
<entry>
<title>[legal] Add a selection of FILE_LICENCE declarations</title>
<updated>2009-05-18T07:33:25+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2009-05-01T14:41:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=c44a193d0d147ed6f98741124569864e516e9d4b'/>
<id>urn:sha1:c44a193d0d147ed6f98741124569864e516e9d4b</id>
<content type='text'>
Add FILE_LICENCE declarations to almost all files that make up the
various standard builds of gPXE.
</content>
</entry>
<entry>
<title>[tables] Redefine methods for accessing linker tables</title>
<updated>2009-03-13T02:06:30+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2009-03-12T19:41:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=1266d7902bf7f2534ee279671d48613ef9b2434c'/>
<id>urn:sha1:1266d7902bf7f2534ee279671d48613ef9b2434c</id>
<content type='text'>
Intel's C compiler (icc) chokes on the zero-length arrays that we
currently use as part of the mechanism for accessing linker table
entries.  Abstract away the zero-length arrays, to make a port to icc
easier.

Introduce macros such as for_each_table_entry() to simplify the common
case of iterating over all entries in a linker table.

Represent table names as #defined string constants rather than
unquoted literals; this avoids visual confusion between table names
and C variable or type names, and also allows us to force a
compilation error in the event of incorrect table names.
</content>
</entry>
<entry>
<title>[iobuf] Add iob_disown() and use it where it simplifies code</title>
<updated>2009-02-01T20:16:10+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2009-02-01T18:02:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=dbe84c5aad583a4194666d2d925a5cda53852631'/>
<id>urn:sha1:dbe84c5aad583a4194666d2d925a5cda53852631</id>
<content type='text'>
There are many functions that take ownership of the I/O buffer they
are passed as a parameter.  The caller should not retain a pointer to
the I/O buffer.  Use iob_disown() to automatically nullify the
caller's pointer, e.g.:

    xfer_deliver_iob ( xfer, iob_disown ( iobuf ) );

This will ensure that iobuf is set to NULL for any code after the call
to xfer_deliver_iob().

iob_disown() is currently used only in places where it simplifies the
code, by avoiding an extra line explicitly setting the I/O buffer
pointer to NULL.  It should ideally be used with each call to any
function that takes ownership of an I/O buffer.  (The SSA
optimisations will ensure that use of iob_disown() gets optimised away
in cases where the caller makes no further use of the I/O buffer
pointer anyway.)

If gcc ever introduces an __attribute__((free)), indicating that use
of a function argument after a function call should generate a
warning, then we should use this to identify all applicable function
call sites, and add iob_disown() as necessary.
</content>
</entry>
<entry>
<title>[efi] Expose both GUIDs for the EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL</title>
<updated>2009-01-12T20:53:38+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2009-01-12T20:53:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=08f6d22410c662e075cf9907f12e1e6278a06967'/>
<id>urn:sha1:08f6d22410c662e075cf9907f12e1e6278a06967</id>
<content type='text'>
At some point, it seems that someone decided to change the GUID for
the EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL.  Current EFI builds
ignore the older GUID, older EFI builds ignore the newer GUID, so we
have to expose both.
</content>
</entry>
<entry>
<title>[efi] Add an EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL interface</title>
<updated>2009-01-12T19:11:30+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2009-01-12T05:22:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=aa86afe890a4d1427961452cd440ad022edc40b0'/>
<id>urn:sha1:aa86afe890a4d1427961452cd440ad022edc40b0</id>
<content type='text'>
This allegedly optional interface seems to be compulsory if you want
EFI's PXE code to bother trying to use your network interface.
</content>
</entry>
<entry>
<title>[efi] Provide component name protocol and device path protocol interfaces</title>
<updated>2009-01-12T19:10:53+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2009-01-10T00:21:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=cced04ef3bba35dedb4e4c1da97643bc88260fc2'/>
<id>urn:sha1:cced04ef3bba35dedb4e4c1da97643bc88260fc2</id>
<content type='text'>
Include a minimal component name protocol so that the driver name
shows up as something other than "&lt;UNKNOWN&gt;" in the driver list, and a
device path protocol so that the network interface shows up as a
separate device in the device list, rather than being attached
directly to the PCI device.

Incidentally, the EFI component name protocol reaches new depths for
signal-to-noise ratio in program code.  A typical instance within the
EFI development kit will use an additional 300 lines of code to
provide slightly less functionality than GNU gettext achieves with
three additional characters.
</content>
</entry>
</feed>
