From 815ada26cb7069d1121153c4e661e796c9e1da25 Mon Sep 17 00:00:00 2001 From: Yonghong Zhu <yonghong.zhu@intel.com> Date: Wed, 9 Mar 2016 14:03:39 +0800 Subject: BaseTools: report warning if VOID* PCD with {} value is not 8-byte aligned For VOID* Pcd with {} value, If platform developer wants to put in a specific hex offset value that is not 8-byte aligned for VOID * then we allow it with a warning message. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com> --- BaseTools/Source/Python/BPDG/GenVpd.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'BaseTools/Source/Python/BPDG/GenVpd.py') diff --git a/BaseTools/Source/Python/BPDG/GenVpd.py b/BaseTools/Source/Python/BPDG/GenVpd.py index ee7e04295f..003011b709 100644 --- a/BaseTools/Source/Python/BPDG/GenVpd.py +++ b/BaseTools/Source/Python/BPDG/GenVpd.py @@ -420,8 +420,16 @@ class GenVPD : Alignment = 2 else: Alignment = 1 - if PCD.PcdOccupySize % Alignment != 0: - PCD.PcdOccupySize = (PCD.PcdOccupySize / Alignment + 1) * Alignment + + if PCD.PcdOffset != '*': + if PCD.PcdOccupySize % Alignment != 0: + if PCD.PcdUnpackValue.startswith("{"): + EdkLogger.warn("BPDG", "The offset value of PCD %s is not 8-byte aligned!" %(PCD.PcdCName), File=self.InputFileName) + else: + EdkLogger.error("BPDG", BuildToolError.FORMAT_INVALID, 'The offset value of PCD %s should be %s-byte aligned.' % (PCD.PcdCName, Alignment)) + else: + if PCD.PcdOccupySize % Alignment != 0: + PCD.PcdOccupySize = (PCD.PcdOccupySize / Alignment + 1) * Alignment # # Translate PCD size string to an integer value. -- cgit v1.2.3