Abstract mmap() in physmap.c and only open /dev/mem on the first physmap() call

Corresponding to flashrom svn r397 and coreboot v2 svn r3903.

Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Signed-off-by: Peter Stuge <peter@stuge.se>
Acked-by: Peter Stuge <peter@stuge.se>
diff --git a/cbtable.c b/cbtable.c
index 25c3ee2..284140a 100644
--- a/cbtable.c
+++ b/cbtable.c
@@ -188,13 +188,7 @@
 	struct lb_header *lb_table;
 	struct lb_record *rec, *last;
 
-	low_1MB = mmap(0, 1024 * 1024, PROT_READ, MAP_SHARED, fd_mem,
-		       0x00000000);
-	if (low_1MB == MAP_FAILED) {
-		perror("Can't mmap memory using " MEM_DEV);
-		mmap_errmsg();
-		exit(-2);
-	}
+	low_1MB = physmap("low megabyte", 0x0, 1024*1024);
 	lb_table = find_lb_table(low_1MB, 0x00000, 0x1000);
 	if (!lb_table)
 		lb_table = find_lb_table(low_1MB, 0xf0000, 1024*1024);