2
0
Fork 0

Add i686-genode platform

This commit is contained in:
Ehmry - 2020-08-04 18:10:10 +02:00
parent fff6833190
commit cdfb5672b7
4 changed files with 29 additions and 5 deletions

View File

@ -8,7 +8,7 @@
outputs = { self, nixpkgs }:
let
localSystems = [ "aarch64-linux" "x86_64-linux" ];
crossSystems = [ "aarch64-genode" "x86_64-genode" ];
crossSystems = [ "aarch64-genode" "i686-genode" "x86_64-genode" ];
forAllLocalSystems = f:
nixpkgs.lib.genAttrs localSystems (system: f system);
@ -249,6 +249,7 @@
});
in {
aarch64-linux = checks'.aarch64-linux-aarch64-genode;
i686-linux = checks'.x86_64-linux-i686-genode;
x86_64-linux = checks'.x86_64-linux-x86_64-genode;
};

View File

@ -97,6 +97,7 @@ in depotPkgs // {
mv $out/ld-nova.lib.so $out/ld.lib.so
mv $out/nova_timer_drv $out/timer_drv
'';
meta.platforms = [ "i686-genode" "x86_64-genode" ];
};
bender = buildPackages.callPackage ./bender { };

View File

@ -9,10 +9,12 @@ let
platform = targetPackages.targetPlatform;
arch = with platform;
if isx86_64 then
"x86_64"
else if isAarch64 then
if isAarch64 then
"arm_v8a"
else if isx86_32 then
"x86_32"
else if isx86_64 then
"x86_64"
else
throw "unknown Genode arch for platform ${platform.system}";

View File

@ -21,6 +21,7 @@ let
qemuBinary = qemuPkg:
{
aarch64-genode = "${qemuPkg}/bin/qemu-system-aarch64";
i686-genode = "${qemuPkg}/bin/qemu-system-i386";
x86_64-genode = "${qemuPkg}/bin/qemu-system-x86_64";
}.${genodepkgs.stdenv.hostPlatform.system};
@ -66,7 +67,7 @@ let
'';
}
{
prefix = "nova-";
prefix = "nova-x86_64-";
specs = [ "x86" "nova" ];
platforms = [ "x86_64-genode" ];
basePackages = [ testPkgs.base-nova ]
@ -84,6 +85,25 @@ let
"$@"
'';
}
{
prefix = "nova-x86_32-";
specs = [ "x86" "nova" ];
platforms = [ "i686-genode" ];
basePackages = [ testPkgs.base-nova ]
++ map testPkgs.genodeSources.depot [ "rtc_drv" ];
makeImage = lib.novaImage;
startVM = vmName: image: ''
#! ${localPackages.runtimeShell}
exec ${qemuBinary qemu'} \
-name ${vmName} \
-machine q35 \
-m 384 \
-kernel "${testPkgs.bender}/bender" \
-initrd "${testPkgs.NOVA}/hypervisor-x86_32 arg=iommu novpid serial,${image}/image.elf" \
$QEMU_OPTS \
"$@"
'';
}
];
cores' = builtins.filter (core: