M flake.nix => flake.nix +2 -1
@@ 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;
};
M packages/default.nix => packages/default.nix +1 -0
@@ 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 { };
M packages/genodelabs/default.nix => packages/genodelabs/default.nix +5 -3
@@ 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}";
M tests/default.nix => tests/default.nix +21 -1
@@ 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: