sigil/nixos-modules/hardware/framebuffer.nix

45 lines
1.1 KiB
Nix
Raw Normal View History

2020-12-10 19:27:53 +01:00
{ config, pkgs, lib, ... }:
with lib;
{
options.hardware.genode.framebuffer = {
enable = lib.mkEnableOption "framebuffer driver";
driver = mkOption {
type = types.enum [ "boot" "vesa" ];
default = "vesa";
};
};
config = {
genode.core.children.fb_drv =
mkIf config.hardware.genode.framebuffer.enable {
2020-12-10 19:27:53 +01:00
configFile = let
binary = with pkgs.genodePackages;
{
2021-02-16 12:10:50 +01:00
boot = boot_fb_drv;
vesa = vesa_drv;
2020-12-10 19:27:53 +01:00
}.${config.hardware.genode.framebuffer.driver};
in builtins.toFile "fb_drv.dhall" ''
2021-03-28 15:07:21 +02:00
let Sigil = env:DHALL_SIGIL
2020-12-10 19:27:53 +01:00
2021-03-28 15:07:21 +02:00
let Init = Sigil.Init
2020-12-10 19:27:53 +01:00
in λ(binary : Text)
Init.Child.flat
Init.Child.Attributes::{
, binary
2021-03-28 15:07:21 +02:00
, resources = Init.Resources::{ caps = 256, ram = Sigil.units.MiB 32 }
, routes =
[ Init.ServiceRoute.parent "IO_MEM"
, Init.ServiceRoute.parent "IO_PORT"
]
}
2020-12-10 19:27:53 +01:00
'';
};
2020-12-10 19:27:53 +01:00
};
}