diff mbox series

[bug#36477,v3,44/48] build: vm: Fix arm32 support.

Message ID 20190902153333.11190-45-m.othacehe@gmail.com
State Accepted
Headers show
Series Add --target support to guix system | expand

Commit Message

Mathieu Othacehe Sept. 2, 2019, 3:33 p.m. UTC
* gnu/build/vm.scm (load-in-linux-vm): Disable qemu highmem support on ARM32
systems.
---
 gnu/build/vm.scm | 8 ++++++++
 1 file changed, 8 insertions(+)

Comments

Ludovic Courtès Sept. 4, 2019, 12:33 p.m. UTC | #1
Mathieu Othacehe <m.othacehe@gmail.com> skribis:

> * gnu/build/vm.scm (load-in-linux-vm): Disable qemu highmem support on ARM32
> systems.

LGTM!
diff mbox series

Patch

diff --git a/gnu/build/vm.scm b/gnu/build/vm.scm
index a5d9fefa62..b85398ed24 100644
--- a/gnu/build/vm.scm
+++ b/gnu/build/vm.scm
@@ -102,6 +102,14 @@  the #:references-graphs parameter of 'derivation'."
       ;; hardware limits imposed by other machines.
       ,@(if target-arm32? '("-M" "virt") '())
 
+      ;; On ARM32, if the kernel is built without LPAE support, ECAM conflicts
+      ;; with VIRT_PCIE_MMIO causing PCI devices not to show up.  Disable
+      ;; explicitely highmem to fix it.
+      ;; See: https://bugs.launchpad.net/qemu/+bug/1790975.
+      ,@(if target-arm32?
+            '("-machine" "highmem=off")
+            '())
+
       ;; Only enable kvm if we see /dev/kvm exists.  This allows users without
       ;; hardware virtualization to still use these commands.  KVM support is
       ;; still buggy on some ARM32 boards. Do not use it even if available.