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