diff --git a/src/mainboard/winent/mb6047/mainboard.c b/src/mainboard/winent/mb6047/mainboard.c
index 6ebe04c..d5ec5724 100644
--- a/src/mainboard/winent/mb6047/mainboard.c
+++ b/src/mainboard/winent/mb6047/mainboard.c
@@ -1,7 +1,54 @@
+#include <arch/io.h>
+#include <console/console.h>
 #include <device/device.h>
+#include <device/pnp_def.h>
+#include <stdlib.h>
+#include <superio/winbond/w83627thg/w83627thg.h>
+
+static void hwm_write(u16 base, u8 bank, u8 reg, u8 value)
+{
+	outb(0x4e, base + 0x05);
+	outb(bank, base + 0x06);
+	outb(reg, base + 0x05);
+	outb(value, base + 0x06);
+}
+
+static void mb6047_hwm_init(void)
+{
+	device_t dev;
+	struct resource *res;
+	size_t i;
+
+	static const struct { u8 bnk; u8 idx; u8 dat; } hwmtab[] = {
+		{ 0x00, 0x5d, 0x05 }, /* CPUTIN diode */
+		{ 0x04, 0x55, 0x32 }, /* CPUTIN offset */
+		{ 0x00, 0x4e, 0x00 }, /* reset bank */
+	};
+
+	dev = dev_find_slot_pnp(0x2e, W83627THG_HWM);
+	if (dev == NULL)
+		return;
+
+	res = find_resource(dev, PNP_IDX_IO0);
+	if (res == NULL)
+		return;
+
+	printk(BIOS_INFO, "setting up hardware monitor at 0x%04x\n", (unsigned int)res->base);
+
+	/* Init hardware monitor. */
+	for (i = 0; i < ARRAY_SIZE(hwmtab); i++) {
+		hwm_write(res->base, hwmtab[i].bnk, hwmtab[i].idx, hwmtab[i].dat);
+	}
+}
+
+static void mb6047_mainboard_init(device_t dev)
+{
+	mb6047_hwm_init();
+}
 
 static void mainboard_enable(device_t dev)
 {
+	dev->ops->init = mb6047_mainboard_init;
 }
 
 struct chip_operations mainboard_ops = {
