Commit 36d8d02d authored by Alex Williamson's avatar Alex Williamson

PXE: Refresh all PXE ROMs from the ipxe submodule

Add script to make this easy to repeat later.
Signed-off-by: default avatarAlex Williamson <alex.williamson@redhat.com>
parent 5ee8ad71
......@@ -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
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:
......
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
#!/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
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment