sigil/nixos-modules/eris/default.nix

56 lines
1.6 KiB
Nix

{ config, lib, pkgs, ... }:
{
genode.core.children.eris_rom = {
package = pkgs.genodePackages.cached_fs_rom;
configFile = ./cached_fs_rom.dhall;
};
genode.core.children.eris_vfs = {
fs = let
vfsRump = lib.getErisLib "vfs_rump.lib.so" pkgs.genodePackages.rump;
in {
package = pkgs.genodePackages.vfs;
extraErisInputs = [ vfsRump ];
configFile = pkgs.writeText "rom-vfs.dhall" ''
let Sigil = env:DHALL_SIGIL
let VFS = Sigil.VFS
in ${./rom-vfs.dhall}
"${config.block.partitions.store.guid}"
Sigil.Init.Resources::{ caps = 256, ram = Sigil.units.MiB 32 }
( VFS.vfs
[ VFS.leafAttrs
"plugin"
(toMap { load = "${vfsRump.cap}", fs = "cd9660", ram = "12M", writeable="no" })
]
)
'';
};
memory = {
package = pkgs.genodePackages.vfs;
configFile = pkgs.writeText "rom-vfs.dhall" ''
let Sigil = env:DHALL_SIGIL
let VFS = Sigil.VFS
in ${./rom-vfs.dhall}
"${config.block.partitions.store.guid}"
Sigil.Init.Resources::{ ram = Sigil.units.MiB 4 }
( VFS.vfs
[ VFS.leafAttrs
"tar"
( toMap
{ name =
"${config.system.build.tarball}/tarball/${config.system.build.tarball.fileName}.tar"
}
)
]
)
'';
};
}.${config.genode.core.storeBackend};
}