IntelFsp2Pkg: Align #Pragma in UPD header files to rest of EDK2 Pkgs
authorSatya Yarlagadda <satya.p.yarlagadda@intel.com>
Sat, 17 Sep 2016 03:24:49 +0000 (11:24 +0800)
committerJiewen Yao <jiewen.yao@intel.com>
Tue, 20 Sep 2016 03:38:11 +0000 (11:38 +0800)
Changed the GenCfgOpt.py script to insert pragma pack(1) instead of
pragma pack (push, 1) in the upd header files generated during fsp build.
This is to align with rest of the EDKII pkgs pragma pack usage.

Also, this scripts generates UnusedUpdSpace for UPD address gaps.
Currently it uses UIN16/UINT32/UINT64 for 2/4/8 bytes instead of UINT8[],
thus causing upd space waste to have Natural Alignment. Hence changed the
script to use UINT8[] for any unusedUpd fields above 1 byte.

Cc: Maurice Ma <maurice.ma@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Giri P Mudusuru <giri.p.mudusuru@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Satya Yarlagadda <satya.p.yarlagadda@intel.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
Reviewed-by: Giri P Mudusuru <giri.p.mudusuru@intel.com>
IntelFsp2Pkg/Tools/GenCfgOpt.py

index e8cec95..654cdfc 100644 (file)
@@ -875,6 +875,9 @@ EndList
         IsArray = False\r
         if Length in [1,2,4,8]:\r
             Type = "UINT%d" % (Length * 8)\r
+            if Name.startswith("UnusedUpdSpace") and Length != 1:\r
+                IsArray = True\r
+                Type = "UINT8"\r
         else:\r
             IsArray = True\r
             Type = "UINT8"\r
@@ -1129,7 +1132,7 @@ EndList
             HeaderFd.write("#ifndef __%s__\n"   % FileName)\r
             HeaderFd.write("#define __%s__\n\n" % FileName)\r
             HeaderFd.write("#include <%s>\n\n" % HeaderFileName)\r
-            HeaderFd.write("#pragma pack(push, 1)\n\n")\r
+            HeaderFd.write("#pragma pack(1)\n\n")\r
 \r
             Export = False\r
             for Line in IncLines:\r
@@ -1177,7 +1180,7 @@ EndList
                 for Item in range(len(StructStart)):\r
                     if Index >= StructStartWithComment[Item] and Index <= StructEnd[Item]:\r
                         HeaderFd.write (Line)\r
-            HeaderFd.write("#pragma pack(pop)\n\n")\r
+            HeaderFd.write("#pragma pack()\n\n")\r
             HeaderFd.write("#endif\n")\r
             HeaderFd.close()\r
 \r
@@ -1188,7 +1191,7 @@ EndList
         HeaderFd.write("#ifndef __%s__\n"   % FileName)\r
         HeaderFd.write("#define __%s__\n\n" % FileName)\r
         HeaderFd.write("#include <FspEas.h>\n\n")\r
-        HeaderFd.write("#pragma pack(push, 1)\n\n")\r
+        HeaderFd.write("#pragma pack(1)\n\n")\r
 \r
         for item in range(len(UpdRegionCheck)):\r
             Index = 0\r
@@ -1222,7 +1225,7 @@ EndList
                 for Item in range(len(StructStart)):\r
                     if Index >= StructStartWithComment[Item] and Index <= StructEnd[Item]:\r
                         HeaderFd.write (Line)\r
-        HeaderFd.write("#pragma pack(pop)\n\n")\r
+        HeaderFd.write("#pragma pack()\n\n")\r
         HeaderFd.write("#endif\n")\r
         HeaderFd.close()\r
 \r