diff mbox

[18/24] target-alpha: Add custom PALcode image for SX164 emulation.

Message ID 1303225501-12778-19-git-send-email-rth@twiddle.net
State New
Headers show

Commit Message

Richard Henderson April 19, 2011, 3:04 p.m. UTC
Signed-off-by: Richard Henderson <rth@twiddle.net>
---
 .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 mbox

Patch

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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

literal 0
HcmV?d00001

diff --git a/roms/qemu-palcode b/roms/qemu-palcode
new file mode 160000
index 0000000..2eec0e4
--- /dev/null
+++ b/roms/qemu-palcode
@@ -0,0 +1 @@ 
+Subproject commit 2eec0e49ac23330ed8a866a4b3f268be4af09e34