Reviewed-By: Olivier Martin <olivier.mar...@arm.com>

-----Original Message-----
From: Ard Biesheuvel [mailto:ard.biesheu...@linaro.org]
Sent: 05 May 2015 15:49
To: Olivier Martin; edk2-devel@lists.sourceforge.net; Ronald Cron
Cc: leif.lindh...@linaro.org; roy.fr...@linaro.org; ler...@redhat.com; Ard 
Biesheuvel
Subject: [PATCH 3/5] ArmVExpressPkg: use named GUIDs for all VExpress variants

Instead of using open coded GUIDs, define them only once, and refer to them by 
name everywhere else.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheu...@linaro.org>
---
 ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/AArch64/ArmFvpDxeAArch64.c | 17 
++++++++---------
 ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/Arm/ArmFvpDxeArm.c         | 11 
+++++------
 ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmFvpDxe.inf              | 15 
+++++++++++++++
 ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmVExpressInternal.h      |  4 
++--
 ArmPlatformPkg/ArmVExpressPkg/ArmVExpressPkg.dec                        | 17 
+++++++++++++----
 5 files changed, 43 insertions(+), 21 deletions(-)

diff --git 
a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/AArch64/ArmFvpDxeAArch64.c 
b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/AArch64/ArmFvpDxeAArch64.c
index 09e859f0c5a0..05311553449f 100644
--- a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/AArch64/ArmFvpDxeAArch64.c
+++ b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/AArch64/ArmFvpDxeAArc
+++ h64.c
@@ -17,20 +17,19 @@

 //
 // Description of the AARCH64 model platforms :
-// just the platform id for the time being.
 // Platform ids are defined in ArmVExpressInternal.h for  // all 
"ArmVExpress-like" platforms (AARCH64 or ARM architecture,  // model or 
hardware platforms).
 //
 CONST ARM_VEXPRESS_PLATFORM ArmVExpressPlatforms[] = {
-  { ARM_FVP_VEXPRESS_AEMv8x4, { 0x240d627e, 0xeb4d, 0x447d, { 0x86, 0x30, 
0xf2, 0x12, 0x3b, 0xc3, 0x89, 0x3f } }, L"rtsm_ve-aemv8a.dtb" },
-  { ARM_FVP_BASE_AEMv8x4_AEMv8x4_GICV2, { 0xfbed0b94, 0x3c81, 0x49e4, { 0xbd, 
0xec, 0xd4, 0xf4, 0xa8, 0x47, 0xeb, 0x51 } }, L"fvp-base-gicv2-psci.dtb" },
-  { ARM_FVP_BASE_AEMv8x4_AEMv8x4_GICV2_LEGACY, { 0x6d8dfd91, 0x431a, 0x4e6c, { 
0x84, 0x5a, 0x15, 0xf1, 0xfc, 0x8d, 0x9b, 0xe2 } }, 
L"fvp-base-gicv2legacy-psci.dtb" },
-  { ARM_FVP_BASE_AEMv8x4_AEMv8x4_GICV3, { 0xa8ac2953, 0xc4bb, 0x4914, { 0x87, 
0xf5, 0xc5, 0x97, 0x5d, 0x7b, 0x32, 0xd1 } }, L"fvp-base-gicv3-psci.dtb" },
-  { ARM_FVP_FOUNDATION_GICV2, { 0x4328cb83, 0x6e50, 0x4cb8, { 0xaa, 0x8c, 
0xfb, 0x7a, 0xba, 0xba, 0x37, 0xd8 } }, L"fvp-foundation-gicv2-psci.dtb" },
-  { ARM_FVP_FOUNDATION_GICV2_LEGACY, { 0x6af00d18, 0x6dfe, 0x45ed, { 0xa6, 
0xc4, 0xb4, 0x4d, 0x57, 0xfd, 0xd8, 0xf5 } }, 
L"fvp-foundation-gicv2legacy-psci.dtb" },
-  { ARM_FVP_FOUNDATION_GICV3, { 0x4a17b7fa, 0xf052, 0x4dc1, { 0x92, 0x79, 
0x43, 0x80, 0x92, 0x41, 0xf9, 0x98 } }, L"fvp-foundation-gicv3-psci.dtb" },
-  { ARM_FVP_VEXPRESS_UNKNOWN, { 0x0, 0x0, 0x0, { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
0x0, 0x0 } } }
+  { 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 }
 };

 /**
diff --git a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/Arm/ArmFvpDxeArm.c 
b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/Arm/ArmFvpDxeArm.c
index 5ec27a5bb942..f6a1a8f1e4af 100644
--- a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/Arm/ArmFvpDxeArm.c
+++ b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/Arm/ArmFvpDxeArm.c
@@ -17,17 +17,16 @@

 //
 // Description of the four ARM model platforms :
-// just the platform id for the time being.
 // Platform ids are defined in ArmVExpressInternal.h for  // all 
"ArmVExpress-like" platforms (AARCH64 or ARM architecture,  // model or 
hardware platforms).
 //
 CONST ARM_VEXPRESS_PLATFORM ArmVExpressPlatforms[] = {
-  { ARM_FVP_VEXPRESS_A9x4, { 0x943f2ae9, 0x51b2, 0x48b2, { 0x82, 0xc4, 0x9a, 
0xeb, 0x2c, 0x21, 0xd8, 0xe1 } }, L"rtsm_ve-cortex_a9x4.dtb" },
-  { ARM_FVP_VEXPRESS_A15x1, { 0x581930c3, 0x9f53, 0x4c53, { 0x91, 0x23, 0x43, 
0xb8, 0x65, 0xdf, 0x3f, 0x23} }, L"rtsm_ve-cortex_a15x1.dtb" },
-  { ARM_FVP_VEXPRESS_A15x2, { 0x3f10b34a, 0xa310, 0x472c, { 0xac, 0xb9, 0x36, 
0x0b, 0x1d, 0xb5, 0x7a, 0x8b} }, L"rtsm_ve-cortex_a15x2.dtb" },
-  { ARM_FVP_VEXPRESS_A15x4, { 0x9a783838, 0x8a77, 0x4cdb, { 0x82, 0xa4, 0x35, 
0x91, 0x2c, 0x08, 0x8a, 0x2e} }, L"rtsm_ve-cortex_a15x4.dtb" },
-  { ARM_FVP_VEXPRESS_UNKNOWN, { 0x0, 0x0, 0x0, { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
0x0, 0x0 } } }
+  { ARM_FVP_VEXPRESS_A9x4,  FixedPcdGetPtr(PcdFdtVExpressFvpA9x4),
+ L"rtsm_ve-cortex_a9x4.dtb"  },  { ARM_FVP_VEXPRESS_A15x1,
+ FixedPcdGetPtr(PcdFdtVExpressFvpA15x1), L"rtsm_ve-cortex_a15x1.dtb" },
+ { ARM_FVP_VEXPRESS_A15x2, FixedPcdGetPtr(PcdFdtVExpressFvpA15x2),
+ L"rtsm_ve-cortex_a15x2.dtb" },  { ARM_FVP_VEXPRESS_A15x4,
+ FixedPcdGetPtr(PcdFdtVExpressFvpA15x4), L"rtsm_ve-cortex_a15x4.dtb" },
+ { ARM_FVP_VEXPRESS_UNKNOWN, }
 };

 /**
diff --git a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmFvpDxe.inf 
b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmFvpDxe.inf
index 01d9f5002b40..ec7a66552deb 100644
--- a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmFvpDxe.inf
+++ b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmFvpDxe.inf
@@ -55,5 +55,20 @@
 [FixedPcd]
   gArmVExpressTokenSpaceGuid.PcdFvpFdtDevicePathsBase

+[FixedPcd.ARM]
+  gArmVExpressTokenSpaceGuid.PcdFdtVExpressFvpA9x4
+  gArmVExpressTokenSpaceGuid.PcdFdtVExpressFvpA15x1
+  gArmVExpressTokenSpaceGuid.PcdFdtVExpressFvpA15x2
+  gArmVExpressTokenSpaceGuid.PcdFdtVExpressFvpA15x4
+
+[FixedPcd.AARCH64]
+  gArmVExpressTokenSpaceGuid.PcdFdtFvpVExpressAEMv8x4
+  gArmVExpressTokenSpaceGuid.PcdFdtFvpBaseAEMv8x4GicV2
+  gArmVExpressTokenSpaceGuid.PcdFdtFvpBaseAEMv8x4GicV2Legacy
+  gArmVExpressTokenSpaceGuid.PcdFdtFvpBaseAEMv8x4GicV3
+  gArmVExpressTokenSpaceGuid.PcdFdtFvpFoundationGicV2
+  gArmVExpressTokenSpaceGuid.PcdFdtFvpFoundationGicV2Legacy
+  gArmVExpressTokenSpaceGuid.PcdFdtFvpFoundationGicV3
+
 [Pcd]
   gEmbeddedTokenSpaceGuid.PcdFdtDevicePaths
diff --git a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmVExpressInternal.h 
b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmVExpressInternal.h
index 41019c1198c7..e123eea2d28b 100644
--- a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmVExpressInternal.h
+++ b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmVExpressInternal.h
@@ -52,8 +52,8 @@ typedef struct {
   ARM_VEXPRESS_PLATFORM_ID  Id;

   // Flattened Device Tree (FDT) File
-  EFI_GUID                  FdtGuid; /// Name of the FDT when present into the 
FV
-  CONST CHAR16*             FdtName; /// Name of the FDT when present into a 
File System
+  CONST EFI_GUID            *FdtGuid; /// Name of the FDT when present into 
the FV
+  CONST CHAR16              *FdtName; /// Name of the FDT when present into a 
File System
 } ARM_VEXPRESS_PLATFORM;

 // Array that contains the list of the VExpress based platform supported by 
this DXE driver diff --git a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressPkg.dec 
b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressPkg.dec
index e8108bc34b56..e8e6e76987ec 100644
--- a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressPkg.dec
+++ b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressPkg.dec
@@ -65,12 +65,21 @@
   # ARM Versatile Express FDT Guids
   #
   # FVP platforms
-  gArmVExpressTokenSpaceGuid.PcdFdtVExpressFvpA9x4|{ 0xe9, 0x2a, 0x3f, 0x94, 
0xb2, 0x51, 0xb2, 0x48, 0x48, 0xb2, 0x82, 0xc4, 0x9a, 0xeb, 0x2c, 0x21, 0xd8, 
0xe1 }|VOID*|0x00000007
-  gArmVExpressTokenSpaceGuid.PcdFdtVExpressFvpA15x1|{ 0xc3, 0x30, 0x19, 0x58 
0x53, 0x9f, 0x53, 0x4c, 0x4, 0xc53, 0x91, 0x23, 0x43, 0xb8, 0x65, 0xdf, 0x3f, 
0x23 }|VOID*|0x00000008
-  gArmVExpressTokenSpaceGuid.PcdFdtVExpressFvpA15x2|{ 0x4a, 0xb3, 0x10, 0x3f 
0x10, 0xa3, 0x2c, 0x47, 0xac, 0xb9, 0x36, 0x0b, 0x1d, 0xb5, 0x7a, 0x8b 
}|VOID*|0x00000009
-  gArmVExpressTokenSpaceGuid.PcdFdtVExpressFvpA15x4|{ 0x38, 0x38, 0x78, 0x9a, 
0x77, 0x8a, 0xdb, 0x4c, 0x82, 0xa4, 0x35, 0x91, 0x2c, 0x08, 0x8a, 0x2e 
}|VOID*|0x0000000A
+  gArmVExpressTokenSpaceGuid.PcdFdtVExpressFvpA9x4|{ 0x12, 0x7b, 0xdf,
+ 0xa1, 0x60, 0x11, 0xcf, 0x16, 0xb8, 0xc6, 0x98, 0xde, 0xdf, 0xe2,
+ 0xce, 0xae }|VOID*|0x00000007
+ gArmVExpressTokenSpaceGuid.PcdFdtVExpressFvpA15x1|{ 0xe5, 0x1b, 0xc0,
+ 0x96, 0xeb, 0xd7, 0x1a, 0x42, 0xc8, 0xe8, 0x6a, 0xfd, 0x5a, 0x86,
+ 0x1d, 0x84 }|VOID*|0x00000008
+ gArmVExpressTokenSpaceGuid.PcdFdtVExpressFvpA15x2|{ 0x84, 0x43, 0x70,
+ 0x4d, 0x19, 0xf1, 0x29, 0xe3, 0xef, 0xcd, 0xa5, 0x9b, 0x3d, 0x0a,
+ 0x5a, 0x5f }|VOID*|0x00000009
+ gArmVExpressTokenSpaceGuid.PcdFdtVExpressFvpA15x4|{ 0x72, 0x3b, 0x28,
+ 0x27, 0x90, 0x2f, 0xca, 0x4d, 0x9a, 0xb5, 0x98, 0x48, 0xfb, 0xc2,
+ 0xd4, 0xed }|VOID*|0x0000000A
   # HW platforms
   gArmVExpressTokenSpaceGuid.PcdFdtVExpressHwA9x4|{ 0xf6, 0x1c, 0xd2, 0x2f, 
0xe8, 0xe6, 0xf2, 0x4f, 0xa9, 0xca, 0x3b, 0x9f, 0x00, 0xe9, 0x28, 0x89 
}|VOID*|0x0000000B
   gArmVExpressTokenSpaceGuid.PcdFdtVExpressHwA15x2A7x3|{ 0xeb, 0x06, e6, 0xd5, 
0xdf, 0x83, 0x90, 0x4e, 0x81, 0xe8, 0xc3, 0xdb, 0x2f, 0x77, 0x17, 0x9a 
}|VOID*|0x0000000C
   gArmVExpressTokenSpaceGuid.PcdFdtVExpressHwA15|{ 0xc2, 0x47, 0x89, 0x6b, 
0x87, 0x42, 0x91, 0x4d, 0x8f, 0xe0, 0xa3, 0x81, 0xea, 0x5b, 0x56, 0x8f 
}|VOID*|0x0000000D
   gArmVExpressTokenSpaceGuid.PcdFdtVExpressHwA5|{ 0x63, 0x76, 0xcc, 0xa2, 
0x7c, 0x4d, 0x8a, 0x44, 0xaa, 0xb5, 0x4c, 0x03, 0x4b, 0x6f, 0xda, 0xb7 
}|VOID*|0x0000000E
+
+  # AArch64 FVP platforms
+  gArmVExpressTokenSpaceGuid.PcdFdtFvpVExpressAEMv8x4|{ 0xa8, 0x95,
+ 0x5f, 0xf6, 0x32, 0x7b, 0xf3, 0x16, 0x12, 0x32, 0x45, 0x50, 0xbd,
+ 0x54, 0xca, 0xe5 }|VOID*|0x00000010
+ 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
--
1.9.1


-- IMPORTANT NOTICE: The contents of this email and any attachments are 
confidential and may also be privileged. If you are not the intended recipient, 
please notify the sender immediately and do not disclose the contents to any 
other person, use it for any purpose, or store or copy the information in any 
medium.  Thank you.

ARM Limited, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ, Registered 
in England & Wales, Company No:  2557590
ARM Holdings plc, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ, 
Registered in England & Wales, Company No:  2548782


------------------------------------------------------------------------------
One dashboard for servers and applications across Physical-Virtual-Cloud 
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to