mirror of https://gitee.com/openkylin/qemu.git
Merge remote-tracking branch 'awilliam/ipxe' into staging
This commit is contained in:
commit
dbf352ad6e
|
@ -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
|
||||
|
|
16
Makefile
16
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 \
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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(),
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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(),
|
||||
|
|
|
@ -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),
|
||||
|
|
|
@ -18,16 +18,15 @@
|
|||
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
|
||||
- The PXE roms come from the iPXE project. Built with BANNER_TIME 0.
|
||||
Sources available at http://ipxe.org. Vendor:Device ID -> ROM mapping:
|
||||
|
||||
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/
|
||||
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:
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1 @@
|
|||
Subproject commit 7aee315f61aaf1be6d2fff26339f28a1137231a5
|
|
@ -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
|
Loading…
Reference in New Issue