51 lines
1.3 KiB
Nix
51 lines
1.3 KiB
Nix
|
{ 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 {
|
||
|
inputs = with pkgs.genodePackages;
|
||
|
{
|
||
|
"boot" = [ boot_fb_drv ];
|
||
|
"vesa" = [ vesa_drv ];
|
||
|
}.${config.hardware.genode.framebuffer.driver};
|
||
|
configFile = let
|
||
|
binary = with pkgs.genodePackages;
|
||
|
{
|
||
|
"boot" = "boot_fb_drv";
|
||
|
"vesa" = "vesa_fb_drv";
|
||
|
}.${config.hardware.genode.framebuffer.driver};
|
||
|
in builtins.toFile "fb_drv.dhall" ''
|
||
|
let Genode = env:DHALL_GENODE
|
||
|
|
||
|
let XML = Genode.Prelude.XML
|
||
|
|
||
|
let Init = Genode.Init
|
||
|
|
||
|
in Init.Child.flat
|
||
|
Init.Child.Attributes::{
|
||
|
, binary = "${binary}"
|
||
|
, resources = Init.Resources::{ caps = 256, ram = Genode.units.MiB 32 }
|
||
|
, routes =
|
||
|
[ Init.ServiceRoute.parent "IO_MEM"
|
||
|
, Init.ServiceRoute.parent "IO_PORT"
|
||
|
]
|
||
|
}
|
||
|
'';
|
||
|
};
|
||
|
|
||
|
};
|
||
|
|
||
|
}
|