From db9f195d1735cc2497b4fa1e94f4cbe752e2a896 Mon Sep 17 00:00:00 2001
From: Mathijs Kwik <mathijs@bluescreen303.nl>
Date: Sat, 11 Feb 2012 12:28:32 +0100
Subject: [PATCH 1/5] intel microcode update module

---
 modules/hardware/cpu/intel-microcode.nix |   34 ++++++++++++++++++++++++++++++
 modules/module-list.nix                  |    1 +
 2 files changed, 35 insertions(+), 0 deletions(-)
 create mode 100644 modules/hardware/cpu/intel-microcode.nix

diff --git a/modules/hardware/cpu/intel-microcode.nix b/modules/hardware/cpu/intel-microcode.nix
new file mode 100644
index 0000000..8946761
--- /dev/null
+++ b/modules/hardware/cpu/intel-microcode.nix
@@ -0,0 +1,34 @@
+{pkgs, config, ...}:
+
+{
+
+  ###### interface
+
+  options = {
+
+    hardware.cpu.intel.updateMicrocode = pkgs.lib.mkOption {
+      default = false;
+      type = pkgs.lib.types.bool;
+      description = ''
+        Update the CPU microcode for intel processors.
+      '';
+    };
+
+  };
+
+
+  ###### implementation
+
+  config = pkgs.lib.mkIf config.hardware.cpu.intel.updateMicrocode {
+    hardware.firmware = [pkgs.microcodeIntel];
+    jobs.microcode = {
+      name = "microcode";
+      description = "load microcode";
+      startOn = "started udev";
+      exec = "modprobe microcode";
+      path = [config.system.sbin.modprobe];
+      task = true;
+    };
+  };
+
+}
diff --git a/modules/module-list.nix b/modules/module-list.nix
index 15af401..eaa924e 100644
--- a/modules/module-list.nix
+++ b/modules/module-list.nix
@@ -14,6 +14,7 @@
   ./config/timezone.nix
   ./config/unix-odbc-drivers.nix
   ./config/users-groups.nix
+  ./hardware/cpu/intel-microcode.nix
   ./hardware/network/intel-2100bg.nix
   ./hardware/network/intel-2200bg.nix
   ./hardware/network/intel-3945abg.nix
-- 
1.7.8

