diff --git a/nixos-modules/hardware.nix b/nixos-modules/hardware.nix index 68e17c0..55ee570 100644 --- a/nixos-modules/hardware.nix +++ b/nixos-modules/hardware.nix @@ -420,20 +420,32 @@ with lib; ''; }; - genode.core.children.fb_drv = - mkIf config.hardware.genode.framebuffer.enable { - inputs = with pkgs.genodePackages; + genode.core.children.fb_drv = mkIf config.hardware.genode.framebuffer.enable + (let + params = with pkgs.genodePackages; { - "boot" = [ boot_fb_drv ]; - "vesa" = [ vesa_drv ]; + boot = { + binary = "boot_fb_drv"; + inputs = [ boot_fb_drv ]; + caps = "256"; + ram = "16"; + }; + intel = { + binary = "intel_fb_drv"; + inputs = [ intel_fb_drv ]; + caps = "512"; + ram = "64"; + }; + vesa = { + binary = "vesa_fb_drv"; + inputs = [ vesa_drv ]; + caps = "256"; + ram = "32"; + }; }.${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" '' + in { + inherit (params) inputs; + configFile = builtins.toFile "fb_drv.dhall" '' let Genode = env:DHALL_GENODE let XML = Genode.Prelude.XML @@ -442,15 +454,19 @@ with lib; in Init.Child.flat Init.Child.Attributes::{ - , binary = "${binary}" - , resources = Init.Resources::{ caps = 256, ram = Genode.units.MiB 32 } + , binary = "${params.binary}" + , resources = Init.Resources::{ + , caps = ${params.caps} + , ram = Genode.units.MiB ${params.ram} + } + , romReports = [ { label = "connectors", route = "connectors" } ] , routes = [ Init.ServiceRoute.parent "IO_MEM" , Init.ServiceRoute.parent "IO_PORT" ] } ''; - }; + }); virtualisation.qemu.options = lib.optional config.hardware.genode.usb.enable (lib.optional (pkgs.stdenv.isi686 || pkgs.stdenv.isx86_64) "-usb"