Revision: 17889
          http://sourceforge.net/p/edk2/code/17889
Author:   oliviermartin
Date:     2015-07-08 16:20:30 +0000 (Wed, 08 Jul 2015)
Log Message:
-----------
Revert "ArmPlatformPkg/ArmVExpressDxe: Change FDT default file names."

This reverts commit SVN rev17862.
The former commit was breaking the build when DTB_DIR is defined.
It has been the patch would be reverted for the time being.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Olivier Martin <[email protected]>

Revision Links:
--------------
    http://sourceforge.net/p/edk2/code/17862

Modified Paths:
--------------
    
trunk/edk2/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/AArch64/ArmFvpDxeAArch64.c
    trunk/edk2/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmFvpDxe.c
    trunk/edk2/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmFvpDxe.inf
    trunk/edk2/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmHwDxe.c
    trunk/edk2/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmHwDxe.inf
    
trunk/edk2/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmVExpressInternal.h
    trunk/edk2/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressPkg.dec

Modified: 
trunk/edk2/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/AArch64/ArmFvpDxeAArch64.c
===================================================================
--- 
trunk/edk2/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/AArch64/ArmFvpDxeAArch64.c
  2015-07-08 13:41:09 UTC (rev 17888)
+++ 
trunk/edk2/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/AArch64/ArmFvpDxeAArch64.c
  2015-07-08 16:20:30 UTC (rev 17889)
@@ -22,10 +22,14 @@
 // model or hardware platforms).
 //
 CONST ARM_VEXPRESS_PLATFORM ArmVExpressPlatforms[] = {
-  { ARM_FVP_VEXPRESS_AEMv8x4, FixedPcdGetPtr (PcdFdtFvpVExpressAEMv8x4), 
L"rtsm_ve-aemv8a.dtb" },
-  { ARM_FVP_BASE, FixedPcdGetPtr (PcdFdtFvpBaseAEMv8x4), L"fvp-base.dtb" },
-  { ARM_FVP_FOUNDATION, FixedPcdGetPtr (PcdFdtFvpFoundation), 
L"fvp-foundation.dtb" },
-  { ARM_FVP_VEXPRESS_UNKNOWN, &gZeroGuid }
+  { ARM_FVP_VEXPRESS_AEMv8x4,                  FixedPcdGetPtr 
(PcdFdtFvpVExpressAEMv8x4),        L"rtsm_ve-aemv8a.dtb"                  },
+  { ARM_FVP_BASE_AEMv8x4_AEMv8x4_GICV2,        FixedPcdGetPtr 
(PcdFdtFvpBaseAEMv8x4GicV2),       L"fvp-base-gicv2-psci.dtb"             },
+  { ARM_FVP_BASE_AEMv8x4_AEMv8x4_GICV2_LEGACY, FixedPcdGetPtr 
(PcdFdtFvpBaseAEMv8x4GicV2Legacy), L"fvp-base-gicv2legacy-psci.dtb"       },
+  { ARM_FVP_BASE_AEMv8x4_AEMv8x4_GICV3,        FixedPcdGetPtr 
(PcdFdtFvpBaseAEMv8x4GicV3),       L"fvp-base-gicv3-psci.dtb"             },
+  { ARM_FVP_FOUNDATION_GICV2,                  FixedPcdGetPtr 
(PcdFdtFvpFoundationGicV2),        L"fvp-foundation-gicv2-psci.dtb"       },
+  { ARM_FVP_FOUNDATION_GICV2_LEGACY,           FixedPcdGetPtr 
(PcdFdtFvpFoundationGicV2Legacy),  L"fvp-foundation-gicv2legacy-psci.dtb" },
+  { ARM_FVP_FOUNDATION_GICV3,                  FixedPcdGetPtr 
(PcdFdtFvpFoundationGicV3),        L"fvp-foundation-gicv3-psci.dtb"       },
+  { ARM_FVP_VEXPRESS_UNKNOWN }
 };
 
 /**
@@ -45,9 +49,11 @@
   OUT CONST ARM_VEXPRESS_PLATFORM** Platform
   )
 {
-  EFI_STATUS  Status;
-  UINT32      SysId;
-  UINT32      FvpSysId;
+  EFI_STATUS            Status;
+  UINT32                SysId;
+  UINT32                FvpSysId;
+  UINT32                VariantSysId;
+  ARM_GIC_ARCH_REVISION GicRevision;
 
   ASSERT (Platform != NULL);
 
@@ -55,23 +61,46 @@
 
   SysId = MmioRead32 (ARM_VE_SYS_ID_REG);
   if (SysId != ARM_RTSM_SYS_ID) {
-    //
-    // Keep only the HBI board number and the platform type fields of the
-    // system id register to identify if we are running on the FVP base or
-    // foundation model.
-    //
-    FvpSysId = SysId & (ARM_FVP_SYS_ID_HBI_MASK |
-                        ARM_FVP_SYS_ID_PLAT_MASK );
+    // Remove the GIC variant to identify if we are running on the FVP Base or
+    // Foundation models
+    FvpSysId     = SysId & (ARM_FVP_SYS_ID_HBI_MASK |
+                            ARM_FVP_SYS_ID_PLAT_MASK );
+    // Extract the variant from the SysId
+    VariantSysId = SysId & ARM_FVP_SYS_ID_VARIANT_MASK;
 
     if (FvpSysId == ARM_FVP_BASE_BOARD_SYS_ID) {
-      Status = ArmVExpressGetPlatformFromId (ARM_FVP_BASE, Platform);
+      if (VariantSysId == ARM_FVP_GIC_VE_MMAP) {
+        // FVP Base Model with legacy GIC memory map
+        Status = ArmVExpressGetPlatformFromId 
(ARM_FVP_BASE_AEMv8x4_AEMv8x4_GICV2_LEGACY, Platform);
+      } else {
+        GicRevision = ArmGicGetSupportedArchRevision ();
+
+        if (GicRevision == ARM_GIC_ARCH_REVISION_2) {
+          // FVP Base Model with GICv2 support
+          Status = ArmVExpressGetPlatformFromId 
(ARM_FVP_BASE_AEMv8x4_AEMv8x4_GICV2, Platform);
+        } else {
+          // FVP Base Model with GICv3 support
+          Status = ArmVExpressGetPlatformFromId 
(ARM_FVP_BASE_AEMv8x4_AEMv8x4_GICV3, Platform);
+        }
+      }
     } else if (FvpSysId == ARM_FVP_FOUNDATION_BOARD_SYS_ID) {
-      Status = ArmVExpressGetPlatformFromId (ARM_FVP_FOUNDATION, Platform);
+      if (VariantSysId == ARM_FVP_GIC_VE_MMAP) {
+        // FVP Foundation Model with legacy GIC memory map
+        Status = ArmVExpressGetPlatformFromId 
(ARM_FVP_FOUNDATION_GICV2_LEGACY, Platform);
+      } else {
+        GicRevision = ArmGicGetSupportedArchRevision ();
+
+        if (GicRevision == ARM_GIC_ARCH_REVISION_2) {
+          // FVP Foundation Model with GICv2
+          Status = ArmVExpressGetPlatformFromId (ARM_FVP_FOUNDATION_GICV2, 
Platform);
+        } else {
+          // FVP Foundation Model with GICv3
+          Status = ArmVExpressGetPlatformFromId (ARM_FVP_FOUNDATION_GICV3, 
Platform);
+        }
+      }
     }
   } else {
-    //
     // FVP Versatile Express AEMv8
-    //
     Status = ArmVExpressGetPlatformFromId (ARM_FVP_VEXPRESS_AEMv8x4, Platform);
   }
 

Modified: trunk/edk2/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmFvpDxe.c
===================================================================
--- trunk/edk2/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmFvpDxe.c 
2015-07-08 13:41:09 UTC (rev 17888)
+++ trunk/edk2/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmFvpDxe.c 
2015-07-08 16:20:30 UTC (rev 17889)
@@ -24,7 +24,6 @@
 #include <Protocol/FirmwareVolume2.h>
 
 #define ARM_FVP_BASE_VIRTIO_BLOCK_BASE    0x1c130000
-STATIC CONST CHAR16 *mFdtFallbackName = L"fdt.dtb";
 
 #pragma pack(1)
 typedef struct {
@@ -156,20 +155,16 @@
   IN EFI_SYSTEM_TABLE   *SystemTable
   )
 {
+  CONST ARM_VEXPRESS_PLATFORM* Platform;
   EFI_STATUS                   Status;
-  CONST ARM_VEXPRESS_PLATFORM  *Platform;
-  BOOLEAN                      NeedFallback;
-  UINTN                        TextDevicePathBaseSize;
+  CHAR16                       *TextDevicePath;
   UINTN                        TextDevicePathSize;
-  CHAR16                       *TextDevicePath;
   VOID                         *Buffer;
   EFI_DEVICE_PATH              *FdtDevicePath;
 
-  Status = gBS->InstallProtocolInterface (
-                  &ImageHandle,
-                  &gEfiDevicePathProtocolGuid, EFI_NATIVE_INTERFACE,
-                  &mVirtioBlockDevicePath
-                  );
+  Status = gBS->InstallProtocolInterface (&ImageHandle,
+                 &gEfiDevicePathProtocolGuid, EFI_NATIVE_INTERFACE,
+                 &mVirtioBlockDevicePath);
   if (EFI_ERROR (Status)) {
     return Status;
   }
@@ -185,32 +180,13 @@
       }
       FreePool (FdtDevicePath);
     } else {
-      //
-      // In the case of the FVP base and foundation platforms, two default
-      // text device paths for the FDT are defined. The first one, like every
-      // other platform, ends with a file name that identifies the platform. 
The
-      // second one ends with the fallback file name "fdt.dtb" for historical
-      // backward compatibility reasons.
-      //
-      NeedFallback = (Platform->Id == ARM_FVP_BASE) ||
-                     (Platform->Id == ARM_FVP_FOUNDATION);
+      TextDevicePathSize  = StrSize ((CHAR16*)PcdGetPtr 
(PcdFvpFdtDevicePathsBase)) - sizeof (CHAR16);
+      TextDevicePathSize += StrSize (Platform->FdtName);
 
-      TextDevicePathBaseSize = StrSize ((CHAR16*)PcdGetPtr 
(PcdFvpFdtDevicePathsBase)) - sizeof (CHAR16);
-      TextDevicePathSize = TextDevicePathBaseSize + StrSize 
(Platform->FdtName);
-      if (NeedFallback) {
-        TextDevicePathSize += TextDevicePathBaseSize + StrSize 
(mFdtFallbackName);
-      }
-
       TextDevicePath = AllocatePool (TextDevicePathSize);
       if (TextDevicePath != NULL) {
         StrCpy (TextDevicePath, ((CHAR16*)PcdGetPtr 
(PcdFvpFdtDevicePathsBase)));
         StrCat (TextDevicePath, Platform->FdtName);
-
-        if (NeedFallback) {
-          StrCat (TextDevicePath, L";");
-          StrCat (TextDevicePath, ((CHAR16*)PcdGetPtr 
(PcdFvpFdtDevicePathsBase)));
-          StrCat (TextDevicePath, mFdtFallbackName);
-        }
       }
     }
     if (TextDevicePath != NULL) {
@@ -222,11 +198,6 @@
           ));
       }
       FreePool (TextDevicePath);
-    } else {
-        DEBUG ((
-          EFI_D_ERROR,
-          "ArmFvpDxe: Setting of FDT device path in PcdFdtDevicePaths failed - 
%r\n", EFI_OUT_OF_RESOURCES
-          ));
     }
   }
 

Modified: trunk/edk2/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmFvpDxe.inf
===================================================================
--- trunk/edk2/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmFvpDxe.inf       
2015-07-08 13:41:09 UTC (rev 17888)
+++ trunk/edk2/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmFvpDxe.inf       
2015-07-08 16:20:30 UTC (rev 17889)
@@ -32,7 +32,6 @@
 
 [Packages]
   MdePkg/MdePkg.dec
-  MdeModulePkg/MdeModulePkg.dec
   ArmPkg/ArmPkg.dec
   ArmPlatformPkg/ArmPlatformPkg.dec
   ArmPlatformPkg/ArmVExpressPkg/ArmVExpressPkg.dec
@@ -55,9 +54,6 @@
 [LibraryClasses.AARCH64]
   ArmGicLib
 
-[Guids]
-  gZeroGuid
-
 [Protocols]
   gEfiFirmwareVolume2ProtocolGuid
   gEfiDevicePathProtocolGuid
@@ -73,8 +69,12 @@
 
 [FixedPcd.AARCH64]
   gArmVExpressTokenSpaceGuid.PcdFdtFvpVExpressAEMv8x4
-  gArmVExpressTokenSpaceGuid.PcdFdtFvpBaseAEMv8x4
-  gArmVExpressTokenSpaceGuid.PcdFdtFvpFoundation
+  gArmVExpressTokenSpaceGuid.PcdFdtFvpBaseAEMv8x4GicV2
+  gArmVExpressTokenSpaceGuid.PcdFdtFvpBaseAEMv8x4GicV2Legacy
+  gArmVExpressTokenSpaceGuid.PcdFdtFvpBaseAEMv8x4GicV3
+  gArmVExpressTokenSpaceGuid.PcdFdtFvpFoundationGicV2
+  gArmVExpressTokenSpaceGuid.PcdFdtFvpFoundationGicV2Legacy
+  gArmVExpressTokenSpaceGuid.PcdFdtFvpFoundationGicV3
 
 [Pcd]
   gEmbeddedTokenSpaceGuid.PcdFdtDevicePaths

Modified: trunk/edk2/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmHwDxe.c
===================================================================
--- trunk/edk2/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmHwDxe.c  
2015-07-08 13:41:09 UTC (rev 17888)
+++ trunk/edk2/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmHwDxe.c  
2015-07-08 16:20:30 UTC (rev 17889)
@@ -19,6 +19,7 @@
 CONST EFI_GUID ArmHwA15x2A7x3Guid = { 0xd5e606eb, 0x83df, 0x4e90, { 0x81, 
0xe8, 0xc3, 0xdb, 0x2f, 0x77, 0x17, 0x9a } };
 CONST EFI_GUID ArmHwA15Guid = { 0x6b8947c2, 0x4287, 0x4d91, { 0x8f, 0xe0, 
0xa3, 0x81, 0xea, 0x5b, 0x56, 0x8f } };
 CONST EFI_GUID ArmHwA5Guid = { 0xa2cc7663, 0x4d7c, 0x448a, { 0xaa, 0xb5, 0x4c, 
0x03, 0x4b, 0x6f, 0xda, 0xb7 } };
+CONST EFI_GUID NullGuid = { 0x0, 0x0, 0x0, { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
0x0, 0x0 } };
 
 //
 // Description of the four hardware platforms :
@@ -33,7 +34,7 @@
   { ARM_HW_A15x2_A7x3, &ArmHwA15x2A7x3Guid, L"ca15a7" },
   { ARM_HW_A15, &ArmHwA15Guid, L"ca15a7" },
   { ARM_HW_A5, &ArmHwA5Guid, L"ca5s" },
-  { ARM_FVP_VEXPRESS_UNKNOWN, &gZeroGuid, NULL }
+  { ARM_FVP_VEXPRESS_UNKNOWN, &NullGuid, NULL }
 };
 
 /**

Modified: trunk/edk2/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmHwDxe.inf
===================================================================
--- trunk/edk2/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmHwDxe.inf        
2015-07-08 13:41:09 UTC (rev 17888)
+++ trunk/edk2/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmHwDxe.inf        
2015-07-08 16:20:30 UTC (rev 17889)
@@ -29,7 +29,6 @@
   ArmPlatformPkg/ArmPlatformPkg.dec
   EmbeddedPkg/EmbeddedPkg.dec
   MdePkg/MdePkg.dec
-  MdeModulePkg/MdeModulePkg.dec
 
 [LibraryClasses]
   ArmShellCmdRunAxfLib
@@ -37,8 +36,5 @@
   MemoryAllocationLib
   UefiDriverEntryPoint
 
-[Guids]
-  gZeroGuid
-
 [Protocols]
   gEfiDevicePathProtocolGuid

Modified: 
trunk/edk2/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmVExpressInternal.h
===================================================================
--- 
trunk/edk2/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmVExpressInternal.h   
    2015-07-08 13:41:09 UTC (rev 17888)
+++ 
trunk/edk2/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmVExpressInternal.h   
    2015-07-08 16:20:30 UTC (rev 17889)
@@ -24,8 +24,6 @@
 #include <Library/UefiBootServicesTableLib.h>
 #include <Library/UefiLib.h>
 
-#include <Guid/ZeroGuid.h>
-
 #include <VExpressMotherBoard.h>
 
 // This 'enum' is needed as variations based on existing platform exist
@@ -38,8 +36,12 @@
   ARM_FVP_VEXPRESS_A15x1_A7x1,
   ARM_FVP_VEXPRESS_A15x4_A7x4,
   ARM_FVP_VEXPRESS_AEMv8x4,
-  ARM_FVP_BASE,
-  ARM_FVP_FOUNDATION,
+  ARM_FVP_BASE_AEMv8x4_AEMv8x4_GICV2,
+  ARM_FVP_BASE_AEMv8x4_AEMv8x4_GICV2_LEGACY,
+  ARM_FVP_BASE_AEMv8x4_AEMv8x4_GICV3,
+  ARM_FVP_FOUNDATION_GICV2,
+  ARM_FVP_FOUNDATION_GICV2_LEGACY,
+  ARM_FVP_FOUNDATION_GICV3,
   ARM_HW_A9x4,
   ARM_HW_A15x2_A7x3,
   ARM_HW_A15,

Modified: trunk/edk2/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressPkg.dec
===================================================================
--- trunk/edk2/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressPkg.dec 2015-07-08 
13:41:09 UTC (rev 17888)
+++ trunk/edk2/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressPkg.dec 2015-07-08 
16:20:30 UTC (rev 17889)
@@ -73,5 +73,9 @@
 
   # AArch64 FVP platforms
   gArmVExpressTokenSpaceGuid.PcdFdtFvpVExpressAEMv8x4|{ 0xa8, 0x95, 0x5f, 
0xf6, 0x32, 0x7b, 0xf3, 0x16, 0x12, 0x32, 0x45, 0x50, 0xbd, 0x54, 0xca, 0xe5 
}|VOID*|0x00000010
-  gArmVExpressTokenSpaceGuid.PcdFdtFvpBaseAEMv8x4|{ 0x66, 0xcf, 0x57, 0xa4, 
0xac, 0x7e, 0x7f, 0x3d, 0x21, 0x88, 0x3a, 0x58, 0x3c, 0x27, 0xd7, 0xe8 
}|VOID*|0x00000011
-  gArmVExpressTokenSpaceGuid.PcdFdtFvpFoundation|{ 0x36, 0x4f, 0x61, 0x92, 
0x86, 0xb1, 0xa2, 0x16, 0x32, 0x65, 0x35, 0x3f, 0x01, 0xf3, 0x3b, 0x64 
}|VOID*|0x00000014
+  gArmVExpressTokenSpaceGuid.PcdFdtFvpBaseAEMv8x4GicV2|{ 0x66, 0xcf, 0x57, 
0xa4, 0xac, 0x7e, 0x7f, 0x3d, 0x21, 0x88, 0x3a, 0x58, 0x3c, 0x27, 0xd7, 0xe8 
}|VOID*|0x00000011
+  gArmVExpressTokenSpaceGuid.PcdFdtFvpBaseAEMv8x4GicV2Legacy|{ 0x8b, 0xcb, 
0xe0, 0x14, 0xd1, 0x46, 0x79, 0xae, 0x7f, 0x20, 0xcf, 0x84, 0x22, 0xc7, 0x94, 
0x4a }|VOID*|0x00000012
+  gArmVExpressTokenSpaceGuid.PcdFdtFvpBaseAEMv8x4GicV3|{ 0x4d, 0x03, 0xb8, 
0x77, 0x63, 0x25, 0x0a, 0x7f, 0xe9, 0x72, 0xfa, 0x68, 0x74, 0xc7, 0x5e, 0xb5 
}|VOID*|0x00000013
+  gArmVExpressTokenSpaceGuid.PcdFdtFvpFoundationGicV2|{ 0x36, 0x4f, 0x61, 
0x92, 0x86, 0xb1, 0xa2, 0x16, 0x32, 0x65, 0x35, 0x3f, 0x01, 0xf3, 0x3b, 0x64 
}|VOID*|0x00000014
+  gArmVExpressTokenSpaceGuid.PcdFdtFvpFoundationGicV2Legacy|{ 0xf6, 0xcb, 
0x9d, 0x86, 0x38, 0x74, 0x8a, 0xb0, 0xfe, 0x40, 0x08, 0x0f, 0x3f, 0xb3, 0x50, 
0x7c }|VOID*|0x00000015
+  gArmVExpressTokenSpaceGuid.PcdFdtFvpFoundationGicV3|{ 0x51, 0xd0, 0x75, 
0x6b, 0x9d, 0x35, 0x1b, 0x1b, 0xa6, 0xc6, 0xab, 0xa0, 0x90, 0xf9, 0xf0, 0x0a 
}|VOID*|0x00000016


------------------------------------------------------------------------------
Don't Limit Your Business. Reach for the Cloud.
GigeNET's Cloud Solutions provide you with the tools and support that
you need to offload your IT needs and focus on growing your business.
Configured For All Businesses. Start Your Cloud Today.
https://www.gigenetcloud.com/
_______________________________________________
edk2-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-commits

Reply via email to