<feed xmlns='http://www.w3.org/2005/Atom'>
<title>openslx-ng/ipxe.git/src/arch/x86/drivers/xen, branch openslx</title>
<subtitle>Fork of ipxe; additional commands and features</subtitle>
<id>https://git.openslx.org/openslx-ng/ipxe.git/atom/src/arch/x86/drivers/xen?h=openslx</id>
<link rel='self' href='https://git.openslx.org/openslx-ng/ipxe.git/atom/src/arch/x86/drivers/xen?h=openslx'/>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/'/>
<updated>2025-04-30T14:32:03+00:00</updated>
<entry>
<title>[uaccess] Remove redundant copy_from_user() and copy_to_user()</title>
<updated>2025-04-30T14:32:03+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2025-04-30T14:18:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=b6f9e4bab082c3b7a9b587ef64109069fba59baa'/>
<id>urn:sha1:b6f9e4bab082c3b7a9b587ef64109069fba59baa</id>
<content type='text'>
Remove the now-redundant copy_from_user() and copy_to_user() wrapper
functions.

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[malloc] Rename malloc_dma() to malloc_phys()</title>
<updated>2020-11-05T19:13:52+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2020-11-05T19:08:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=be1c87b72237f633c4f4b05bcb133acf2967d788'/>
<id>urn:sha1:be1c87b72237f633c4f4b05bcb133acf2967d788</id>
<content type='text'>
The malloc_dma() function allocates memory with specified physical
alignment, and is typically (though not exclusively) used to allocate
memory for DMA.

Rename to malloc_phys() to more closely match the functionality, and
to create name space for functions that specifically allocate and map
DMA-capable buffers.

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[pci] Update drivers to use pci_ioremap()</title>
<updated>2020-09-25T13:17:07+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2020-09-24T20:45:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=eecb75ba4809bd5d3e6d63413a45c5fccbda2bc2'/>
<id>urn:sha1:eecb75ba4809bd5d3e6d63413a45c5fccbda2bc2</id>
<content type='text'>
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>[build] Fix the REQUIRE_SYMBOL mechanism</title>
<updated>2015-03-05T00:59:38+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2015-03-04T18:48:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=fbc4ba4b4ed13cc86cb8fdea0bac6c3be0164ed5'/>
<id>urn:sha1:fbc4ba4b4ed13cc86cb8fdea0bac6c3be0164ed5</id>
<content type='text'>
At some point in the past few years, binutils became more aggressive
at removing unused symbols.  To function as a symbol requirement, a
relocation record must now be in a section marked with @progbits and
must not be in a section which gets discarded during the link (either
via --gc-sections or via /DISCARD/).

Update REQUIRE_SYMBOL() to generate relocation records meeting these
criteria.  To minimise the impact upon the final binary size, we use
existing symbols (specified via the REQUIRING_SYMBOL() macro) as the
relocation targets where possible.  We use R_386_NONE or R_X86_64_NONE
relocation types to prevent any actual unwanted relocation taking
place.  Where no suitable symbol exists for REQUIRING_SYMBOL() (such
as in config.c), the macro PROVIDE_REQUIRING_SYMBOL() can be used to
generate a one-byte-long symbol to act as the relocation target.

If there are versions of binutils for which this approach fails, then
the fallback will probably involve killing off REQUEST_SYMBOL(),
redefining REQUIRE_SYMBOL() to use the current definition of
REQUEST_SYMBOL(), and postprocessing the linked ELF file with
something along the lines of "nm -u | wc -l" to check that there are
no undefined symbols remaining.

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[legal] Relicense files under GPL2_OR_LATER_OR_UBDL</title>
<updated>2015-03-02T14:17:31+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2015-03-02T11:54:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=b6ee89ffb5029d02cb1d8668757fa2b74b11e0a3'/>
<id>urn:sha1:b6ee89ffb5029d02cb1d8668757fa2b74b11e0a3</id>
<content type='text'>
Relicense files for which I am the sole author (as identified by
util/relicense.pl).

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[xen] Use version 1 grant tables by default</title>
<updated>2014-08-13T18:21:42+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2014-08-13T16:23:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=be79ca535ab9891807d8852447d38d35eff3ff63'/>
<id>urn:sha1:be79ca535ab9891807d8852447d38d35eff3ff63</id>
<content type='text'>
Using version 1 grant tables limits guests to using 16TB of grantable
RAM, and prevents the use of subpage grants.  Some versions of the Xen
hypervisor refuse to allow the grant table version to be set after the
first grant references have been created, so the loaded operating
system may be stuck with whatever choice we make here.  We therefore
currently use version 2 grant tables, since they give the most
flexibility to the loaded OS.

Current versions (7.2.0) of the Windows PV drivers have no support for
version 2 grant tables, and will merrily create version 1 entries in
what the hypervisor believes to be a version 2 table.  This causes
some confusion.

Avoid this problem by attempting to use version 1 tables, since
otherwise we may render Windows unable to boot.

Play nicely with other potential bootloaders by accepting either
version 1 or version 2 grant tables (if we are unable to set our
requested version).

Note that the use of version 1 tables on a 64-bit system introduces a
possible failure path in which a frame number cannot fit into the
32-bit field within the v1 structure.  This in turn introduces
additional failure paths into netfront_transmit() and
netfront_refill_rx().

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[xen] Accept alternative Xen platform PCI device ID 5853:0002</title>
<updated>2014-08-13T12:17:33+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2014-08-13T12:17:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=3f39f9fcb34712bf46f45e184c1227e21e2b7efd'/>
<id>urn:sha1:3f39f9fcb34712bf46f45e184c1227e21e2b7efd</id>
<content type='text'>
At some point during XenServer development history, the Windows PV
drivers changed to using a PCI device ID of 5853:0002 rather than
5853:0001.  Current (7.2.0) drivers will bind to either 5853:0001 or
5853:0002, and the general approach taken by the world at large
(including Amazon EC2) seems to be to use only 5853:0001.

However, the current version of XenServer (6.2.0) will create the
platform device as 5853:0002 (via the platform:device_id VM parameter)
for any VMs created using the built-in templates for Windows Vista or
later.

Accept either PCI ID, since the underlying device is identical.

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[xen] Add support for Xen netfront virtual NICs</title>
<updated>2014-07-29T14:57:56+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2014-07-28T22:39:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=793a806611f5a7b3a404afb27c837a3da381952e'/>
<id>urn:sha1:793a806611f5a7b3a404afb27c837a3da381952e</id>
<content type='text'>
Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[xen] Add basic support for PV-HVM domains</title>
<updated>2014-07-29T14:57:44+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2014-07-28T22:38:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=036af27a4523c4e15e28d30a1513a3f6d9671774'/>
<id>urn:sha1:036af27a4523c4e15e28d30a1513a3f6d9671774</id>
<content type='text'>
Add basic support for Xen PV-HVM domains (detected via the Xen
platform PCI device with IDs 5853:0001), including support for
accessing configuration via XenStore and enumerating devices via
XenBus.

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