Patchwork [29/33] target-alpha: Add custom PALcode image for CLIPPER emulation.

login
register
mail settings
Submitter Richard Henderson
Date April 28, 2011, 8:51 p.m.
Message ID <1304023875-25040-30-git-send-email-rth@twiddle.net>
Download mbox | patch
Permalink /patch/93326/
State New
Headers show

Comments

Richard Henderson - April 28, 2011, 8:51 p.m.
Signed-off-by: Richard Henderson <rth@twiddle.net>
---
 .gitmodules             |    3 +++
 Makefile                |    3 ++-
 configure               |    8 +++++++-
 pc-bios/README          |    3 +++
 pc-bios/palcode-clipper |  Bin 0 -> 107565 bytes
 roms/qemu-palcode       |    1 +
 6 files changed, 16 insertions(+), 2 deletions(-)
 create mode 100755 pc-bios/palcode-clipper
 create mode 160000 roms/qemu-palcode
Peter Maydell - April 29, 2011, 9:13 a.m.
2011/4/28 Richard Henderson <rth@twiddle.net>:
> +[submodule "roms/qemu-palcode"]
> +       path = roms/qemu-palcode
> +       url = git://repo.or.cz/qemu-palcode.git

What's the license on this binary blob? There isn't
a COPYING file in the qemu-palcode git repo and most of
the source files seem to be missing copyright/licensing
headers.

thanks
-- PMM
Richard Henderson - April 29, 2011, 1:13 p.m.
On 04/29/2011 02:13 AM, Peter Maydell wrote:
> 2011/4/28 Richard Henderson <rth@twiddle.net>:
>> +[submodule "roms/qemu-palcode"]
>> +       path = roms/qemu-palcode
>> +       url = git://repo.or.cz/qemu-palcode.git
> 
> What's the license on this binary blob? There isn't
> a COPYING file in the qemu-palcode git repo and most of
> the source files seem to be missing copyright/licensing
> headers.

GPL.  I should take care of that legalese soon, I suppose.


r~

Patch

diff --git a/.gitmodules b/.gitmodules
index 7884471..528743d 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -10,3 +10,6 @@ 
 [submodule "roms/ipxe"]
 	path = roms/ipxe
 	url = git://git.qemu.org/ipxe.git
+[submodule "roms/qemu-palcode"]
+	path = roms/qemu-palcode
+	url = git://repo.or.cz/qemu-palcode.git
diff --git a/Makefile b/Makefile
index 67c0268..c7eb076 100644
--- a/Makefile
+++ b/Makefile
@@ -185,7 +185,8 @@  pxe-pcnet.rom pxe-rtl8139.rom pxe-virtio.rom \
 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 214aabc..47aa1f3 100755
--- a/configure
+++ b/configure
@@ -3464,7 +3464,13 @@  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/*.rom $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-* \
+    $source_path/pc-bios/palcode-*
+do
     FILES="$FILES pc-bios/`basename $bios_file`"
 done
 mkdir -p $DIRS
diff --git a/pc-bios/README b/pc-bios/README
index fe221a9..339eebd 100644
--- a/pc-bios/README
+++ b/pc-bios/README
@@ -31,3 +31,6 @@ 
 - The S390 zipl loader is an addition to the official IBM s390-tools
   package. That fork is maintained in its own git repository at:
   git://repo.or.cz/s390-tools.git
+
+- The Alpha palcode image is available from:
+  git://repo.or.cz/qemu-palcode.git
diff --git a/pc-bios/palcode-clipper b/pc-bios/palcode-clipper
new file mode 100755
index 0000000000000000000000000000000000000000..21e016a8a06d97500e5f0074b2bf325f0f340c6a
GIT binary patch
literal 107565
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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