Update in coreboot_get_memory_type API to include size as well

Change-Id: I3f563cffd58b0591b433c85c0ff6b71e486eb2c8
Signed-off-by: Saurabh Gorecha <sgorecha@codeaurora.org>
diff --git a/include/lib/coreboot.h b/include/lib/coreboot.h
index dda3173..0aa6579 100644
--- a/include/lib/coreboot.h
+++ b/include/lib/coreboot.h
@@ -39,7 +39,7 @@
 	CB_MEM_TABLE		= 16,
 } coreboot_memory_t;
 
-coreboot_memory_t coreboot_get_memory_type(uintptr_t address);
+coreboot_memory_t coreboot_get_memory_type(uintptr_t start, size_t size);
 void coreboot_table_setup(void *base);
 
 #endif /* COREBOOT_H */
diff --git a/lib/coreboot/coreboot_table.c b/lib/coreboot/coreboot_table.c
index c4cd1d7..fb31ef1 100644
--- a/lib/coreboot/coreboot_table.c
+++ b/lib/coreboot/coreboot_table.c
@@ -89,7 +89,7 @@
 					    CONSOLE_FLAG_CRASH);
 }
 
-coreboot_memory_t coreboot_get_memory_type(uintptr_t address)
+coreboot_memory_t coreboot_get_memory_type(uintptr_t start, size_t size)
 {
 	int i;
 
@@ -98,9 +98,11 @@
 
 		if (range->type == CB_MEM_NONE)
 			break;	/* end of table reached */
-		if (address >= range->start &&
-		    address - range->start < range->size)
+		if ((start >= range->start) &&
+		    (start - range->start < range->size) &&
+		    (size <= range->size - (start - range->start))) {
 			return range->type;
+		}
 	}
 
 	return CB_MEM_NONE;