feat(lib/granule): Add dev_granule object type

Define dev_granule structure type and add device granule
objects to manage device memory in PCI regions.
Define device granule states:
- DEV_GRANULE_STATE_NS
- DEV_GRANULE_STATE_DELEGATED
- DEV_GRANULE_STATE_MAPPED
Add locking primitives and access functions for
dev_granule objects.
Add dev_granules[RMM_MAX_DEV_GRANULES] array of
dev_granule structures.

Change-Id: I857095a997f78d2c39b3958056460112f3b34595
Signed-off-by: AlexeiFedorov <Alexei.Fedorov@arm.com>
diff --git a/plat/host/common/src/host_utils.c b/plat/host/common/src/host_utils.c
index 5c8c40c..c114763 100644
--- a/plat/host/common/src/host_utils.c
+++ b/plat/host/common/src/host_utils.c
@@ -25,7 +25,10 @@
  * Allocate memory to emulate physical memory to initialize the
  * granule library.
  */
-IF_NCBMC(static) unsigned char granules_buffer[HOST_MEM_SIZE] __aligned(GRANULE_SIZE);
+IF_NCBMC(static) unsigned char host_dram_buffer[HOST_DRAM_SIZE]
+							__aligned(GRANULE_SIZE);
+IF_NCBMC(static) unsigned char host_dev_ncoh_buffer[HOST_NCOH_DEV_SIZE]
+							__aligned(GRANULE_SIZE);
 
 /*
  * Define and set the Boot Interface arguments.
@@ -132,7 +135,12 @@
 
 unsigned long host_util_get_granule_base(void)
 {
-	return (unsigned long)granules_buffer;
+	return (unsigned long)host_dram_buffer;
+}
+
+unsigned long host_util_get_dev_granule_base(void)
+{
+	return (unsigned long)host_dev_ncoh_buffer;
 }
 
 void host_util_set_cpuid(unsigned int cpuid)