From patchwork Tue Apr 19 15:04:55 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 92028 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [140.186.70.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id 22E2CB702A for ; Wed, 20 Apr 2011 02:15:30 +1000 (EST) Received: from localhost ([::1]:55991 helo=lists2.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QCDaJ-00005C-IH for incoming@patchwork.ozlabs.org; Tue, 19 Apr 2011 12:15:27 -0400 Received: from eggs.gnu.org ([140.186.70.92]:44722) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QCDWN-0001mp-1R for qemu-devel@nongnu.org; Tue, 19 Apr 2011 12:11:25 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QCDWG-00036z-TM for qemu-devel@nongnu.org; Tue, 19 Apr 2011 12:11:22 -0400 Received: from b.mail.sonic.net ([64.142.19.5]:46550) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QCDWG-00035V-B8 for qemu-devel@nongnu.org; Tue, 19 Apr 2011 12:11:16 -0400 Received: from are.twiddle.net (are.twiddle.net [75.101.38.216]) by b.mail.sonic.net (8.13.8.Beta0-Sonic/8.13.7) with ESMTP id p3JF59v0008134 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Tue, 19 Apr 2011 08:05:09 -0700 Received: from are.twiddle.net (localhost [127.0.0.1]) by are.twiddle.net (8.14.4/8.14.4) with ESMTP id p3JF59mA012884 for ; Tue, 19 Apr 2011 08:05:09 -0700 Received: (from rth@localhost) by are.twiddle.net (8.14.4/8.14.4/Submit) id p3JF58gp012883 for qemu-devel@nongnu.org; Tue, 19 Apr 2011 08:05:08 -0700 From: Richard Henderson To: qemu-devel@nongnu.org Date: Tue, 19 Apr 2011 08:04:55 -0700 Message-Id: <1303225501-12778-19-git-send-email-rth@twiddle.net> X-Mailer: git-send-email 1.7.3.4 In-Reply-To: <1303225501-12778-1-git-send-email-rth@twiddle.net> References: <1303225501-12778-1-git-send-email-rth@twiddle.net> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.4-2.6 X-Received-From: 64.142.19.5 Subject: [Qemu-devel] [PATCH 18/24] target-alpha: Add custom PALcode image for SX164 emulation. X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Signed-off-by: Richard Henderson --- .gitmodules | 3 +++ Makefile | 3 ++- configure | 2 +- pc-bios/palcode-sx164 | Bin 0 -> 107621 bytes roms/qemu-palcode | 1 + 5 files changed, 7 insertions(+), 2 deletions(-) create mode 100644 pc-bios/palcode-sx164 create mode 160000 roms/qemu-palcode diff --git a/.gitmodules b/.gitmodules index 44fdd1a..a9a30d4 100644 --- a/.gitmodules +++ b/.gitmodules @@ -7,3 +7,6 @@ [submodule "roms/SLOF"] path = roms/SLOF url = git://git.qemu.org/SLOF.git +[submodule "roms/qemu-palcode"] + path = roms/qemu-palcode + url = git://repo.or.cz/qemu-palcode.git diff --git a/Makefile b/Makefile index dc39efd..d8a802e 100644 --- a/Makefile +++ b/Makefile @@ -187,7 +187,8 @@ pxe-rtl8139.bin pxe-virtio.bin \ bamboo.dtb petalogix-s3adsp1800.dtb petalogix-ml605.dtb \ multiboot.bin linuxboot.bin \ s390-zipl.rom \ -spapr-rtas.bin slof.bin +spapr-rtas.bin slof.bin \ +palcode-sx164 else BLOBS= endif diff --git a/configure b/configure index da2da04..4a93972 100755 --- a/configure +++ b/configure @@ -3454,7 +3454,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/*.dtb $source_path/pc-bios/openbios-* $source_path/pc-bios/palcode-*; do FILES="$FILES pc-bios/`basename $bios_file`" done mkdir -p $DIRS diff --git a/pc-bios/palcode-sx164 b/pc-bios/palcode-sx164 new file mode 100644 index 0000000000000000000000000000000000000000..71626214e61173e7cdfdb18dacbfe16f8eba7b3b GIT binary patch literal 107621 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