## @ FspTool.py\r
#\r
-# Copyright (c) 2015 - 2020, Intel Corporation. All rights reserved.<BR>\r
+# Copyright (c) 2015 - 2021, Intel Corporation. All rights reserved.<BR>\r
# SPDX-License-Identifier: BSD-2-Clause-Patent\r
#\r
##\r
\r
class FSP_INFORMATION_HEADER(Structure):\r
_fields_ = [\r
- ('Signature', ARRAY(c_char, 4)),\r
- ('HeaderLength', c_uint32),\r
- ('Reserved1', c_uint16),\r
- ('SpecVersion', c_uint8),\r
- ('HeaderRevision', c_uint8),\r
- ('ImageRevision', c_uint32),\r
- ('ImageId', ARRAY(c_char, 8)),\r
- ('ImageSize', c_uint32),\r
- ('ImageBase', c_uint32),\r
- ('ImageAttribute', c_uint16),\r
- ('ComponentAttribute', c_uint16),\r
- ('CfgRegionOffset', c_uint32),\r
- ('CfgRegionSize', c_uint32),\r
- ('Reserved2', c_uint32),\r
- ('TempRamInitEntryOffset', c_uint32),\r
- ('Reserved3', c_uint32),\r
- ('NotifyPhaseEntryOffset', c_uint32),\r
- ('FspMemoryInitEntryOffset', c_uint32),\r
- ('TempRamExitEntryOffset', c_uint32),\r
- ('FspSiliconInitEntryOffset', c_uint32)\r
+ ('Signature', ARRAY(c_char, 4)),\r
+ ('HeaderLength', c_uint32),\r
+ ('Reserved1', c_uint16),\r
+ ('SpecVersion', c_uint8),\r
+ ('HeaderRevision', c_uint8),\r
+ ('ImageRevision', c_uint32),\r
+ ('ImageId', ARRAY(c_char, 8)),\r
+ ('ImageSize', c_uint32),\r
+ ('ImageBase', c_uint32),\r
+ ('ImageAttribute', c_uint16),\r
+ ('ComponentAttribute', c_uint16),\r
+ ('CfgRegionOffset', c_uint32),\r
+ ('CfgRegionSize', c_uint32),\r
+ ('Reserved2', c_uint32),\r
+ ('TempRamInitEntryOffset', c_uint32),\r
+ ('Reserved3', c_uint32),\r
+ ('NotifyPhaseEntryOffset', c_uint32),\r
+ ('FspMemoryInitEntryOffset', c_uint32),\r
+ ('TempRamExitEntryOffset', c_uint32),\r
+ ('FspSiliconInitEntryOffset', c_uint32),\r
+ ('FspMultiPhaseSiInitEntryOffset', c_uint32),\r
+ ('ExtendedImageRevision', c_uint16),\r
+ ('Reserved4', c_uint16)\r
]\r
\r
class FSP_PATCH_TABLE(Structure):\r
if IsStrType (val):\r
rep = HandleNameStr (val)\r
elif IsIntegerType (val):\r
- rep = '0x%X' % val\r
+ if (key == 'ImageRevision'):\r
+ FspImageRevisionMajor = ((val >> 24) & 0xFF)\r
+ FspImageRevisionMinor = ((val >> 16) & 0xFF)\r
+ FspImageRevisionRevision = ((val >> 8) & 0xFF)\r
+ FspImageRevisionBuildNumber = (val & 0xFF)\r
+ rep = '0x%08X' % val\r
+ elif (key == 'ExtendedImageRevision'):\r
+ FspImageRevisionRevision |= (val & 0xFF00)\r
+ FspImageRevisionBuildNumber |= ((val << 8) & 0xFF00)\r
+ rep = "0x%04X ('%02X.%02X.%04X.%04X')" % (val, FspImageRevisionMajor, FspImageRevisionMinor, FspImageRevisionRevision, FspImageRevisionBuildNumber)\r
+ elif field[1] == c_uint64:\r
+ rep = '0x%016X' % val\r
+ elif field[1] == c_uint32:\r
+ rep = '0x%08X' % val\r
+ elif field[1] == c_uint16:\r
+ rep = '0x%04X' % val\r
+ elif field[1] == c_uint8:\r
+ rep = '0x%02X' % val\r
+ else:\r
+ rep = '0x%X' % val\r
elif isinstance(val, c_uint24):\r
rep = '0x%X' % val.get_value()\r
elif 'c_ubyte_Array' in str(type(val)):\r