+ // Detect if it is a 1GB or 2GB Test Chip\r
+ // [16:19]: 0=1GB TC2, 1=2GB TC2\r
+ if (MmioRead32(ARM_VE_SYS_PROCID0_REG) & (0xF << 16)) {\r
+ DEBUG((EFI_D_ERROR,"Info: 2GB Test Chip 2 detected.\n"));\r
+ BuildResourceDescriptorHob (\r
+ EFI_RESOURCE_SYSTEM_MEMORY,\r
+ EFI_RESOURCE_ATTRIBUTE_PRESENT | EFI_RESOURCE_ATTRIBUTE_INITIALIZED | EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE |\r
+ EFI_RESOURCE_ATTRIBUTE_WRITE_COMBINEABLE | EFI_RESOURCE_ATTRIBUTE_WRITE_THROUGH_CACHEABLE | EFI_RESOURCE_ATTRIBUTE_WRITE_BACK_CACHEABLE |\r
+ EFI_RESOURCE_ATTRIBUTE_TESTED,\r
+ PcdGet32 (PcdSystemMemoryBase) + PcdGet32 (PcdSystemMemorySize),\r
+ SIZE_1GB\r
+ );\r
+\r
+ // Map the additional 1GB into the MMU\r
+ VirtualMemoryTable[++Index].PhysicalBase = PcdGet32 (PcdSystemMemoryBase) + PcdGet32 (PcdSystemMemorySize);\r
+ VirtualMemoryTable[Index].VirtualBase = PcdGet32 (PcdSystemMemoryBase) + PcdGet32 (PcdSystemMemorySize);\r
+ VirtualMemoryTable[Index].Length = SIZE_1GB;\r
+ VirtualMemoryTable[Index].Attributes = CacheAttributes;\r
+ }\r
+\r