+ UINT32 SysId;\r
+ BOOLEAN HasSparseMemory;\r
+ EFI_VIRTUAL_ADDRESS SparseMemoryBase;\r
+ UINT64 SparseMemorySize;\r
+\r
+ ASSERT (VirtualMemoryMap != NULL);\r
+\r
+ // The FVP model has Sparse memory\r
+ SysId = MmioRead32 (ARM_VE_SYS_ID_REG);\r
+ if (SysId != ARM_RTSM_SYS_ID) {\r
+ HasSparseMemory = TRUE;\r
+\r
+ ResourceAttributes =\r
+ EFI_RESOURCE_ATTRIBUTE_PRESENT |\r
+ EFI_RESOURCE_ATTRIBUTE_INITIALIZED |\r
+ EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE |\r
+ EFI_RESOURCE_ATTRIBUTE_WRITE_COMBINEABLE |\r
+ EFI_RESOURCE_ATTRIBUTE_WRITE_THROUGH_CACHEABLE |\r
+ EFI_RESOURCE_ATTRIBUTE_WRITE_BACK_CACHEABLE |\r
+ EFI_RESOURCE_ATTRIBUTE_TESTED;\r
+\r
+ // Declared the additional DRAM from 2GB to 4GB\r
+ SparseMemoryBase = 0x0880000000;\r
+ SparseMemorySize = SIZE_2GB;\r
+\r
+ BuildResourceDescriptorHob (\r
+ EFI_RESOURCE_SYSTEM_MEMORY,\r
+ ResourceAttributes,\r
+ SparseMemoryBase,\r
+ SparseMemorySize);\r
+ } else {\r
+ HasSparseMemory = FALSE;\r
+ }\r