summary refs log tree commit diff
path: root/gnu/system
diff options
context:
space:
mode:
authorMathieu Othacehe <m.othacehe@gmail.com>2019-08-20 18:00:40 +0200
committerMathieu Othacehe <m.othacehe@gmail.com>2019-11-22 16:33:43 +0100
commit1ee72bb55b69796abc69d56a51b8eb3f42438be6 (patch)
tree7852c88b4595ef6ee5682acba2e65dab3eb4d2f1 /gnu/system
parent2608417ab8889cf8c1a61032633c474228141e78 (diff)
downloadguix-1ee72bb55b69796abc69d56a51b8eb3f42438be6.tar.gz
system: vm: Add arm64 support.
* gnu/build/vm.scm (load-in-linux-vm): Add target-arm64? argument and use it
to pass correct arguments to qemu.
* gnu/system/vm.scm (expression->derivation-in-linux-vm): Pass the new
target-arm64? argument added above. Do not add ESP partition on all ARM
targets. Do not pass grub-efi package to initialize-hard-disk on ARM targets.
Diffstat (limited to 'gnu/system')
-rw-r--r--gnu/system/vm.scm15
1 files changed, 9 insertions, 6 deletions
diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm
index 3fa9fd4ba5..9d4ed10ce5 100644
--- a/gnu/system/vm.scm
+++ b/gnu/system/vm.scm
@@ -235,10 +235,12 @@ made available under the /xchg CIFS share."
                                   #:memory-size #$memory-size
                                   #:make-disk-image? #$make-disk-image?
                                   #:single-file-output? #$single-file-output?
-                                  ;; FIXME: ‘target-arm32?’ may not operate on
-                                  ;; the right system/target values.  Rewrite
+                                  ;; FIXME: ‘target-arm32?’ and
+                                  ;; ‘target-aarch64?’ may not operate on the
+                                  ;; right system/target values.  Rewrite
                                   ;; using ‘let-system’ when available.
                                   #:target-arm32? #$(target-arm32?)
+                                  #:target-aarch64? #$(target-aarch64?)
                                   #:disk-image-format #$disk-image-format
                                   #:disk-image-size size
                                   #:references-graphs graphs))))))
@@ -452,10 +454,10 @@ system."
                       ;; bootloaders if we are not targeting ARM because UEFI
                       ;; support in U-Boot is experimental.
                       ;;
-                      ;; FIXME: ‘target-arm32?’ may be not operate on the right
+                      ;; FIXME: ‘target-arm?’ may be not operate on the right
                       ;; system/target values.  Rewrite using ‘let-system’ when
                       ;; available.
-                      (if #$(target-arm32?)
+                      (if #$(target-arm?)
                           '()
                           (list (partition
                                  ;; The standalone grub image is about 10MiB, but
@@ -466,10 +468,11 @@ system."
                                  ;; when mounting. The actual FAT-ness is based
                                  ;; on file system size (16 in this case).
                                  (file-system "vfat")
-                                 (flags '(esp))))))))
+                                 (flags '(esp)))))))
+                    (grub-efi #$(and (not (target-arm?)) grub-efi)))
                (initialize-hard-disk "/dev/vda"
                                      #:partitions partitions
-                                     #:grub-efi #$grub-efi
+                                     #:grub-efi grub-efi
                                      #:bootloader-package
                                      #$(bootloader-package bootloader)
                                      #:bootcfg #$bootcfg-drv