All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH 0/7] ipxe: update pxe boot roms for qemu
@ 2015-04-10 14:17 Gerd Hoffmann
  2015-04-10 14:17 ` [Qemu-devel] [PATCH 1/7] ipxe: update from 35c53797 to dc795b9 Gerd Hoffmann
                   ` (6 more replies)
  0 siblings, 7 replies; 11+ messages in thread
From: Gerd Hoffmann @ 2015-04-10 14:17 UTC (permalink / raw)
  To: qemu-devel; +Cc: ipxe-devel, Gerd Hoffmann

  Hi,

This patch series updates the ipxe submodule in qemu to latest ipxe git,
adds some patches needed to work correctly on efi (ovmf), applies some
smaller tweaks to the build process and finally updates the prebuilt
binaries shipped in pc-bios/efi-*.rom

This is also available in the git repository at:
  git://git.kraxel.org/qemu rebase/roms-next

cheers,
  Gerd

Gerd Hoffmann (7):
  ipxe: update from 35c53797 to dc795b9
  ipxe: rm local config in cleanup
  ipxe: add local patches
  ipxe: disable load file protocol
  ipxe: add qemu branding
  ipxe: don't override GITVERSION
  ipxe: update binaries

 pc-bios/efi-e1000.rom                              | Bin 197120 -> 190464 bytes
 pc-bios/efi-eepro100.rom                           | Bin 197632 -> 191488 bytes
 pc-bios/efi-ne2k_pci.rom                           | Bin 195584 -> 189952 bytes
 pc-bios/efi-pcnet.rom                              | Bin 195584 -> 189952 bytes
 pc-bios/efi-rtl8139.rom                            | Bin 200192 -> 193024 bytes
 pc-bios/efi-virtio.rom                             | Bin 194048 -> 187904 bytes
 roms/Makefile                                      |  15 +-
 roms/config.ipxe.branding.h                        |   2 +
 roms/config.ipxe.general.h                         |   1 +
 roms/ipxe                                          |   2 +-
 ...rove-compliance-with-the-EFI_SIMPLE_NETWO.patch | 160 +++++++++++++++++++++
 ...0002-efi-make-load-file-protocol-optional.patch | 102 +++++++++++++
 12 files changed, 277 insertions(+), 5 deletions(-)
 create mode 100644 roms/config.ipxe.branding.h
 create mode 100644 roms/ipxe-patches/0001-efi_snp-improve-compliance-with-the-EFI_SIMPLE_NETWO.patch
 create mode 100644 roms/ipxe-patches/0002-efi-make-load-file-protocol-optional.patch

-- 
1.8.3.1

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Qemu-devel] [PATCH 1/7] ipxe: update from 35c53797 to dc795b9
  2015-04-10 14:17 [Qemu-devel] [PATCH 0/7] ipxe: update pxe boot roms for qemu Gerd Hoffmann
@ 2015-04-10 14:17 ` Gerd Hoffmann
  2015-04-10 14:17 ` [Qemu-devel] [PATCH 2/7] ipxe: rm local config in cleanup Gerd Hoffmann
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 11+ messages in thread
From: Gerd Hoffmann @ 2015-04-10 14:17 UTC (permalink / raw)
  To: qemu-devel; +Cc: ipxe-devel, Gerd Hoffmann

git shortlog 35c53797..dc795b9
==============================

Alex Williamson (1):
      [dhcp] Extract timing parameters out to config/dhcp.h

Michael Brown (144):
      [device] Provide a driver-private data field for root devices
      [iobuf] Add iob_split() to split an I/O buffer into portions
      [rndis] Add generic RNDIS device abstraction
      [hyperv] Add support for Hyper-V hypervisor
      [hyperv] Add support for VMBus devices
      [hyperv] Add support for NetVSC paravirtual network devices
      [rndis] Send RNDIS_INITIALISE_MSG
      [rndis] Send RNDIS_HALT_MSG
      [hyperv] Tear down NetVSC RX buffer GPADL after closing VMBus device
      [rndis] Clear receive filter when closing the device
      [hyperv] Receive all VMBus messages in a poll
      [hyperv] Increase TX ring size
      [hyperv] Assume that VMBus xfer page ranges correspond to RNDIS messages
      [rndis] Ignore start-of-day RNDIS_INDICATE_STATUS_MSG with status 0x40020006
      [hyperv] Tidy up debug output
      [hyperv] Require support for VMBus version 3.0 or newer
      [build] Include Hyper-V driver in the all-drivers build
      [pci] Allow drivers to specify a PCI class
      [romprefix] Ensure UNDI loader can be included by all ROM types
      [usb] Add basic support for USB devices
      [usb] Add basic support for USB hubs
      [usb] Add support for xHCI host controllers
      [ncm] Add support for CDC-NCM USB Ethernet devices
      [usb] Report xHCI host controller events
      [ncm] Use large multi-packet buffers by default
      [tftp] Explicitly abort connection whenever parent interface is closed
      [uri] Allow tftp_uri() to construct a URI with a custom port
      [pxe] Use tftp_uri() to construct PXE TFTP URIs
      [pxe] Maintain a queue for received PXE UDP packets
      [ncm] Reserve headroom in received packets
      [usb] Try multiple USB device configurations
      [usb] Handle CDC union functional descriptors
      [usb] Parse endpoint descriptor bInterval field
      [usb] Allow usb_stream() to enforce a terminating short packet
      [ecm] Add support for CDC-ECM USB Ethernet devices
      [xhci] Delay after (possibly) forcing port link state to RxDetect
      [build] Move branding information to config/branding.h
      [build] Use PRODUCT_SHORT_NAME for end-user visible strings
      [build] Allow product URI to be customised via config/branding.h
      [build] Allow error message URI to be customised via config/branding.h
      [build] Allow command help text URI to be customised via config/branding.h
      [build] Allow setting help text URI to be customised via config/branding.h
      [build] Allow product tag line to be customised via config/branding.h
      [rndis] Add rndis_rx_err()
      [usb] Handle port status changes received after failing to find a driver
      [efi] Disallow R_X86_64_32 relocations
      [build] Apply the "-fno-PIE -nopie" workaround only to i386 builds
      [usb] Provide generic framework for refilling receive endpoints
      [usb] Use generic refill framework for USB hub interrupt endpoints
      [ecm] Use generic refill framework for bulk IN and interrupt endpoints
      [ncm] Use generic refill framework for bulk IN and interrupt endpoints
      [libc] Remove unused string functions
      [libc] Rewrite string functions
      [test] Add self-tests for more string functions
      [test] Add constant-length memset() self-tests
      [libc] Reduce size of memset()
      [usb] Add generic USB network device framework
      [ecm] Use generic USB network device framework
      [ncm] Use generic USB network device framework
      [timer] Rewrite the 8254 Programmable Interval Timer support
      [xhci] Leak memory if controller fails to disable slot
      [xhci] Abort commands on timeout
      [test] Add IPv4 self-tests
      [legal] Add missing copyright header to net/ipv4.c
      [ipv4] Rewrite inet_aton()
      [libc] Rewrite strtoul()
      [hyperv] Check for required features
      [prefix] Use .bss16 as temporary stack space for calls to install_block
      [zbin] Use LZMA compression
      [zbin] Perform extra normalisation after completing decompression
      [prefix] Call decompressor in flat real mode when DEBUG=libprefix is enabled
      [zbin] Allow decompressor to generate debug output via BIOS console
      [zbin] Fix check for existence of most recent output byte
      [zbin] Remove now-unused unnrv2b.S decompressor
      [legal] Update GPLv2 licence text
      [legal] Include full licence text for all GPL2_OR_LATER files
      [mucurses] Add missing FILE_LICENCE declarations
      [legal] Add support for the Unmodified Binary Distribution Licence
      [legal] Add UBDL relicensing tool
      [legal] Relicense files under GPL2_OR_LATER_OR_UBDL
      [legal] Relicense files under GPL2_OR_LATER_OR_UBDL
      [legal] Relicense files under GPL2_OR_LATER_OR_UBDL
      [legal] Relicense files under GPL2_OR_LATER_OR_UBDL
      [libc] Rewrite unrelicensable portions of stddef.h
      [libc] Rewrite unrelicensable portions of ctype.h
      [libc] Rewrite setjmp() and longjmp()
      [libc] Rewrite byte-swapping code
      [elf] Rewrite ELF header
      [list] Relicense list.h
      [iscsi] Rewrite unrelicensable portions of iscsi.c
      [pci] Remove outdated and mostly-unused pci_ids.h file
      [pci] Rewrite unrelicensable portions of pci.h
      [settings] Use list_first_entry() when unregistering child settings
      [settings] Rewrite unrelicensable portions of settings.c
      [menu] Abstract out the generic concept of a jump scroller
      [settings] Use generic jump scrolling abstraction
      [malloc] Move valgrind headers out of arch/x86
      [malloc] Rewrite unrelicensable portions of malloc.c
      [build] Remove unused IMPORT_SYMBOL() and EXPORT_SYMBOL() macros
      [build] Remove unused __keepme macro
      [pxe] Remove obsolete references to pxeparent_dhcp
      [build] Remove obsolete and unused portions of config.c
      [build] Use REQUIRE_OBJECT() to drag in per-object configuration
      [build] Fix the REQUIRE_SYMBOL mechanism
      [i386] Move real_to_user() to realmode.h
      [linux] Rewrite headers included in all builds
      [retry] Rewrite unrelicensable portions of retry.c
      [retry] Colourise debug output
      [legal] Relicense files under GPL2_OR_LATER_OR_UBDL
      [xhci] Enable USB3 ports on Intel PCH8/PCH9 controllers
      [xhci] Undo PCH-specific quirk fixes when removing device
      [xen] Set the "feature-rx-notify" flag for netfront devices
      [http] Abstract out HTTP Digest hash algorithm operations
      [http] Support MD5-sess Digest authentication
      [dm96xx] Add driver for Davicom DM96xx USB Ethernet NICs
      [legal] Relicense Davicom DM96xx drivers
      [mii] Add generic mii_check_link() function
      [smsc75xx] Add driver for SMSC/Microchip LAN75xx USB Ethernet NICs
      [legal] Relicense files under GPL2_OR_LATER_OR_UBDL
      [tcp] Implement support for TCP Selective Acknowledgements (SACK)
      [smsc75xx] Move RX FIFO overflow message to DBGLVL_EXTRA
      [tcpip] Fix dubious calculation of min_port
      [libc] Add ffs(), ffsl(), and ffsll()
      [usb] Add the concept of a USB bus maximum transfer size
      [ncm] Respect maximum transfer size of the bus
      [usb] Add functions for manual device address assignment
      [xhci] Forcibly disable SMIs if BIOS fails to release ownership
      [autoboot] Match against parent devices when matching by bus type and location
      [usb] Add config/usb.h for USB configuration options
      [xhci] Do not release ownership back to BIOS when booting an OS
      [ehci] Add support for EHCI host controllers
      [netdevice] Add missing bus types to netdev_fetch_bustype()
      [usb] Fix USB timeouts to match specification
      [libprefix] Fix building on 64-bit FreeBSD 8.4
      [xhci] Ring doorbell as part of endpoint reset
      [usb] Reset endpoints without waiting for a new transfer to be enqueued
      [usb] Add clear_tt() hub method to clear transaction translator buffer
      [usb] Clear transaction translator buffers when applicable
      [ehci] Support USB1 devices attached via transaction translators
      [usb] Improve debug messages for failed control transactions
      [xhci] Support USB1 devices attached via transaction translators
      [libc] Fix typo in longjmp()
      [libc] Add x86_64 versions of setjmp() and longjmp()
      [test] Add setjmp()/longjmp() self-tests

Olaf Hering (1):
      [build] Sort objects in blib.a

Robin Smidsrød (1):
      [vbox] Enable some more features now that we have LZMA compression

Thomas Miletich (1):
      [intel] Add PCI ID for I218-LM

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
 roms/ipxe | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/roms/ipxe b/roms/ipxe
index 35c5379..dc795b9 160000
--- a/roms/ipxe
+++ b/roms/ipxe
@@ -1 +1 @@
-Subproject commit 35c5379760aa1fea5e38f7a78b090f92bb7813ee
+Subproject commit dc795b9fefebc5988ecbebd3ed034aa5dc661524
-- 
1.8.3.1

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [Qemu-devel] [PATCH 2/7] ipxe: rm local config in cleanup
  2015-04-10 14:17 [Qemu-devel] [PATCH 0/7] ipxe: update pxe boot roms for qemu Gerd Hoffmann
  2015-04-10 14:17 ` [Qemu-devel] [PATCH 1/7] ipxe: update from 35c53797 to dc795b9 Gerd Hoffmann
@ 2015-04-10 14:17 ` Gerd Hoffmann
  2015-04-10 14:17 ` [Qemu-devel] [PATCH 3/7] ipxe: add local patches Gerd Hoffmann
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 11+ messages in thread
From: Gerd Hoffmann @ 2015-04-10 14:17 UTC (permalink / raw)
  To: qemu-devel; +Cc: ipxe-devel, Gerd Hoffmann

ipxe build now generates empty local header files in case they are
not preset.  Let's remove them on cleanup to make sure we store a
fresh copy on the next build.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
 roms/Makefile | 1 +
 1 file changed, 1 insertion(+)

diff --git a/roms/Makefile b/roms/Makefile
index 610b534..461cb49 100644
--- a/roms/Makefile
+++ b/roms/Makefile
@@ -148,5 +148,6 @@ clean:
 	$(MAKE) -C sgabios clean
 	rm -f sgabios/.depend
 	$(MAKE) -C ipxe/src veryclean
+	(cd ipxe; rm -f src/config/local/*.h)
 	$(MAKE) -C SLOF clean
 	rm -rf u-boot/build.e500
-- 
1.8.3.1

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [Qemu-devel] [PATCH 3/7] ipxe: add local patches
  2015-04-10 14:17 [Qemu-devel] [PATCH 0/7] ipxe: update pxe boot roms for qemu Gerd Hoffmann
  2015-04-10 14:17 ` [Qemu-devel] [PATCH 1/7] ipxe: update from 35c53797 to dc795b9 Gerd Hoffmann
  2015-04-10 14:17 ` [Qemu-devel] [PATCH 2/7] ipxe: rm local config in cleanup Gerd Hoffmann
@ 2015-04-10 14:17 ` Gerd Hoffmann
  2015-04-11  3:10   ` Andreas Färber
  2015-04-10 14:17 ` [Qemu-devel] [PATCH 4/7] ipxe: disable load file protocol Gerd Hoffmann
                   ` (3 subsequent siblings)
  6 siblings, 1 reply; 11+ messages in thread
From: Gerd Hoffmann @ 2015-04-10 14:17 UTC (permalink / raw)
  To: qemu-devel; +Cc: ipxe-devel, Gerd Hoffmann

There are two ipxe patches needed to make efi pxe boots work.
They didn't made it upstream yet, and I don't want to wait any
longer with updating qemu.  So add them here, with some logic
to apply them before building ipxe.

/me still hopes I can revert that patch some day.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
 roms/Makefile                                      |  12 +-
 ...rove-compliance-with-the-EFI_SIMPLE_NETWO.patch | 160 +++++++++++++++++++++
 ...0002-efi-make-load-file-protocol-optional.patch | 102 +++++++++++++
 3 files changed, 271 insertions(+), 3 deletions(-)
 create mode 100644 roms/ipxe-patches/0001-efi_snp-improve-compliance-with-the-EFI_SIMPLE_NETWO.patch
 create mode 100644 roms/ipxe-patches/0002-efi-make-load-file-protocol-optional.patch

diff --git a/roms/Makefile b/roms/Makefile
index 461cb49..ab4532c 100644
--- a/roms/Makefile
+++ b/roms/Makefile
@@ -115,12 +115,12 @@ efi-rom-%: build-pxe-roms build-efi-roms
 		-ec ipxe/src/bin-x86_64-efi/$(VID)$(DID).efidrv \
 		-o ../pc-bios/efi-$*.rom
 
-build-pxe-roms: ipxe/src/config/local/general.h
+build-pxe-roms: ipxe/qemu-patches ipxe/src/config/local/general.h
 	$(MAKE) -C ipxe/src GITVERSION="" \
 		CROSS_COMPILE=$(x86_64_cross_prefix) \
 		$(patsubst %,bin/%.rom,$(pxerom_targets))
 
-build-efi-roms: build-pxe-roms ipxe/src/config/local/general.h
+build-efi-roms: ipxe/qemu-patches build-pxe-roms ipxe/src/config/local/general.h
 	$(MAKE) -C ipxe/src GITVERSION="" \
 		CROSS_COMPILE=$(x86_64_cross_prefix) \
 		$(patsubst %,bin-i386-efi/%.efidrv,$(pxerom_targets)) \
@@ -129,6 +129,12 @@ build-efi-roms: build-pxe-roms ipxe/src/config/local/general.h
 ipxe/src/config/local/%: config.ipxe.%
 	cp $< $@
 
+ipxe/qemu-patches:
+	for patch in ipxe-patches/*; do \
+		echo "# applying $$patch"; \
+		cat $$patch | (cd ipxe; patch -p1); \
+	done
+	touch $@
 
 slof:
 	$(MAKE) -C SLOF CROSS=$(powerpc64_cross_prefix) qemu
@@ -148,6 +154,6 @@ clean:
 	$(MAKE) -C sgabios clean
 	rm -f sgabios/.depend
 	$(MAKE) -C ipxe/src veryclean
-	(cd ipxe; rm -f src/config/local/*.h)
+	(cd ipxe; git reset --hard; rm -f qemu-patches src/config/local/*.h)
 	$(MAKE) -C SLOF clean
 	rm -rf u-boot/build.e500
diff --git a/roms/ipxe-patches/0001-efi_snp-improve-compliance-with-the-EFI_SIMPLE_NETWO.patch b/roms/ipxe-patches/0001-efi_snp-improve-compliance-with-the-EFI_SIMPLE_NETWO.patch
new file mode 100644
index 0000000..7f6febf
--- /dev/null
+++ b/roms/ipxe-patches/0001-efi_snp-improve-compliance-with-the-EFI_SIMPLE_NETWO.patch
@@ -0,0 +1,160 @@
+From 9e870d92035ec7ca946e702236bfe104e964f8c6 Mon Sep 17 00:00:00 2001
+From: Laszlo Ersek <lersek@redhat.com>
+Date: Thu, 22 Jan 2015 22:05:35 +0100
+Subject: [PATCH 1/2] efi_snp: improve compliance with the
+ EFI_SIMPLE_NETWORK_PROTOCOL spec
+
+The efi_snp interface dates back to 2008, when the GetStatus() interface
+must have been seriously under-specified. The UEFI Specification (2.4)
+specifies EFI_SIMPLE_NETWORK_PROTOCOL in detail however. In short:
+
+- the Transmit() interface is assumed to link (not copy) the SNP client's
+  buffer and return at once (without blocking), taking ownership of the
+  buffer temporarily;
+
+- the GetStatus() interface releases one of the completed (transmitted or
+  internally copied) buffers back to the caller. If there are several
+  completed buffers, it is unspecified which one is returned.
+
+The EFI build of the grub boot loader actually verifies the buffer address
+returned by GetStatus(), therefore in efi_snp we must at least fake the
+queueing of client buffers. This patch doesn't track client buffers
+together with the internally queued io_buffer structures, we consider a
+client buffer recyclable as soon as we make a deep copy of it and queue
+the copy internally.
+
+Signed-off-by: Laszlo Ersek <lersek@redhat.com>
+Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
+---
+ src/include/ipxe/efi/efi_snp.h |  6 +++++
+ src/interface/efi/efi_snp.c    | 54 ++++++++++++++++++++++++------------------
+ 2 files changed, 37 insertions(+), 23 deletions(-)
+
+diff --git a/src/include/ipxe/efi/efi_snp.h b/src/include/ipxe/efi/efi_snp.h
+index a18bced..863a81a 100644
+--- a/src/include/ipxe/efi/efi_snp.h
++++ b/src/include/ipxe/efi/efi_snp.h
+@@ -18,6 +18,8 @@
+ #include <ipxe/efi/Protocol/HiiDatabase.h>
+ #include <ipxe/efi/Protocol/LoadFile.h>
+ 
++#define MAX_RECYCLED_TXBUFS 64
++
+ /** An SNP device */
+ struct efi_snp_device {
+ 	/** List of SNP devices */
+@@ -44,6 +46,10 @@ struct efi_snp_device {
+ 	 * Used in order to generate TX completions.
+ 	 */
+ 	unsigned int tx_count_txbufs;
++	/** Holds the addresses of recycled SNP client buffers; a ring. */
++	void *tx_recycled_txbufs[MAX_RECYCLED_TXBUFS];
++	/** The index of the first buffer to return to the SNP client. */
++	unsigned tx_first_txbuf;
+ 	/** Outstanding RX packet count (via "interrupt status") */
+ 	unsigned int rx_count_interrupts;
+ 	/** Outstanding RX packet count (via WaitForPacket event) */
+diff --git a/src/interface/efi/efi_snp.c b/src/interface/efi/efi_snp.c
+index 67fba34..c21af33 100644
+--- a/src/interface/efi/efi_snp.c
++++ b/src/interface/efi/efi_snp.c
+@@ -68,6 +68,14 @@ static void efi_snp_set_state ( struct efi_snp_device *snpdev ) {
+ 		 */
+ 		mode->State = EfiSimpleNetworkInitialized;
+ 	}
++
++	if (mode->State != EfiSimpleNetworkInitialized) {
++		/* Zero the number of recycled buffers when moving to any other
++		 * state than Initialized. Transmit() and GetStatus() are only
++		 * valid in Initialized.
++		 */
++		snpdev->tx_count_txbufs = 0;
++	}
+ }
+ 
+ /**
+@@ -446,12 +454,12 @@ efi_snp_nvdata ( EFI_SIMPLE_NETWORK_PROTOCOL *snp, BOOLEAN read,
+  *
+  * @v snp		SNP interface
+  * @v interrupts	Interrupt status, or NULL
+- * @v txbufs		Recycled transmit buffer address, or NULL
++ * @v txbuf		Recycled transmit buffer address, or NULL
+  * @ret efirc		EFI status code
+  */
+ static EFI_STATUS EFIAPI
+ efi_snp_get_status ( EFI_SIMPLE_NETWORK_PROTOCOL *snp,
+-		     UINT32 *interrupts, VOID **txbufs ) {
++		     UINT32 *interrupts, VOID **txbuf ) {
+ 	struct efi_snp_device *snpdev =
+ 		container_of ( snp, struct efi_snp_device, snp );
+ 
+@@ -485,30 +493,22 @@ efi_snp_get_status ( EFI_SIMPLE_NETWORK_PROTOCOL *snp,
+ 		DBGC2 ( snpdev, " INTS:%02x", *interrupts );
+ 	}
+ 
+-	/* TX completions.  It would be possible to design a more
+-	 * idiotic scheme for this, but it would be a challenge.
+-	 * According to the UEFI header file, txbufs will be filled in
+-	 * with a list of "recycled transmit buffers" (i.e. completed
+-	 * TX buffers).  Observant readers may care to note that
+-	 * *txbufs is a void pointer.  Precisely how a list of
+-	 * completed transmit buffers is meant to be represented as an
+-	 * array of voids is left as an exercise for the reader.
+-	 *
+-	 * The only users of this interface (MnpDxe/MnpIo.c and
+-	 * PxeBcDxe/Bc.c within the EFI dev kit) both just poll until
+-	 * seeing a non-NULL result return in txbufs.  This is valid
+-	 * provided that they do not ever attempt to transmit more
+-	 * than one packet concurrently (and that TX never times out).
++	/* In efi_snp_transmit() we enqueue packets by copying them (not by
++	 * linking them), hence we can recycle them immediately to the SNP
++	 * client.
+ 	 */
+-	if ( txbufs ) {
+-		if ( snpdev->tx_count_txbufs &&
+-		     list_empty ( &snpdev->netdev->tx_queue ) ) {
+-			*txbufs = "Which idiot designed this API?";
++	if ( txbuf ) {
++		if ( snpdev->tx_count_txbufs ) {
++			unsigned first;
++
++			first = snpdev->tx_first_txbuf++;
++			snpdev->tx_first_txbuf %= MAX_RECYCLED_TXBUFS;
++			*txbuf = snpdev->tx_recycled_txbufs[first];
+ 			snpdev->tx_count_txbufs--;
+ 		} else {
+-			*txbufs = NULL;
++			*txbuf = NULL;
+ 		}
+-		DBGC2 ( snpdev, " TX:%s", ( *txbufs ? "some" : "none" ) );
++		DBGC2 ( snpdev, " TX:%p", *txbuf );
+ 	}
+ 
+ 	DBGC2 ( snpdev, "\n" );
+@@ -560,6 +560,12 @@ efi_snp_transmit ( EFI_SIMPLE_NETWORK_PROTOCOL *snp,
+ 	if ( efi_snp_claimed )
+ 		return EFI_NOT_READY;
+ 
++	assert ( snpdev->tx_count_txbufs <= MAX_RECYCLED_TXBUFS );
++	if ( snpdev->tx_count_txbufs == MAX_RECYCLED_TXBUFS ) {
++		/* No room to recycle another buffer. */
++		return EFI_NOT_READY;
++	}
++
+ 	/* Sanity checks */
+ 	if ( ll_header_len ) {
+ 		if ( ll_header_len != ll_protocol->ll_header_len ) {
+@@ -626,7 +632,9 @@ efi_snp_transmit ( EFI_SIMPLE_NETWORK_PROTOCOL *snp,
+ 
+ 	/* Record transmission as outstanding */
+ 	snpdev->tx_count_interrupts++;
+-	snpdev->tx_count_txbufs++;
++	snpdev->tx_recycled_txbufs[(snpdev->tx_first_txbuf +
++				    snpdev->tx_count_txbufs++
++				   ) % MAX_RECYCLED_TXBUFS] = data;
+ 
+ 	return 0;
+ 
+-- 
+1.8.3.1
+
diff --git a/roms/ipxe-patches/0002-efi-make-load-file-protocol-optional.patch b/roms/ipxe-patches/0002-efi-make-load-file-protocol-optional.patch
new file mode 100644
index 0000000..f921a3b
--- /dev/null
+++ b/roms/ipxe-patches/0002-efi-make-load-file-protocol-optional.patch
@@ -0,0 +1,102 @@
+From 2daea2b8dd2c504a4f76a6b0b67bd3c4a2957fc7 Mon Sep 17 00:00:00 2001
+From: Gerd Hoffmann <kraxel@redhat.com>
+Date: Tue, 10 Feb 2015 14:28:09 +0100
+Subject: [PATCH 2/2] [efi] make load file protocol optional
+
+The load file implementation added by commit
+c7c3d839fc9120aee28de9aabe452dc85ad91502 doesn't support loading
+arbitrary files from the tftp server, so efi applications trying
+to do exactly that fail to boot:
+
+  iPXE 1.0.0+ (17ace) -- Open Source Network Boot Firmware -- http://ipxe.org
+  Features: HTTP DNS TFTP EFI Menu
+
+  net0: 52:54:00:47:d3:07 using virtio-net on PCI00:09.0 (open)
+    [Link:up, TX:0 TXE:0 RX:13 RXE:2]
+    [RXE: 2 x "Operation not supported (http://ipxe.org/3c086083)"]
+  Configuring (net0 52:54:00:47:d3:07)...... ok
+  net0: 192.168.132.93/255.255.255.0 gw 192.168.132.1
+  Next server: 192.168.132.1
+  Filename: shim.efi
+  tftp://192.168.132.1/shim.efi... ok
+  Failed to open grubx64.efi - Not Found
+  Failed to load image grubx64.efi: Not Found
+  Failed to open MokManager.efi - Not Found
+  Failed to load image MokManager.efi: Not Found
+  Could not boot image: Error 0x7f04828e (http://ipxe.org/7f04828e)
+
+  Boot Failed. EFI Network
+
+This is not acceptable for qemu.  efi pxe configurations which work
+just fine with real hardware must work with qemu virtual machines too.
+
+This patch adds a config option for the load file protocol
+implementation, to allow it being disabled, so we can turn it off
+for the pxe roms shipped with qemu.
+
+The default for the new option maintains current behavior, i.e.
+load file is enabled unless you override it in config/local/general.h
+
+Suggested-by: Laszlo Ersek <lersek@redhat.com>
+
+See discussion here:
+  http://lists.ipxe.org/pipermail/ipxe-devel/2015-February/003979.html
+
+Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
+---
+ src/config/general.h        | 6 ++++++
+ src/interface/efi/efi_snp.c | 5 +++++
+ 2 files changed, 11 insertions(+)
+
+diff --git a/src/config/general.h b/src/config/general.h
+index 65c1f85..8c91601 100644
+--- a/src/config/general.h
++++ b/src/config/general.h
+@@ -142,6 +142,12 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
+ #undef	NONPNP_HOOK_INT19	/* Hook INT19 on non-PnP BIOSes */
+ 
+ /*
++ * EFI specific options
++ *
++ */
++#define EFI_PROTO_LOAD_FILE	/* register LOAD_FILE protocol */
++
++/*
+  * Error message tables to include
+  *
+  */
+diff --git a/src/interface/efi/efi_snp.c b/src/interface/efi/efi_snp.c
+index c21af33..85f4fa0 100644
+--- a/src/interface/efi/efi_snp.c
++++ b/src/interface/efi/efi_snp.c
+@@ -34,6 +34,7 @@ FILE_LICENCE ( GPL2_OR_LATER );
+ #include <ipxe/efi/efi_utils.h>
+ #include <ipxe/efi/efi_snp.h>
+ #include <usr/autoboot.h>
++#include <config/general.h>
+ 
+ /** List of SNP devices */
+ static LIST_HEAD ( efi_snp_devices );
+@@ -1033,7 +1034,9 @@ static int efi_snp_probe ( struct net_device *netdev ) {
+ 			&efi_nii_protocol_guid, &snpdev->nii,
+ 			&efi_nii31_protocol_guid, &snpdev->nii,
+ 			&efi_component_name2_protocol_guid, &snpdev->name2,
++#ifdef EFI_PROTO_LOAD_FILE
+ 			&efi_load_file_protocol_guid, &snpdev->load_file,
++#endif
+ 			NULL ) ) != 0 ) {
+ 		rc = -EEFI ( efirc );
+ 		DBGC ( snpdev, "SNPDEV %p could not install protocols: "
+@@ -1082,7 +1085,9 @@ static int efi_snp_probe ( struct net_device *netdev ) {
+ 			&efi_nii_protocol_guid, &snpdev->nii,
+ 			&efi_nii31_protocol_guid, &snpdev->nii,
+ 			&efi_component_name2_protocol_guid, &snpdev->name2,
++#ifdef EFI_PROTO_LOAD_FILE
+ 			&efi_load_file_protocol_guid, &snpdev->load_file,
++#endif
+ 			NULL );
+  err_install_protocol_interface:
+ 	free ( snpdev->path );
+-- 
+1.8.3.1
+
-- 
1.8.3.1

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [Qemu-devel] [PATCH 4/7] ipxe: disable load file protocol
  2015-04-10 14:17 [Qemu-devel] [PATCH 0/7] ipxe: update pxe boot roms for qemu Gerd Hoffmann
                   ` (2 preceding siblings ...)
  2015-04-10 14:17 ` [Qemu-devel] [PATCH 3/7] ipxe: add local patches Gerd Hoffmann
@ 2015-04-10 14:17 ` Gerd Hoffmann
  2015-04-10 14:17 ` [Qemu-devel] [PATCH 5/7] ipxe: add qemu branding Gerd Hoffmann
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 11+ messages in thread
From: Gerd Hoffmann @ 2015-04-10 14:17 UTC (permalink / raw)
  To: qemu-devel; +Cc: ipxe-devel, Gerd Hoffmann

Activate the opt-out added by one ipxe patch.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
 roms/config.ipxe.general.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/roms/config.ipxe.general.h b/roms/config.ipxe.general.h
index 619ee4c..2df042a 100644
--- a/roms/config.ipxe.general.h
+++ b/roms/config.ipxe.general.h
@@ -2,3 +2,4 @@
 #define BANNER_TIMEOUT 30
 #undef ROM_BANNER_TIMEOUT
 #define ROM_BANNER_TIMEOUT 0
+#undef EFI_PROTO_LOAD_FILE
-- 
1.8.3.1

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [Qemu-devel] [PATCH 5/7] ipxe: add qemu branding
  2015-04-10 14:17 [Qemu-devel] [PATCH 0/7] ipxe: update pxe boot roms for qemu Gerd Hoffmann
                   ` (3 preceding siblings ...)
  2015-04-10 14:17 ` [Qemu-devel] [PATCH 4/7] ipxe: disable load file protocol Gerd Hoffmann
@ 2015-04-10 14:17 ` Gerd Hoffmann
  2015-04-10 14:17 ` [Qemu-devel] [PATCH 6/7] ipxe: don't override GITVERSION Gerd Hoffmann
  2015-04-10 14:17 ` [Qemu-devel] [PATCH 7/7] ipxe: update binaries Gerd Hoffmann
  6 siblings, 0 replies; 11+ messages in thread
From: Gerd Hoffmann @ 2015-04-10 14:17 UTC (permalink / raw)
  To: qemu-devel; +Cc: ipxe-devel, Gerd Hoffmann

Apply qemu-project.org branding, so the official builds can easily be
identified in the banner.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
 roms/Makefile               | 4 ++--
 roms/config.ipxe.branding.h | 2 ++
 2 files changed, 4 insertions(+), 2 deletions(-)
 create mode 100644 roms/config.ipxe.branding.h

diff --git a/roms/Makefile b/roms/Makefile
index ab4532c..4a52d6b 100644
--- a/roms/Makefile
+++ b/roms/Makefile
@@ -115,12 +115,12 @@ efi-rom-%: build-pxe-roms build-efi-roms
 		-ec ipxe/src/bin-x86_64-efi/$(VID)$(DID).efidrv \
 		-o ../pc-bios/efi-$*.rom
 
-build-pxe-roms: ipxe/qemu-patches ipxe/src/config/local/general.h
+build-pxe-roms: ipxe/qemu-patches ipxe/src/config/local/general.h ipxe/src/config/local/branding.h
 	$(MAKE) -C ipxe/src GITVERSION="" \
 		CROSS_COMPILE=$(x86_64_cross_prefix) \
 		$(patsubst %,bin/%.rom,$(pxerom_targets))
 
-build-efi-roms: ipxe/qemu-patches build-pxe-roms ipxe/src/config/local/general.h
+build-efi-roms: ipxe/qemu-patches build-pxe-roms ipxe/src/config/local/general.h ipxe/src/config/local/branding.h
 	$(MAKE) -C ipxe/src GITVERSION="" \
 		CROSS_COMPILE=$(x86_64_cross_prefix) \
 		$(patsubst %,bin-i386-efi/%.efidrv,$(pxerom_targets)) \
diff --git a/roms/config.ipxe.branding.h b/roms/config.ipxe.branding.h
new file mode 100644
index 0000000..324995e
--- /dev/null
+++ b/roms/config.ipxe.branding.h
@@ -0,0 +1,2 @@
+#undef PRODUCT_NAME
+#define PRODUCT_NAME "iPXE for qemu-project.org"
-- 
1.8.3.1

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [Qemu-devel] [PATCH 6/7] ipxe: don't override GITVERSION
  2015-04-10 14:17 [Qemu-devel] [PATCH 0/7] ipxe: update pxe boot roms for qemu Gerd Hoffmann
                   ` (4 preceding siblings ...)
  2015-04-10 14:17 ` [Qemu-devel] [PATCH 5/7] ipxe: add qemu branding Gerd Hoffmann
@ 2015-04-10 14:17 ` Gerd Hoffmann
  2015-04-10 14:17 ` [Qemu-devel] [PATCH 7/7] ipxe: update binaries Gerd Hoffmann
  6 siblings, 0 replies; 11+ messages in thread
From: Gerd Hoffmann @ 2015-04-10 14:17 UTC (permalink / raw)
  To: qemu-devel; +Cc: ipxe-devel, Gerd Hoffmann

We had build problems due to the git version checking in the ipxe build
system in the past.  Don't remember the details, but the problem seems
to be gone now, so lets remove the workaround.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
 roms/Makefile | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/roms/Makefile b/roms/Makefile
index 4a52d6b..d99c977 100644
--- a/roms/Makefile
+++ b/roms/Makefile
@@ -116,12 +116,12 @@ efi-rom-%: build-pxe-roms build-efi-roms
 		-o ../pc-bios/efi-$*.rom
 
 build-pxe-roms: ipxe/qemu-patches ipxe/src/config/local/general.h ipxe/src/config/local/branding.h
-	$(MAKE) -C ipxe/src GITVERSION="" \
+	$(MAKE) -C ipxe/src \
 		CROSS_COMPILE=$(x86_64_cross_prefix) \
 		$(patsubst %,bin/%.rom,$(pxerom_targets))
 
 build-efi-roms: ipxe/qemu-patches build-pxe-roms ipxe/src/config/local/general.h ipxe/src/config/local/branding.h
-	$(MAKE) -C ipxe/src GITVERSION="" \
+	$(MAKE) -C ipxe/src \
 		CROSS_COMPILE=$(x86_64_cross_prefix) \
 		$(patsubst %,bin-i386-efi/%.efidrv,$(pxerom_targets)) \
 		$(patsubst %,bin-x86_64-efi/%.efidrv,$(pxerom_targets))
-- 
1.8.3.1

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [Qemu-devel] [PATCH 7/7] ipxe: update binaries
  2015-04-10 14:17 [Qemu-devel] [PATCH 0/7] ipxe: update pxe boot roms for qemu Gerd Hoffmann
                   ` (5 preceding siblings ...)
  2015-04-10 14:17 ` [Qemu-devel] [PATCH 6/7] ipxe: don't override GITVERSION Gerd Hoffmann
@ 2015-04-10 14:17 ` Gerd Hoffmann
  6 siblings, 0 replies; 11+ messages in thread
From: Gerd Hoffmann @ 2015-04-10 14:17 UTC (permalink / raw)
  To: qemu-devel; +Cc: ipxe-devel, Gerd Hoffmann

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
 pc-bios/efi-e1000.rom    | Bin 197120 -> 190464 bytes
 pc-bios/efi-eepro100.rom | Bin 197632 -> 191488 bytes
 pc-bios/efi-ne2k_pci.rom | Bin 195584 -> 189952 bytes
 pc-bios/efi-pcnet.rom    | Bin 195584 -> 189952 bytes
 pc-bios/efi-rtl8139.rom  | Bin 200192 -> 193024 bytes
 pc-bios/efi-virtio.rom   | Bin 194048 -> 187904 bytes
 6 files changed, 0 insertions(+), 0 deletions(-)

diff --git a/pc-bios/efi-e1000.rom b/pc-bios/efi-e1000.rom
index 4e29d9d1adba205aaa8759136c0697035aba7870..5d3fbd6fff70c71fdda7fdbb66c045fe056f47ab 100644
GIT binary patch
[ ... snipped to not spam the mailing list ... ]

diff --git a/pc-bios/efi-eepro100.rom b/pc-bios/efi-eepro100.rom
index 2a92d6f32ff303b330fc5ee0cea80260a76db45d..f8c7a3658a9970c9eb8815c053c1eb1038046280 100644
GIT binary patch
[ ... snipped to not spam the mailing list ... ]

diff --git a/pc-bios/efi-ne2k_pci.rom b/pc-bios/efi-ne2k_pci.rom
index 6366017009892208117b3bfce95d41b21b9c4636..a74782e8eb790381df0c0d2c53525c539d1168cd 100644
GIT binary patch
[ ... snipped to not spam the mailing list ... ]

diff --git a/pc-bios/efi-pcnet.rom b/pc-bios/efi-pcnet.rom
index a61f586eeb8beec38d06e35edf1b6d9154fa8849..4721038b240b97eaf8c429aaf3bfef0fc92b4c3a 100644
GIT binary patch
[ ... snipped to not spam the mailing list ... ]

diff --git a/pc-bios/efi-rtl8139.rom b/pc-bios/efi-rtl8139.rom
index c9c77ea7f011be51327ad86d653ea62b64878799..93cb3ad57732c2467e091a76c67e4fdcfe8bfaf1 100644
GIT binary patch
[ ... snipped to not spam the mailing list ... ]

diff --git a/pc-bios/efi-virtio.rom b/pc-bios/efi-virtio.rom
index eec2790990b27fb51d6bfd3e7481dc63ee3b97be..9e2f87c6fbeaa3b1a060488cb1beb535effe787c 100644
GIT binary patch
[ ... snipped to not spam the mailing list ... ]

-- 
1.8.3.1

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Qemu-devel] [PATCH 3/7] ipxe: add local patches
  2015-04-10 14:17 ` [Qemu-devel] [PATCH 3/7] ipxe: add local patches Gerd Hoffmann
@ 2015-04-11  3:10   ` Andreas Färber
  2015-04-14  7:36     ` Gerd Hoffmann
  0 siblings, 1 reply; 11+ messages in thread
From: Andreas Färber @ 2015-04-11  3:10 UTC (permalink / raw)
  To: Gerd Hoffmann, qemu-devel; +Cc: ipxe-devel

Am 10.04.2015 um 16:17 schrieb Gerd Hoffmann:
> There are two ipxe patches needed to make efi pxe boots work.
> They didn't made it upstream yet, and I don't want to wait any
> longer with updating qemu.  So add them here, with some logic
> to apply them before building ipxe.
> 
> /me still hopes I can revert that patch some day.
> 
> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
> ---
>  roms/Makefile                                      |  12 +-
>  ...rove-compliance-with-the-EFI_SIMPLE_NETWO.patch | 160 +++++++++++++++++++++
>  ...0002-efi-make-load-file-protocol-optional.patch | 102 +++++++++++++
>  3 files changed, 271 insertions(+), 3 deletions(-)
>  create mode 100644 roms/ipxe-patches/0001-efi_snp-improve-compliance-with-the-EFI_SIMPLE_NETWO.patch
>  create mode 100644 roms/ipxe-patches/0002-efi-make-load-file-protocol-optional.patch
> 
> diff --git a/roms/Makefile b/roms/Makefile
> index 461cb49..ab4532c 100644
> --- a/roms/Makefile
> +++ b/roms/Makefile
> @@ -115,12 +115,12 @@ efi-rom-%: build-pxe-roms build-efi-roms
>  		-ec ipxe/src/bin-x86_64-efi/$(VID)$(DID).efidrv \
>  		-o ../pc-bios/efi-$*.rom
>  
> -build-pxe-roms: ipxe/src/config/local/general.h
> +build-pxe-roms: ipxe/qemu-patches ipxe/src/config/local/general.h
>  	$(MAKE) -C ipxe/src GITVERSION="" \
>  		CROSS_COMPILE=$(x86_64_cross_prefix) \
>  		$(patsubst %,bin/%.rom,$(pxerom_targets))
>  
> -build-efi-roms: build-pxe-roms ipxe/src/config/local/general.h
> +build-efi-roms: ipxe/qemu-patches build-pxe-roms ipxe/src/config/local/general.h
>  	$(MAKE) -C ipxe/src GITVERSION="" \
>  		CROSS_COMPILE=$(x86_64_cross_prefix) \
>  		$(patsubst %,bin-i386-efi/%.efidrv,$(pxerom_targets)) \
> @@ -129,6 +129,12 @@ build-efi-roms: build-pxe-roms ipxe/src/config/local/general.h
>  ipxe/src/config/local/%: config.ipxe.%
>  	cp $< $@
>  
> +ipxe/qemu-patches:

Looks like this is only ever removed by clean? Should depend on the
patch files, in case they change with an update.

But why are you adding patch files in the first place? Can't we just
push the commits to a branch on git.qemu-project.org and update the
submodule config accordingly?

Regards,
Andreas

> +	for patch in ipxe-patches/*; do \
> +		echo "# applying $$patch"; \
> +		cat $$patch | (cd ipxe; patch -p1); \
> +	done
> +	touch $@
>  
>  slof:
>  	$(MAKE) -C SLOF CROSS=$(powerpc64_cross_prefix) qemu
> @@ -148,6 +154,6 @@ clean:
>  	$(MAKE) -C sgabios clean
>  	rm -f sgabios/.depend
>  	$(MAKE) -C ipxe/src veryclean
> -	(cd ipxe; rm -f src/config/local/*.h)
> +	(cd ipxe; git reset --hard; rm -f qemu-patches src/config/local/*.h)
>  	$(MAKE) -C SLOF clean
>  	rm -rf u-boot/build.e500
[snip]

-- 
SUSE Linux GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Felix Imendörffer, Jane Smithard, Jennifer Guild, Dilip Upmanyu,
Graham Norton; HRB 21284 (AG Nürnberg)

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Qemu-devel] [PATCH 3/7] ipxe: add local patches
  2015-04-11  3:10   ` Andreas Färber
@ 2015-04-14  7:36     ` Gerd Hoffmann
  2015-04-14 12:49       ` Andreas Färber
  0 siblings, 1 reply; 11+ messages in thread
From: Gerd Hoffmann @ 2015-04-14  7:36 UTC (permalink / raw)
  To: Andreas Färber; +Cc: ipxe-devel, qemu-devel

  Hi,

> >  
> > +ipxe/qemu-patches:
> 
> Looks like this is only ever removed by clean? Should depend on the
> patch files, in case they change with an update.

Indeed.

> But why are you adding patch files in the first place? Can't we just
> push the commits to a branch on git.qemu-project.org and update the
> submodule config accordingly?

I hope this is just temporary, so I didn't want go through the
administrative to setup a qemu ipxe branch @ git.qemu-project.org.

Just resent the patches to the ipxe list.

Assuming that doesn't work out:  How we are going to maintain ipxe.git @
qemu-project.org?  Should I just send patches to the list?  Can I get
commit access for ipxe.git?  The later would certainly simplify things,
especially when it comes to rebasing the qemu patches to pickup upstream
fixes ...

cheers,
  Gerd

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Qemu-devel] [PATCH 3/7] ipxe: add local patches
  2015-04-14  7:36     ` Gerd Hoffmann
@ 2015-04-14 12:49       ` Andreas Färber
  0 siblings, 0 replies; 11+ messages in thread
From: Andreas Färber @ 2015-04-14 12:49 UTC (permalink / raw)
  To: Gerd Hoffmann; +Cc: qemu-devel, Stefan Hajnoczi

Hi Gerd,

+ Stefan, - ipxe-devel

Am 14.04.2015 um 09:36 schrieb Gerd Hoffmann:
>> But why are you adding patch files in the first place? Can't we just
>> push the commits to a branch on git.qemu-project.org and update the
>> submodule config accordingly?
> 
> I hope this is just temporary, so I didn't want go through the
> administrative to setup a qemu ipxe branch @ git.qemu-project.org.
> 
> Just resent the patches to the ipxe list.

Can't judge how quickly things move there, obviously...

> Assuming that doesn't work out:  How we are going to maintain ipxe.git @
> qemu-project.org?  Should I just send patches to the list?  Can I get
> commit access for ipxe.git?  The later would certainly simplify things,
> especially when it comes to rebasing the qemu patches to pickup upstream
> fixes ...

Either push access might be possible, or maybe our mirroring could be
changed/extended to fetch from your git server?

Cheers,
Andreas

-- 
SUSE Linux GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Felix Imendörffer, Jane Smithard, Jennifer Guild, Dilip Upmanyu,
Graham Norton; HRB 21284 (AG Nürnberg)

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2015-04-14 12:49 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-04-10 14:17 [Qemu-devel] [PATCH 0/7] ipxe: update pxe boot roms for qemu Gerd Hoffmann
2015-04-10 14:17 ` [Qemu-devel] [PATCH 1/7] ipxe: update from 35c53797 to dc795b9 Gerd Hoffmann
2015-04-10 14:17 ` [Qemu-devel] [PATCH 2/7] ipxe: rm local config in cleanup Gerd Hoffmann
2015-04-10 14:17 ` [Qemu-devel] [PATCH 3/7] ipxe: add local patches Gerd Hoffmann
2015-04-11  3:10   ` Andreas Färber
2015-04-14  7:36     ` Gerd Hoffmann
2015-04-14 12:49       ` Andreas Färber
2015-04-10 14:17 ` [Qemu-devel] [PATCH 4/7] ipxe: disable load file protocol Gerd Hoffmann
2015-04-10 14:17 ` [Qemu-devel] [PATCH 5/7] ipxe: add qemu branding Gerd Hoffmann
2015-04-10 14:17 ` [Qemu-devel] [PATCH 6/7] ipxe: don't override GITVERSION Gerd Hoffmann
2015-04-10 14:17 ` [Qemu-devel] [PATCH 7/7] ipxe: update binaries Gerd Hoffmann

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.