ArmPlatformPkg/FVP: use 'auto' alignment and FIXED placement for XIP modules

This commit is a direct copy of the changes from this commit applied to
Tianocore EDK2 [1]:

  commit 16d11eed2933e2ef3d611cba2453b9d6484a83e4
  Author: Ard Biesheuvel <ard.biesheuvel@linaro.org>
  Date:   Mon Aug 10 07:55:10 2015 +0000

    ArmPlatformPkg/FVP: use 'auto' alignment and FIXED placement for XIP modules

    Now that GenFw correctly propagates the minimum alignment of the ELF
    input sections to the PE/COFF binary, we can simply select 'auto'
    alignment in the FDF Rule section instead of tweaking it by hand.

    Also add the FIXED FFS attribute to the module types that may execute
    in place. This enables a newly added optimization in GenFfs that strips
    redundant padding, preventing excessive waste of FV space if the section
    alignment is considerable (i.e., 2 KB or 4 KB)

    Contributed-under: TianoCore Contribution Agreement 1.0
    Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
    Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
    Tested-by: Leif Lindholm <leif.lindholm@linaro.org>

    git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18196 6f19259b-4bc3-4df7-8a09-765794883524

[1] http://sourceforge.net/p/tianocore/edk2/ci/16d11eed2933e2ef3d611cba2453b9d6484a83e4/

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ryan Harkin <ryan.harkin@linaro.org>
diff --git a/Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.fdf b/Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.fdf
index 05cd173..63bd09a 100644
--- a/Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.fdf
+++ b/Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.fdf
@@ -345,20 +345,20 @@
 ############################################################################

 

 [Rule.Common.SEC]

-  FILE SEC = $(NAMED_GUID) RELOCS_STRIPPED {

-    TE  TE Align = 4K                  $(INF_OUTPUT)/$(MODULE_NAME).efi

+  FILE SEC = $(NAMED_GUID) RELOCS_STRIPPED FIXED {

+    TE  TE Align = Auto                 $(INF_OUTPUT)/$(MODULE_NAME).efi

   }

 

 [Rule.Common.PEI_CORE]

-  FILE PEI_CORE = $(NAMED_GUID) {

-    TE     TE Align = 8                 $(INF_OUTPUT)/$(MODULE_NAME).efi

+  FILE PEI_CORE = $(NAMED_GUID) FIXED {

+    TE     TE Align = Auto              $(INF_OUTPUT)/$(MODULE_NAME).efi

     UI     STRING ="$(MODULE_NAME)" Optional

   }

 

 [Rule.Common.PEIM]

-  FILE PEIM = $(NAMED_GUID) {

+  FILE PEIM = $(NAMED_GUID) FIXED {

      PEI_DEPEX PEI_DEPEX Optional       $(INF_OUTPUT)/$(MODULE_NAME).depex

-     TE       TE Align = 8              $(INF_OUTPUT)/$(MODULE_NAME).efi

+     TE       TE Align = Auto           $(INF_OUTPUT)/$(MODULE_NAME).efi

      UI       STRING="$(MODULE_NAME)" Optional

   }