summary refs log tree commit diff
diff options
context:
space:
mode:
authorEfraim Flashner <efraim@flashner.co.il>2023-05-04 22:28:56 +0300
committerEfraim Flashner <efraim@flashner.co.il>2023-05-04 22:28:56 +0300
commit0584f5b48987c058e2dd694c2bc886b7aa40e15d (patch)
treec43202488771bfcbad2e0ef8212e7055905e4f61
parentf66344ed81c47df6cf4606469b8f4c5732f4b9db (diff)
downloadguix-0584f5b48987c058e2dd694c2bc886b7aa40e15d.tar.gz
services: qemu-binfmt: Add more targets.
* gnu/services/virtualization.scm (%i486, %sparc64, %aarch64be, %xtensa,
%xtensaeb, %microblaze, %microblazeel, %or1k, %hexagon, %loongson64):
New variables.
(%armeb): Correct family field.
(%qemu-platforms): Add them.
-rw-r--r--gnu/services/virtualization.scm108
1 files changed, 90 insertions, 18 deletions
diff --git a/gnu/services/virtualization.scm b/gnu/services/virtualization.scm
index 601c11b0d1..d80dc559b6 100644
--- a/gnu/services/virtualization.scm
+++ b/gnu/services/virtualization.scm
@@ -5,6 +5,7 @@
 ;;; Copyright © 2021 Timotej Lazar <timotej.lazar@araneo.si>
 ;;; Copyright © 2022 Oleg Pykhalov <go.wigust@gmail.com>
 ;;; Copyright © 2022 Leo Nikkilä <hello@lnikki.la>
+;;; Copyright © 2023 Efraim Flashner <efraim@flashner.co.il>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -612,6 +613,13 @@ used to manage logs from @acronym{VM, virtual machine} consoles.")))
    (magic (bv "\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x03\x00"))
    (mask (bv "\xff\xff\xff\xff\xff\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff"))))
 
+(define %i486
+  (qemu-platform
+   (name "i486")
+   (family "i386")
+   (magic (bv "\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x06\x00"))
+   (mask (bv "\xff\xff\xff\xff\xff\xfe\xfe\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff"))))
+
 (define %x86_64
   (qemu-platform
    (name "x86_64")
@@ -636,7 +644,7 @@ used to manage logs from @acronym{VM, virtual machine} consoles.")))
 (define %armeb
   (qemu-platform
    (name "armeb")
-   (family "arm")
+   (family "armeb")
    (magic (bv "\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28"))
    (mask (bv "\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff"))))
 
@@ -654,6 +662,13 @@ used to manage logs from @acronym{VM, virtual machine} consoles.")))
    (magic (bv "\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x12"))
    (mask (bv "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff"))))
 
+(define %sparc64
+  (qemu-platform
+   (name "sparc64")
+   (family "sparc")
+   (magic (bv "\x7fELF\x02\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x2b"))
+   (mask (bv "\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff"))))
+
 (define %ppc
   (qemu-platform
    (name "ppc")
@@ -725,20 +740,6 @@ used to manage logs from @acronym{VM, virtual machine} consoles.")))
    (magic (bv "\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08\x00"))
    (mask (bv "\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff"))))
 
-(define %riscv32
-  (qemu-platform
-   (name "riscv32")
-   (family "riscv")
-   (magic (bv "\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xf3\x00"))
-   (mask (bv "\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff"))))
-
-(define %riscv64
-  (qemu-platform
-   (name "riscv64")
-   (family "riscv")
-   (magic (bv "\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xf3\x00"))
-   (mask (bv "\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff"))))
-
 (define %sh4
   (qemu-platform
    (name "sh4")
@@ -767,6 +768,13 @@ used to manage logs from @acronym{VM, virtual machine} consoles.")))
    (magic (bv "\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xb7\x00"))
    (mask (bv "\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff"))))
 
+(define %aarch64be
+  (qemu-platform
+   (name "aarch64be")
+   (family "armeb")
+   (magic (bv "\x7fELF\x02\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xb7"))
+   (mask (bv "\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff"))))
+
 (define %hppa
   (qemu-platform
    (name "hppa")
@@ -774,10 +782,74 @@ used to manage logs from @acronym{VM, virtual machine} consoles.")))
    (magic (bv "\x7f\x45\x4c\x46\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x0f"))
    (mask (bv "\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff"))))
 
+(define %riscv32
+  (qemu-platform
+   (name "riscv32")
+   (family "riscv")
+   (magic (bv "\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xf3\x00"))
+   (mask (bv "\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff"))))
+
+(define %riscv64
+  (qemu-platform
+   (name "riscv64")
+   (family "riscv")
+   (magic (bv "\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xf3\x00"))
+   (mask (bv "\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff"))))
+
+(define %xtensa
+  (qemu-platform
+   (name "xtensa")
+   (family "xtensa")
+   (magic (bv "\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x5e\x00"))
+   (mask (bv "\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff"))))
+
+(define %xtensaeb
+  (qemu-platform
+   (name "xtensaeb")
+   (family "xtensaeb")
+   (magic (bv "\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x5e"))
+   (mask (bv "\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff"))))
+
+(define %microblaze
+  (qemu-platform
+   (name "microblaze")
+   (family "microblaze")
+   (magic (bv "\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xba\xab"))
+   (mask (bv "\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff"))))
+
+(define %microblazeel
+  (qemu-platform
+   (name "microblazeel")
+   (family "microblazeel")
+   (magic (bv "\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xab\xba"))
+   (mask (bv "\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff"))))
+
+(define %or1k
+  (qemu-platform
+   (name "or1k")
+   (family "or1k")
+   (magic (bv "\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x5c"))
+   (mask (bv "\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff"))))
+
+(define %hexagon
+  (qemu-platform
+   (name "hexagon")
+   (family "hexagon")
+   (magic (bv "\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xa4\x00"))
+   (mask (bv "\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff"))))
+
+(define %loongarch64
+  (qemu-platform
+   (name "loongarch64")
+   (family "loongarch")
+   (magic (bv "\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x02\x01"))
+   (mask (bv "\xff\xff\xff\xff\xff\xff\xff\xfc\x00\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff"))))
+
 (define %qemu-platforms
-  (list %i386 %x86_64 %alpha %arm %sparc32plus %ppc %ppc64 %ppc64le %m68k
-        %mips %mipsel %mipsn32 %mipsn32el %mips64 %mips64el
-        %riscv32 %riscv64 %sh4 %sh4eb %s390x %aarch64 %hppa))
+  (list %i386 %i486 %x86_64 %alpha %arm %sparc32plus %sparc64 %ppc %ppc64
+        %ppc64le %m68k %mips %mipsel %mipsn32 %mipsn32el %mips64 %mips64el %sh4
+        %sh4eb %s390x %aarch64 %aarch64be %hppa %riscv32 %riscv64 %xtensa
+        %xtensaeb %microblaze %microblazeel %or1k %hexagon %loongarch64))
 
 (define (lookup-qemu-platforms . names)
   "Return the list of QEMU platforms that match NAMES--a list of names such as