Use MSR abstraction in all board enables

This was forgotten in flashrom svn r677 where some handcrafted MSR accesses
were still found in board-specific code.

Corresponding to flashrom svn r683.

Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Stefan Reinauer <stepan@coresystems.de>
diff --git a/board_enable.c b/board_enable.c
index a4f52b5..5381e82 100644
--- a/board_enable.c
+++ b/board_enable.c
@@ -495,51 +495,29 @@
 #define DBE6x_BOOT_LOC_FLASH		(2)
 #define DBE6x_BOOT_LOC_FWHUB		(3)
 
-	unsigned long msr[2];
-	int msr_fd;
+	msr_t msr;
 	unsigned long boot_loc;
 
-	msr_fd = open("/dev/cpu/0/msr", O_RDWR);
-	if (msr_fd == -1) {
-		perror("open /dev/cpu/0/msr");
+	/* Geode only has a single core */
+	if (setup_cpu_msr(0))
 		return -1;
-	}
 
-	if (lseek(msr_fd, DBE6x_MSR_DIVIL_BALL_OPTS, SEEK_SET) == -1) {
-		perror("lseek");
-		close(msr_fd);
-		return -1;
-	}
+	msr = rdmsr(DBE6x_MSR_DIVIL_BALL_OPTS);
 
-	if (read(msr_fd, (void *)msr, 8) != 8) {
-		perror("read");
-		close(msr_fd);
-		return -1;
-	}
-
-	if ((msr[0] & (DBE6x_BOOT_OP_LATCHED)) ==
+	if ((msr.lo & (DBE6x_BOOT_OP_LATCHED)) ==
 	    (DBE6x_BOOT_LOC_FWHUB << DBE6x_BOOT_OP_LATCHED_SHIFT))
 		boot_loc = DBE6x_BOOT_LOC_FWHUB;
 	else
 		boot_loc = DBE6x_BOOT_LOC_FLASH;
 
-	msr[0] &= ~(DBE6x_PRI_BOOT_LOC | DBE6x_SEC_BOOT_LOC);
-	msr[0] |= ((boot_loc << DBE6x_PRI_BOOT_LOC_SHIFT) |
+	msr.lo &= ~(DBE6x_PRI_BOOT_LOC | DBE6x_SEC_BOOT_LOC);
+	msr.lo |= ((boot_loc << DBE6x_PRI_BOOT_LOC_SHIFT) |
 		   (boot_loc << DBE6x_SEC_BOOT_LOC_SHIFT));
 
-	if (lseek(msr_fd, DBE6x_MSR_DIVIL_BALL_OPTS, SEEK_SET) == -1) {
-		perror("lseek");
-		close(msr_fd);
-		return -1;
-	}
+	wrmsr(DBE6x_MSR_DIVIL_BALL_OPTS, msr);
 
-	if (write(msr_fd, (void *)msr, 8) != 8) {
-		perror("write");
-		close(msr_fd);
-		return -1;
-	}
+	cleanup_cpu_msr();
 
-	close(msr_fd);
 	return 0;
 }