2020-06-03 16:14:18 +02:00
|
|
|
{ pkgs, localPackages, ... }:
|
|
|
|
|
|
|
|
{
|
|
|
|
name = "vmm_arm";
|
|
|
|
constraints = specs:
|
|
|
|
with builtins;
|
|
|
|
all (f: any f specs) [ (spec: spec == "aarch64") ];
|
|
|
|
machine = {
|
|
|
|
|
|
|
|
config = with localPackages;
|
|
|
|
let
|
2020-06-03 17:03:40 +02:00
|
|
|
dtb = runCommand "arm_v8.vmm.db" { buildInputs = [ dtc ]; }
|
|
|
|
"dtc ${pkgs.genodeSources}/repos/os/src/server/vmm/spec/arm_v8/virt.dts > $out";
|
2020-06-03 16:14:18 +02:00
|
|
|
linux = fetchurl {
|
|
|
|
url = "http://genode.org/files/release-20.02/linux-arm64";
|
|
|
|
hash = "sha256-H6FhNGgkApouy+PyjxrgAPnJSc4BIlWlpg+VhWiUI6o=";
|
|
|
|
};
|
|
|
|
initrd = fetchurl {
|
|
|
|
url = "http://genode.org/files/release-20.02/initrd-arm64";
|
|
|
|
hash = "sha256-iOKd2X2zgDIGeuLEDSSTLSw/Ywi7mDET36J1NAqgqls=";
|
|
|
|
};
|
|
|
|
|
|
|
|
guest = writeText "guest.dhall" ''
|
2020-06-03 17:03:40 +02:00
|
|
|
{ dtb = "${dtb}", linux = "${linux}", initrd = "${initrd}" }
|
2020-06-03 16:14:18 +02:00
|
|
|
'';
|
|
|
|
|
|
|
|
in "${./vmm_arm.dhall} ${guest}";
|
|
|
|
|
2021-02-16 15:25:30 +01:00
|
|
|
extraInputs = with pkgs;
|
2020-06-03 16:14:18 +02:00
|
|
|
let
|
|
|
|
vmm' = genodeSources.buildUpstream {
|
|
|
|
name = "vmm_arm";
|
|
|
|
targets = [ "server/vmm" ];
|
|
|
|
KERNEL = "hw";
|
|
|
|
};
|
|
|
|
in [ vmm' ] ++ map genodeSources.depot [
|
|
|
|
"log_terminal"
|
|
|
|
"nic_router"
|
|
|
|
"terminal_crosslink"
|
|
|
|
] ++ map genodeSources.make [ "test/terminal_expect_send" ];
|
|
|
|
};
|
|
|
|
|
|
|
|
testScript = ''
|
|
|
|
start_all()
|
|
|
|
machine.wait_until_serial_output("linuxrc")
|
|
|
|
'';
|
|
|
|
}
|