]> git.proxmox.com Git - mirror_qemu.git/commitdiff
Merge remote-tracking branch 'awilliam/ipxe' into staging
authorAnthony Liguori <aliguori@us.ibm.com>
Mon, 25 Apr 2011 15:26:10 +0000 (10:26 -0500)
committerAnthony Liguori <aliguori@us.ibm.com>
Mon, 25 Apr 2011 15:26:10 +0000 (10:26 -0500)
24 files changed:
.gitmodules
Makefile
configure
hw/e1000.c
hw/eepro100.c
hw/ne2000.c
hw/pcnet-pci.c
hw/rtl8139.c
hw/virtio-pci.c
pc-bios/README
pc-bios/gpxe-eepro100-80861209.rom [deleted file]
pc-bios/pxe-e1000.bin [deleted file]
pc-bios/pxe-e1000.rom [new file with mode: 0644]
pc-bios/pxe-eepro100.rom [new file with mode: 0644]
pc-bios/pxe-ne2k_pci.bin [deleted file]
pc-bios/pxe-ne2k_pci.rom [new file with mode: 0644]
pc-bios/pxe-pcnet.bin [deleted file]
pc-bios/pxe-pcnet.rom [new file with mode: 0644]
pc-bios/pxe-rtl8139.bin [deleted file]
pc-bios/pxe-rtl8139.rom [new file with mode: 0644]
pc-bios/pxe-virtio.bin [deleted file]
pc-bios/pxe-virtio.rom [new file with mode: 0644]
roms/ipxe [new submodule]
scripts/refresh-pxe-roms.sh [new file with mode: 0755]

index 44fdd1a02d007c883970b1c73ff8dd758cfaeeb9..788447189e87cdd871e4f1f273803862fd629d21 100644 (file)
@@ -7,3 +7,6 @@
 [submodule "roms/SLOF"]
        path = roms/SLOF
        url = git://git.qemu.org/SLOF.git
+[submodule "roms/ipxe"]
+       path = roms/ipxe
+       url = git://git.qemu.org/ipxe.git
index dc39efdeb475e9328f8ac18b39e19897c8e89ba0..67c02687efc083d768465145ec6075cdc09306fe 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -180,10 +180,8 @@ ifdef INSTALL_BLOBS
 BLOBS=bios.bin vgabios.bin vgabios-cirrus.bin \
 vgabios-stdvga.bin vgabios-vmware.bin vgabios-qxl.bin \
 ppc_rom.bin openbios-sparc32 openbios-sparc64 openbios-ppc \
-gpxe-eepro100-80861209.rom \
-pxe-e1000.bin \
-pxe-ne2k_pci.bin pxe-pcnet.bin \
-pxe-rtl8139.bin pxe-virtio.bin \
+pxe-e1000.rom pxe-eepro100.rom pxe-ne2k_pci.rom \
+pxe-pcnet.rom pxe-rtl8139.rom pxe-virtio.rom \
 bamboo.dtb petalogix-s3adsp1800.dtb petalogix-ml605.dtb \
 multiboot.bin linuxboot.bin \
 s390-zipl.rom \
@@ -329,10 +327,12 @@ tarbin:
        $(datadir)/openbios-sparc32 \
        $(datadir)/openbios-sparc64 \
        $(datadir)/openbios-ppc \
-       $(datadir)/pxe-ne2k_pci.bin \
-       $(datadir)/pxe-rtl8139.bin \
-       $(datadir)/pxe-pcnet.bin \
-       $(datadir)/pxe-e1000.bin \
+       $(datadir)/pxe-e1000.rom \
+       $(datadir)/pxe-eepro100.rom \
+       $(datadir)/pxe-ne2k_pci.rom \
+       $(datadir)/pxe-pcnet.rom \
+       $(datadir)/pxe-rtl8139.rom \
+       $(datadir)/pxe-virtio.rom \
        $(docdir)/qemu-doc.html \
        $(docdir)/qemu-tech.html \
        $(mandir)/man1/qemu.1 \
index f2eab308b233d65ab6a130883ae4c943e764df6a..de44bac1d6a00ada3870e89fb52172d8bf8928c0 100755 (executable)
--- a/configure
+++ b/configure
@@ -3447,7 +3447,7 @@ FILES="Makefile tests/Makefile"
 FILES="$FILES tests/cris/Makefile tests/cris/.gdbinit"
 FILES="$FILES pc-bios/optionrom/Makefile pc-bios/keymaps"
 FILES="$FILES roms/seabios/Makefile roms/vgabios/Makefile"
-for bios_file in $source_path/pc-bios/*.bin $source_path/pc-bios/*.dtb $source_path/pc-bios/openbios-*; do
+for bios_file in $source_path/pc-bios/*.bin $source_path/pc-bios/*.rom $source_path/pc-bios/*.dtb $source_path/pc-bios/openbios-*; do
     FILES="$FILES pc-bios/`basename $bios_file`"
 done
 mkdir -p $DIRS
index fe3e812610eeaeb73760a631a22be60c4ff06580..f160bfc2ab945030df69feacc8bef5c6f4e50c96 100644 (file)
@@ -1220,7 +1220,7 @@ static PCIDeviceInfo e1000_info = {
     .qdev.vmsd  = &vmstate_e1000,
     .init       = pci_e1000_init,
     .exit       = pci_e1000_uninit,
-    .romfile    = "pxe-e1000.bin",
+    .romfile    = "pxe-e1000.rom",
     .qdev.props = (Property[]) {
         DEFINE_NIC_PROPERTIES(E1000State, conf),
         DEFINE_PROP_END_OF_LIST(),
index edf48f61d1000f4cb632358dd24b1605a7d32f4c..369ad7f84062e7d113a70321f2f7ce4a061aeb14 100644 (file)
@@ -2054,7 +2054,7 @@ static void eepro100_register_devices(void)
         PCIDeviceInfo *pci_dev = &e100_devices[i].pci;
         /* We use the same rom file for all device ids.
            QEMU fixes the device id during rom load. */
-        pci_dev->romfile = "gpxe-eepro100-80861209.rom";
+        pci_dev->romfile = "pxe-eepro100.rom";
         pci_dev->init = e100_nic_init;
         pci_dev->exit = pci_nic_uninit;
         pci_dev->qdev.props = e100_properties;
index 5966359852f101f1aa32233e193c846b552a1775..b668ad1070cd418cf3200ae5a9e125ba6eb2ed59 100644 (file)
@@ -742,7 +742,7 @@ static int pci_ne2000_init(PCIDevice *pci_dev)
     if (!pci_dev->qdev.hotplugged) {
         static int loaded = 0;
         if (!loaded) {
-            rom_add_option("pxe-ne2k_pci.bin", -1);
+            rom_add_option("pxe-ne2k_pci.rom", -1);
             loaded = 1;
         }
     }
index 339a4019679778e1bd493ed89d3d3bb09b5c2c84..40ee29d38b1c9d8292f81743807e0c3d82384e4a 100644 (file)
@@ -310,7 +310,7 @@ static int pci_pcnet_init(PCIDevice *pci_dev)
     if (!pci_dev->qdev.hotplugged) {
         static int loaded = 0;
         if (!loaded) {
-            rom_add_option("pxe-pcnet.bin", -1);
+            rom_add_option("pxe-pcnet.rom", -1);
             loaded = 1;
         }
     }
index d5459336e505c6eedeff4ed50f6f57144e81721a..8790a00afb46c1d0dddbd5941c1ff5abc50e604d 100644 (file)
@@ -3484,7 +3484,7 @@ static PCIDeviceInfo rtl8139_info = {
     .qdev.vmsd  = &vmstate_rtl8139,
     .init       = pci_rtl8139_init,
     .exit       = pci_rtl8139_uninit,
-    .romfile    = "pxe-rtl8139.bin",
+    .romfile    = "pxe-rtl8139.rom",
     .qdev.props = (Property[]) {
         DEFINE_NIC_PROPERTIES(RTL8139State, conf),
         DEFINE_PROP_END_OF_LIST(),
index 555f23f1da5dd5ab81de2d825f1b5a54309044c3..c19629d5073e43d15f7fc722738fee8dd00521f9 100644 (file)
@@ -877,7 +877,7 @@ static PCIDeviceInfo virtio_info[] = {
         .qdev.size  = sizeof(VirtIOPCIProxy),
         .init       = virtio_net_init_pci,
         .exit       = virtio_net_exit_pci,
-        .romfile    = "pxe-virtio.bin",
+        .romfile    = "pxe-virtio.rom",
         .qdev.props = (Property[]) {
             DEFINE_PROP_BIT("ioeventfd", VirtIOPCIProxy, flags,
                             VIRTIO_PCI_FLAG_USE_IOEVENTFD_BIT, false),
index 646a31a31324a4d1cf0a4bf7d45207c20cf008fc..fe221a940ff93d52468c28fd4bee04377dc17487 100644 (file)
   https://github.com/dgibson/SLOF, and the image currently in qemu is
   built from git tag qemu-slof-20110323.
 
-- The PXE roms come from Rom-o-Matic gPXE 0.9.9 with BANNER_TIMEOUT=0
-
-  e1000 8086:100E
-  eepro100 8086:1209 (also used for 8086:1229 and 8086:2449)
-  ns8390 1050:0940
-  pcnet32 1022:2000
-  rtl8139 10ec:8139
-  virtio 1af4:1000
-
-  http://rom-o-matic.net/
+- The PXE roms come from the iPXE project. Built with BANNER_TIME 0.
+  Sources available at http://ipxe.org.  Vendor:Device ID -> ROM mapping:
+
+       8086:100e -> pxe-e1000.rom
+       8086:1209 -> pxe-eepro100.rom
+       1050:0940 -> pxe-ne2k_pci.rom
+       1022:2000 -> pxe-pcnet.rom
+       10ec:8139 -> pxe-rtl8139.rom
+       1af4:1000 -> pxe-virtio.rom
 
 - The S390 zipl loader is an addition to the official IBM s390-tools
   package. That fork is maintained in its own git repository at:
diff --git a/pc-bios/gpxe-eepro100-80861209.rom b/pc-bios/gpxe-eepro100-80861209.rom
deleted file mode 100644 (file)
index 2ca59ec..0000000
Binary files a/pc-bios/gpxe-eepro100-80861209.rom and /dev/null differ
diff --git a/pc-bios/pxe-e1000.bin b/pc-bios/pxe-e1000.bin
deleted file mode 100644 (file)
index 7ac744e..0000000
Binary files a/pc-bios/pxe-e1000.bin and /dev/null differ
diff --git a/pc-bios/pxe-e1000.rom b/pc-bios/pxe-e1000.rom
new file mode 100644 (file)
index 0000000..2e5f8b2
Binary files /dev/null and b/pc-bios/pxe-e1000.rom differ
diff --git a/pc-bios/pxe-eepro100.rom b/pc-bios/pxe-eepro100.rom
new file mode 100644 (file)
index 0000000..d292e8f
Binary files /dev/null and b/pc-bios/pxe-eepro100.rom differ
diff --git a/pc-bios/pxe-ne2k_pci.bin b/pc-bios/pxe-ne2k_pci.bin
deleted file mode 100644 (file)
index 5cb68ab..0000000
Binary files a/pc-bios/pxe-ne2k_pci.bin and /dev/null differ
diff --git a/pc-bios/pxe-ne2k_pci.rom b/pc-bios/pxe-ne2k_pci.rom
new file mode 100644 (file)
index 0000000..62010cb
Binary files /dev/null and b/pc-bios/pxe-ne2k_pci.rom differ
diff --git a/pc-bios/pxe-pcnet.bin b/pc-bios/pxe-pcnet.bin
deleted file mode 100644 (file)
index 7a54bab..0000000
Binary files a/pc-bios/pxe-pcnet.bin and /dev/null differ
diff --git a/pc-bios/pxe-pcnet.rom b/pc-bios/pxe-pcnet.rom
new file mode 100644 (file)
index 0000000..512d6d4
Binary files /dev/null and b/pc-bios/pxe-pcnet.rom differ
diff --git a/pc-bios/pxe-rtl8139.bin b/pc-bios/pxe-rtl8139.bin
deleted file mode 100644 (file)
index db7d76d..0000000
Binary files a/pc-bios/pxe-rtl8139.bin and /dev/null differ
diff --git a/pc-bios/pxe-rtl8139.rom b/pc-bios/pxe-rtl8139.rom
new file mode 100644 (file)
index 0000000..67c77fb
Binary files /dev/null and b/pc-bios/pxe-rtl8139.rom differ
diff --git a/pc-bios/pxe-virtio.bin b/pc-bios/pxe-virtio.bin
deleted file mode 100644 (file)
index 6dde514..0000000
Binary files a/pc-bios/pxe-virtio.bin and /dev/null differ
diff --git a/pc-bios/pxe-virtio.rom b/pc-bios/pxe-virtio.rom
new file mode 100644 (file)
index 0000000..b1ec909
Binary files /dev/null and b/pc-bios/pxe-virtio.rom differ
diff --git a/roms/ipxe b/roms/ipxe
new file mode 160000 (submodule)
index 0000000..7aee315
--- /dev/null
+++ b/roms/ipxe
@@ -0,0 +1 @@
+Subproject commit 7aee315f61aaf1be6d2fff26339f28a1137231a5
diff --git a/scripts/refresh-pxe-roms.sh b/scripts/refresh-pxe-roms.sh
new file mode 100755 (executable)
index 0000000..14d5860
--- /dev/null
@@ -0,0 +1,99 @@
+#!/bin/bash
+
+# PXE ROM build script
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, see <http://www.gnu.org/licenses/>.
+#
+# Copyright (C) 2011 Red Hat, Inc.
+#   Authors: Alex Williamson <alex.williamson@redhat.com>
+#
+# Usage: Run from root of qemu tree
+# ./scripts/refresh-pxe-roms.sh
+
+QEMU_DIR=$PWD
+ROM_DIR="pc-bios"
+BUILD_DIR="roms/ipxe"
+LOCAL_CONFIG="src/config/local/general.h"
+
+function cleanup ()
+{
+    if [ -n "$SAVED_CONFIG" ]; then
+        cp "$SAVED_CONFIG" "$BUILD_DIR"/"$LOCAL_CONFIG"
+        rm "$SAVED_CONFIG"
+    fi
+    cd "$QEMU_DIR"
+}
+
+function make_rom ()
+{
+    cd "$BUILD_DIR"/src
+
+    BUILD_LOG=$(mktemp)
+
+    echo Building "$2"...
+    make bin/"$1".rom > "$BUILD_LOG" 2>&1
+    if [ $? -ne 0 ]; then
+        echo Build failed
+        tail --lines=100 "$BUILD_LOG"
+        rm "$BUILD_LOG"
+        cleanup
+        exit 1
+    fi
+    rm "$BUILD_LOG"
+
+    cp bin/"$1".rom "$QEMU_DIR"/"$ROM_DIR"/"$2"
+
+    cd "$QEMU_DIR"
+}
+
+if [ ! -d "$QEMU_DIR"/"$ROM_DIR" ]; then
+    echo "error: can't find $ROM_DIR directory," \
+         "run me from the root of the qemu tree"
+    exit 1
+fi
+
+if [ ! -d "$BUILD_DIR"/src ]; then
+    echo "error: $BUILD_DIR not populated, try:"
+    echo "  git submodule init $BUILD_DIR"
+    echo "  git submodule update $BUILD_DIR"
+    exit 1
+fi
+
+if [ -e "$BUILD_DIR"/"$LOCAL_CONFIG" ]; then
+    SAVED_CONFIG=$(mktemp)
+    cp "$BUILD_DIR"/"$LOCAL_CONFIG" "$SAVED_CONFIG"
+fi
+
+echo "#undef BANNER_TIMEOUT" > "$BUILD_DIR"/"$LOCAL_CONFIG"
+echo "#define BANNER_TIMEOUT 0" >> "$BUILD_DIR"/"$LOCAL_CONFIG"
+
+IPXE_VERSION=$(cd "$BUILD_DIR" && git describe --tags)
+if [ -z "$IPXE_VERSION" ]; then
+    echo "error: unable to retrieve git version"
+    cleanup
+    exit 1
+fi
+
+echo "#undef PRODUCT_NAME" >> "$BUILD_DIR"/"$LOCAL_CONFIG"
+echo "#define PRODUCT_NAME \"iPXE $IPXE_VERSION\"" >> "$BUILD_DIR"/"$LOCAL_CONFIG"
+
+make_rom 8086100e pxe-e1000.rom
+make_rom 80861209 pxe-eepro100.rom
+make_rom 10500940 pxe-ne2k_pci.rom
+make_rom 10222000 pxe-pcnet.rom
+make_rom 10ec8139 pxe-rtl8139.rom
+make_rom 1af41000 pxe-virtio.rom
+
+echo done
+cleanup