diff --git a/common/Makefile.inc b/common/Makefile.inc
index efdf21d..98b4fbb 100644
--- a/common/Makefile.inc
+++ b/common/Makefile.inc
@@ -19,6 +19,10 @@
 hw-$(CONFIG_HWBASE_LINUX_PCIDEV) += linux/hw-pci-dev.adb
 hw-$(CONFIG_HWBASE_LINUX_PCIDEV) += hw-pci-dev.ads
 
+hw-$(CONFIG_HWBASE_TIMER_MUTIME) += $(muen-common-path)/musinfo/musinfo.ads
+hw-$(CONFIG_HWBASE_TIMER_MUTIME) += $(muen-common-path)/muschedinfo/muschedinfo.ads
+hw-$(CONFIG_HWBASE_TIMER_MUTIME) += mutime/hw-time-timer.adb
+
 hw-config-ads := $(subst //,/,$(call src-to-obj,,$(dir)/hw-config).ads)
 $(hw-config-ads): $(dir)/hw-config.ads.template $(cnf)
 	printf "    GENERATE   $(patsubst /%,%,$(subst $(obj)/,,$@))\n"
diff --git a/common/mutime/hw-time-timer.adb b/common/mutime/hw-time-timer.adb
new file mode 100644
index 0000000..c683d6f
--- /dev/null
+++ b/common/mutime/hw-time-timer.adb
@@ -0,0 +1,63 @@
+--
+-- Copyright (C) 2015-2016 secunet Security Networks AG
+--
+-- This program is free software; you can redistribute it and/or modify
+-- it under the terms of the GNU General Public License as published by
+-- the Free Software Foundation; version 2 of the License.
+--
+-- This program is distributed in the hope that it will be useful,
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-- GNU General Public License for more details.
+--
+
+with System;
+
+with Musinfo;
+with Muschedinfo;
+
+package body HW.Time.Timer
+   with Refined_State => (Timer_State => (Sinfo),
+                          Abstract_Time => (Sched_Info))
+is
+   Sinfo_Base_Address : constant := 16#000e_0000_0000#;
+   Sinfo_Page_Size    : constant
+     := ((Musinfo.Subject_Info_Type_Size + (16#1000# - 1))
+         / 16#1000#) * 16#1000#;
+
+   Sinfo : Musinfo.Subject_Info_Type
+   with
+      Volatile,
+      Async_Writers,
+      Address => System'To_Address (Sinfo_Base_Address);
+
+   Sched_Info : Muschedinfo.Scheduling_Info_Type
+   with
+      Volatile,
+      Async_Writers,
+      Address => System'To_Address (Sinfo_Base_Address + Sinfo_Page_Size);
+
+   function Raw_Value_Min return T
+   is
+      TSC_Schedule_Start : constant Interfaces.Unsigned_64
+         := Sched_Info.TSC_Schedule_Start;
+   begin
+      return T (TSC_Schedule_Start);
+   end Raw_Value_Min;
+
+   function Raw_Value_Max return T
+   is
+      TSC_Schedule_End : constant Interfaces.Unsigned_64
+         := Sched_Info.TSC_Schedule_End;
+   begin
+      return T (TSC_Schedule_End);
+   end Raw_Value_Max;
+
+   function Hz return T
+   is
+      Khz : constant T := T (Sinfo.TSC_Khz);
+   begin
+      return Khz * 1000;
+   end Hz;
+
+end HW.Time.Timer;
