diff --git a/Platform/MeteorlakeBoardPkg/BoardConfigMtlPs.py b/Platform/MeteorlakeBoardPkg/BoardConfigMtlPs.py
new file mode 100644
index 00000000..c80fad3d
--- /dev/null
+++ b/Platform/MeteorlakeBoardPkg/BoardConfigMtlPs.py
@@ -0,0 +1,25 @@
+## @file
+# This file is used to provide board specific image information.
+#
+# Copyright (c) 2023 - 2024, Intel Corporation. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-2-Clause-Patent
+#
+
+##
+# Import Modules
+#
+import os
+import sys
+tool_dir = os.path.realpath(os.path.join(os.path.dirname (os.path.realpath(__file__)), '..', 'MeteorlakeBoardPkg'))
+sys.path.append (tool_dir)
+
+import BoardConfigMtlp as MeteorlakeBoardConfig
+
+class Board(MeteorlakeBoardConfig.Board):
+ def __init__(self, *args, **kwargs):
+ super(Board, self).__init__(*args, **kwargs)
+ self.VERINFO_IMAGE_ID = 'SB_MTLPS'
+ self.BOARD_NAME = 'mtlps'
+ self._PS_SUPPORT = True
+ self.ACPI_TABLE_INF_FILE = 'Platform/MeteorlakeBoardPkg/AcpiTables/AcpiTablesPs.inf'
diff --git a/Platform/MeteorlakeBoardPkg/BoardConfigMtlp.py b/Platform/MeteorlakeBoardPkg/BoardConfigMtlp.py
new file mode 100644
index 00000000..7242ad46
--- /dev/null
+++ b/Platform/MeteorlakeBoardPkg/BoardConfigMtlp.py
@@ -0,0 +1,450 @@
+## @file
+# This file is used to provide board specific image information.
+#
+# Copyright (c) 2020 - 2024, Intel Corporation. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-2-Clause-Patent
+#
+
+##
+# Import Modules
+#
+import os
+import sys
+import time
+
+sys.dont_write_bytecode = True
+sys.path.append (os.path.join('..', '..'))
+from BuildLoader import *
+
+class Board(BaseBoard):
+ def __init__(self, *args, **kwargs):
+
+ super(Board, self).__init__(*args, **kwargs)
+
+ self.VERINFO_IMAGE_ID = 'SB_MTLP'
+ self.VERINFO_PROJ_MAJOR_VER = 0
+ self.VERINFO_PROJ_MINOR_VER = 0
+ self.VERINFO_SVN = 1
+ self.VERINFO_BUILD_DATE = time.strftime("%m/%d/%Y")
+
+ self.BOARD_NAME = 'mtl'
+ self.BOARD_PKG_NAME = 'MeteorlakeBoardPkg'
+ self.SILICON_PKG_NAME = 'MeteorlakePkg'
+ self.FSP_IMAGE_ID = '$MTLFSP$'
+ self._EXTRA_INC_PATH = ['Silicon/MeteorlakePkg/FspBin']
+ self._FSP_PATH_NAME = 'Silicon/MeteorlakePkg/FspBin'
+ self.FSP_INF_FILE = 'Silicon/MeteorlakePkg/FspBin/FspBin.inf'
+ self.MICROCODE_INF_FILE = 'Silicon/MeteorlakePkg/Microcode/Microcode.inf'
+
+ self._LP_SUPPORT = False
+ self._N_SUPPORT = False
+ self._PS_SUPPORT = False
+
+ self.PCI_EXPRESS_BASE = 0xC0000000
+ self.PCI_IO_BASE = 0x00002000
+ self.PCI_MEM32_BASE = 0x80000000
+ self.ACPI_PM_TIMER_BASE = 0x1808
+
+ self.FLASH_LAYOUT_START = 0x100000000 # 4GB Top
+ self.FLASH_BASE_SIZE = 0x02000000 # 32MB
+ self.FLASH_BASE_ADDRESS = (self.FLASH_LAYOUT_START - self.FLASH_BASE_SIZE)
+ self.LOADER_ACPI_RECLAIM_MEM_SIZE = 0x000090000
+ self.HAVE_FIT_TABLE = 1
+ self.HAVE_VBT_BIN = 1 # TBD
+ self.HAVE_VERIFIED_BOOT = 1
+ self.HAVE_MEASURED_BOOT = 1
+ self.HAVE_FLASH_MAP = 1
+ self.HAVE_ACPI_TABLE = 1
+ self.HAVE_PSD_TABLE = 1
+ self.ENABLE_SPLASH = 1
+ self.ENABLE_FRAMEBUFFER_INIT = 1
+ self.ENABLE_VTD = 1
+ # To enable source debug, set 1 to self.ENABLE_SOURCE_DEBUG
+ self.ENABLE_SOURCE_DEBUG = 0
+ # If ENABLE_SOURCE_DEBUG is disabled, SKIP_STAGE1A_SOURCE_DEBUG will be ignored
+ self.SKIP_STAGE1A_SOURCE_DEBUG = 1
+ # 0: Disable 1: Enable 2: Auto (disable for UEFI payload, enable for others)
+ self.ENABLE_SMM_REBASE = 2
+
+ # 0 - PCH UART0, 1 - PCH UART1, 2 - PCH UART2, 0xFF - EC UART 0x3F8
+ self.DEBUG_PORT_NUMBER = 0x0
+
+ self.ENABLE_MULTI_USB_BOOT_DEV = 1
+
+ self.CPU_MAX_LOGICAL_PROCESSOR_NUMBER = 32
+
+ self.SUPPORT_X2APIC = 0
+
+ self.ENABLE_GRUB_CONFIG = 1
+
+ if self.HAVE_FIT_TABLE:
+ self.FIT_ENTRY_MAX_NUM = 17
+
+ # RSA2048 or RSA3072
+ self._RSA_SIGN_TYPE = 'RSA3072'
+
+ # 'SHA2_256' or 'SHA2_384'
+ self._SIGN_HASH = 'SHA2_384'
+
+ # 0x01 for SHA2_256 or 0x02 for SHA2_384
+ self.SIGN_HASH_TYPE = HASH_TYPE_VALUE[self._SIGN_HASH]
+
+ # 0x0010 for SM3_256 | 0x0008 for SHA2_512 | 0x0004 for SHA2_384 | 0x0002 for SHA2_256 | 0x0001 for SHA1
+ self.IPP_HASH_LIB_SUPPORTED_MASK = IPP_CRYPTO_ALG_MASK['SHA2_384'] | IPP_CRYPTO_ALG_MASK['SHA2_256']
+ # G9 for 384 | W7 Opt for SHA384| Ni Opt for SHA256| V8 Opt for SHA256
+ self.ENABLE_CRYPTO_SHA_OPT = IPP_CRYPTO_OPTIMIZATION_MASK['SHA256_NI'] | IPP_CRYPTO_OPTIMIZATION_MASK['SHA384_W7']
+
+ # Key configuration
+ self._MASTER_PRIVATE_KEY = 'KEY_ID_MASTER' + '_' + self._RSA_SIGN_TYPE
+ self._CFGDATA_PRIVATE_KEY = 'KEY_ID_CFGDATA' + '_' + self._RSA_SIGN_TYPE
+ self._CONTAINER_PRIVATE_KEY = 'KEY_ID_CONTAINER' + '_' + self._RSA_SIGN_TYPE
+ self.ENABLE_SMP_INIT = 1 # SMP is N/A on SIMICS
+ self.ENABLE_FWU = 1
+ self.ENABLE_SMBIOS = 1
+
+ self.ENABLE_CSME_UPDATE = 1
+
+ # CSME update library is required to enable this option and will be available as part of CSME kit
+ self.BUILD_CSME_UPDATE_DRIVER = 0
+
+ self.STAGE1A_XIP = 1
+ self.STAGE1B_XIP = 1
+ self.STAGE2_XIP = 0
+
+ self.STAGE1A_SIZE = 0x00020000
+ self.STAGE1_STACK_SIZE = 0x00002000
+ self.STAGE1_DATA_SIZE = 0x00014000
+ self.FSP_M_STACK_TOP = 0xFEF7FF00
+ self.STAGE1B_SIZE = 0x00200000
+ self.STAGE2_SIZE = 0x000C1000
+ self.STAGE2_FD_BASE = 0x01000000
+ self.STAGE2_FD_SIZE = 0x001F0000
+
+ self.PAYLOAD_SIZE = 0x0002C000
+ self.EPAYLOAD_SIZE = 0x00187000
+
+ self.ENABLE_FAST_BOOT = 0
+ if self.ENABLE_FAST_BOOT:
+ self.ENABLE_SPLASH = 0
+ self.ENABLE_FRAMEBUFFER_INIT = 0
+ self.RELEASE_MODE = 1
+ self.HAVE_VERIFIED_BOOT = 0
+ self.HAVE_MEASURED_BOOT = 0
+ self.VERIFIED_BOOT_HASH_MASK = 0
+
+ if self.RELEASE_MODE and self.ENABLE_FAST_BOOT:
+ self.STAGE1A_SIZE = 0x00016000
+ self.STAGE1B_SIZE = 0x000E0000
+ self.STAGE2_SIZE = 0x000C0000
+ self.STAGE2_FD_SIZE = 0x000F0000
+ self.PAYLOAD_SIZE = 0x00024000
+
+ if self.ENABLE_SOURCE_DEBUG:
+ self.STAGE1B_SIZE += 0x4000
+ if self.SKIP_STAGE1A_SOURCE_DEBUG == 0:
+ self.STAGE1A_SIZE += 0x4000
+
+
+ self.UEFI_VARIABLE_SIZE = 0x1000
+ if len(self._PAYLOAD_NAME.split(';')) > 1:
+ self.UEFI_VARIABLE_SIZE = 0x00040000
+ self.UCODE_SIZE = 0x000B7000
+ self.UCODE_SLOT_SIZE = 0x00037000
+ self.MRCDATA_SIZE = 0x00010000
+ self.CFGDATA_SIZE = 0x00004000
+ self.KEYHASH_SIZE = 0x00001000
+ self.VARIABLE_SIZE = 0x00002000
+ self.SBLRSVD_SIZE = 0x00001000
+ self.FWUPDATE_SIZE = 0x00020000 if self.ENABLE_FWU else 0
+ # Need a little bit more for full paging table
+ self.OS_LOADER_FD_SIZE = 0x00058000
+ self.OS_LOADER_FD_NUMBLK = self.OS_LOADER_FD_SIZE // self.FLASH_BLOCK_SIZE
+
+ # If BUILD_IDENTICAL_TS is 0, the flash map sizings and layout
+ # will need to be adjusted so that uCode and Stage 1B are in
+ # redudant partition
+ self.BUILD_IDENTICAL_TS = 1
+
+ # If ENABLE_SBL_RESILIENCY is 1, BiosRedAssistance FIT strap setting
+ # needs to be manually changed to Enabled
+ self.ENABLE_SBL_RESILIENCY = 0
+
+ self.TOP_SWAP_SIZE = 0x00400000
+ self.REDUNDANT_SIZE = self.STAGE2_SIZE + self.FWUPDATE_SIZE + \
+ self.CFGDATA_SIZE + self.KEYHASH_SIZE
+
+ self.SIIPFW_SIZE = 0x1000
+
+ self.ENABLE_TCC = 0
+ if self.ENABLE_TCC:
+ self.TCC_CCFG_SIZE = 0x00001000
+ self.TCC_CRL_SIZE = 0x00008000
+ self.TCC_STREAM_SIZE = 0x00005000
+ self.SIIPFW_SIZE += self.TCC_CCFG_SIZE + self.TCC_CRL_SIZE + self.TCC_STREAM_SIZE
+
+ self.ENABLE_TSN = 0
+ if self.ENABLE_TSN:
+ self.TMAC_SIZE = 0x00001000
+ self.SIIPFW_SIZE += self.TMAC_SIZE
+
+ self.NON_REDUNDANT_SIZE = 0x3BF000 + self.SIIPFW_SIZE
+ self.NON_VOLATILE_SIZE = 0x001000
+ self.SLIMBOOTLOADER_SIZE = (self.TOP_SWAP_SIZE + self.REDUNDANT_SIZE) * 2 + \
+ self.NON_REDUNDANT_SIZE + self.NON_VOLATILE_SIZE
+ self.SLIMBOOTLOADER_SIZE = ((self.SLIMBOOTLOADER_SIZE + 0xFFFFF) & ~0xFFFFF)
+ self.PLD_HEAP_SIZE = 0x09000000
+ # self.PLD_HEAP_SIZE = 0x04000000
+ self.PLD_STACK_SIZE = 0x00020000
+ self.PLD_RSVD_MEM_SIZE = 0x00500000
+ self.KM_SIZE = 0x00000400
+ self.BPM_SIZE = 0x00000600
+ self.ACM_SIZE = 0x00040000 + self.KM_SIZE + self.BPM_SIZE
+ # adjust ACM_SIZE to meet 256KB alignment (to align 256KB ACM size)
+ if self.ACM_SIZE > 0:
+ acm_top = self.FLASH_LAYOUT_START - self.STAGE1A_SIZE
+ acm_btm = acm_top - self.ACM_SIZE
+ acm_btm = (acm_btm & 0xFFFC0000)
+ self.ACM_SIZE = acm_top - acm_btm
+
+ self.LOADER_RSVD_MEM_SIZE = 0x500000
+
+ # If mulitple VBT table support is required, list them as:
+ # {VbtImageId1 : VbtFileName1, VbtImageId2 : VbtFileName2, ...}
+ # VbtImageId is ID to identify a VBT image. It is a UINT32 number to match
+ # the ImageId field in the VBT container.
+ # VbtFileName is the VBT file name. It needs to be located under platform
+ # VbtBin folder.
+ self._MULTI_VBT_FILE = {1:'VbtMtlpCrb.dat', 2:'VbtMtlpLp5.dat', 3:'VbtMtlpRvp.dat', 4:'VbtMtlpsCrb.dat', 5:'VbtMtlpsRvp.dat'}
+
+ self.CFG_DATABASE_SIZE = self.CFGDATA_SIZE
+ self._generated_cfg_file_prefix = 'Autogen_'
+
+ self._CFGDATA_INT_FILE = []
+ self._CFGDATA_EXT_FILE = [self._generated_cfg_file_prefix + 'CfgData_Int_Mtlp_DDR5_Rvp.dlt', self._generated_cfg_file_prefix + 'CfgData_Int_Mtlps_DDR5_RVP.dlt', self._generated_cfg_file_prefix + 'CfgData_Int_Mtlps_DDR5_CRB.dlt', self._generated_cfg_file_prefix + 'CfgData_Int_Mtlp_LPDDR5_Rvp.dlt', self._generated_cfg_file_prefix + 'CfgData_Int_Mtlp_DDR5_CRB.dlt']
+
+ def PlatformBuildHook (self, build, phase):
+ if phase == 'pre-build:before':
+ # create build folder if not exist
+ if not os.path.exists(build._fv_dir):
+ os.makedirs(build._fv_dir)
+
+ # Generate the dlt files based on feature
+ brd_cfg_src_dir = os.path.join(os.environ['PLT_SOURCE'], 'Platform', self.BOARD_PKG_NAME, 'CfgData')
+ brd_cfg2_src_dir = '.'
+ if hasattr(self, 'BOARD_PKG_NAME_OVERRIDE'):
+ brd_cfg2_src_dir = os.path.join(os.environ['PLT_SOURCE'], 'Platform', self.BOARD_PKG_NAME_OVERRIDE, 'CfgData')
+ for dlt_file in self._CFGDATA_EXT_FILE:
+ cfg_dlt_file = os.path.join(brd_cfg_src_dir, dlt_file[len (self._generated_cfg_file_prefix):])
+ if not os.path.exists(cfg_dlt_file):
+ cfg_dlt_file = os.path.join(brd_cfg2_src_dir, dlt_file[len (self._generated_cfg_file_prefix):])
+ lines = open (cfg_dlt_file).read()
+
+ # Enable TCC in dlt file
+ if self.ENABLE_TCC:
+ if os.path.exists(os.path.join(brd_cfg_src_dir, 'CfgData_Tcc_Feature.dlt')):
+ lines += open (os.path.join(brd_cfg_src_dir, 'CfgData_Tcc_Feature.dlt')).read()
+ else:
+ lines += open (os.path.join(brd_cfg2_src_dir, 'CfgData_Tcc_Feature.dlt')).read()
+
+ # Enable TSN in dlt file
+ if self.ENABLE_TSN:
+ if os.path.exists(os.path.join(brd_cfg_src_dir, 'CfgData_Tsn_Feature.dlt')):
+ lines += open (os.path.join(brd_cfg_src_dir, 'CfgData_Tsn_Feature.dlt')).read()
+ else:
+ lines += open (os.path.join(brd_cfg2_src_dir, 'CfgData_Tsn_Feature.dlt')).read()
+
+ # Write to generated final dlt file
+ output_cfg_dlt_file = os.path.join(build._fv_dir, dlt_file)
+ open(output_cfg_dlt_file, 'w').write(lines)
+
+ def GetPlatformDsc (self, BuildPkgName = "BootLoaderCorePkg"):
+ dsc = {}
+ # These libraries will be added into the DSC files
+ dsc['LibraryClasses.%s' % self.BUILD_ARCH] = [
+ 'LoaderLib|Platform/CommonBoardPkg/Library/LoaderLib/LoaderLib.inf',
+ 'SerialPortLib|BootloaderCommonPkg/Library/SerialPortLib/SerialPortLib.inf',
+ 'PlatformHookLib|Silicon/$(SILICON_PKG_NAME)/Library/PlatformHookLib/PlatformHookLib.inf',
+ 'ResetSystemLib|Platform/$(BOARD_PKG_NAME)/Library/ResetSystemLib/ResetSystemLib.inf',
+ 'GpioLib|Silicon/CommonSocPkg/Library/GpioLib/GpioLib.inf',
+ 'GpioV2Lib|Silicon/$(SILICON_PKG_NAME)/Library/GpioV2Lib/GpioV2Lib.inf',
+ 'PchP2sbLib|Silicon/$(SILICON_PKG_NAME)/Library/PchP2sbLib/PchP2sbLib.inf',
+ 'GpioSiLib|Silicon/$(SILICON_PKG_NAME)/Library/GpioSiLib/GpioSiLib.inf',
+ 'PchSbiAccessLib|Silicon/CommonSocPkg/Library/PchSbiAccessLib/PchSbiAccessLib.inf',
+ 'TccLib|Silicon/CommonSocPkg/Library/TccLib/TccLib.inf',
+ 'ShellExtensionLib|Platform/$(BOARD_PKG_NAME)/Library/ShellExtensionLib/ShellExtensionLib.inf',
+ 'FspmUpdUpdateLib|Platform/$(BOARD_PKG_NAME)/Library/FspmUpdUpdateLib/FspmUpdUpdateLib.inf',
+ 'FspsUpdUpdateLib|Platform/$(BOARD_PKG_NAME)/Library/FspsUpdUpdateLib/FspsUpdUpdateLib.inf',
+ 'PchInfoLib|Silicon/$(SILICON_PKG_NAME)/Library/PchInfoLib/PchInfoLib.inf',
+ 'PchPciBdfLib|Silicon/$(SILICON_PKG_NAME)/Library/BasePchPciBdfLib/BasePchPciBdfLib.inf',
+ 'PchSpiLib|Silicon/CommonSocPkg/Library/PchSpiLib/PchSpiLib.inf',
+ 'SpiFlashLib|Silicon/CommonSocPkg/Library/SpiFlashLib/SpiFlashLib.inf',
+ 'BootGuardLib|Silicon/$(SILICON_PKG_NAME)/Library/BootGuardLibCBnT/BootGuardLibCBnT.inf',
+ 'BdatLib|Silicon/CommonSocPkg/Library/BdatLib/BdatLib.inf',
+ 'SmbusLib|Silicon/CommonSocPkg/Library/SmbusLib/SmbusLib.inf',
+ 'IgdOpRegionLib30|Silicon/CommonSocPkg/Library/IgdOpRegionLib/IgdOpRegionLib30/IgdOpRegionLib30.inf',
+ 'HeciLib|Silicon/CommonSocPkg/Library/HeciLib/HeciLib.inf',
+ 'MeChipsetLib|Silicon/CommonSocPkg/Library/MeChipsetLib/MeChipsetLib.inf',
+ 'VtdLib|Silicon/$(SILICON_PKG_NAME)/Library/VTdLib/VTdLib.inf',
+ 'PsdLib|Silicon/$(SILICON_PKG_NAME)/Library/PsdLib/PsdLib.inf',
+ 'HeciMeExtLib|Silicon/$(SILICON_PKG_NAME)/Library/HeciMeExtLib/HeciMeExtLib.inf',
+ 'MeExtMeasurementLib|Silicon/$(SILICON_PKG_NAME)/Library/MeExtMeasurementLib/MeExtMeasurementLib.inf',
+ 'CpuPcieHsPhyInitLib|Silicon/$(SILICON_PKG_NAME)/Library/CpuPcieHsPhyInitLib/CpuPcieHsPhyInitLib.inf',
+ 'WatchDogTimerLib|Silicon/CommonSocPkg/Library/WatchDogTimerLib/WatchDogTimerLib.inf',
+ 'TcoTimerLib|Silicon/CommonSocPkg/Library/TcoTimerLib/TcoTimerLib.inf',
+ 'TopSwapLib|Silicon/$(SILICON_PKG_NAME)/Library/TopSwapLib/TopSwapLib.inf'
+ ]
+
+ if self.BUILD_CSME_UPDATE_DRIVER:
+ dsc['LibraryClasses.%s' % self.BUILD_ARCH].append ('MeFwUpdateLib|Silicon/$(SILICON_PKG_NAME)/Library/MeFwUpdateLib/MeFwUpdateLib.inf')
+
+ dsc['PcdsFixedAtBuild'] = ['gPlatformModuleTokenSpaceGuid.PcdAcpiTablesMaxEntry | 40']
+
+ if self._PS_SUPPORT:
+ dsc['PcdsFixedAtBuild'].append('gPlatformMeteorLakeTokenSpaceGuid.PcdMtlPSSupport | TRUE')
+
+ return dsc
+
+
+ def GetKeyHashList (self):
+ # Define a set of new key used for different purposes
+ # The key is either key id or public key PEM format or private key PEM format
+ pub_key_list = [
+ (
+ # Key for verifying Config data blob
+ HASH_USAGE['PUBKEY_CFG_DATA'],
+ 'KEY_ID_CFGDATA' + '_' + self._RSA_SIGN_TYPE
+ ),
+ (
+ # Key for verifying firmware update
+ HASH_USAGE['PUBKEY_FWU'],
+ 'KEY_ID_FIRMWAREUPDATE' + '_' + self._RSA_SIGN_TYPE
+ ),
+ (
+ # Key for verifying container header
+ HASH_USAGE['PUBKEY_CONT_DEF'],
+ 'KEY_ID_CONTAINER' + '_' + self._RSA_SIGN_TYPE
+ ),
+ (
+ # Use RSA2048 key for verifying OS image signed with RSA2048
+ HASH_USAGE['PUBKEY_OS'],
+ 'KEY_ID_OS1_PUBLIC_RSA2048'
+ ),
+ (
+ # Use RSA3072 key for verifying OS image signed with RSA3072
+ HASH_USAGE['PUBKEY_OS'],
+ 'KEY_ID_OS1_PUBLIC_RSA3072'
+ ),
+ ]
+ return pub_key_list
+
+ def GetContainerList (self):
+ container_list = []
+ container_list_auth_type = self._RSA_SIGN_TYPE + '_'+ self._SIGNING_SCHEME[4:] + '_' + self._SIGN_HASH
+ container_list.append (
+ # Name | Image File | CompressAlg | AuthType | Key File | Region Align | Region Size | Svn Info
+ # ========================================================================================================================================================
+ ('IPFW', 'SIIPFW.bin', '', container_list_auth_type, 'KEY_ID_CONTAINER'+'_'+self._RSA_SIGN_TYPE, 0, 0 , 0), # Container Header
+ )
+
+ bins = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'Binaries')
+
+ if self.ENABLE_TCC:
+ container_list.append (
+ ('TCCC', 'TccCacheCfg.bin' if os.path.exists(os.path.join(bins, 'TccCacheCfg.bin')) else '', 'Lz4', container_list_auth_type, 'KEY_ID_CONTAINER_COMP'+'_'+self._RSA_SIGN_TYPE, 0, self.TCC_CCFG_SIZE, 0), # TCC Cache Config
+ )
+ container_list.append (
+ ('TCCM', 'TccCrlBinary.bin' if os.path.exists(os.path.join(bins, 'TccCrlBinary.bin')) else '', 'Lz4', container_list_auth_type, 'KEY_ID_CONTAINER_COMP'+'_'+self._RSA_SIGN_TYPE, 0, self.TCC_CRL_SIZE, 0), # TCC Crl
+ )
+ container_list.append (
+ ('TCCT', 'TccStreamCfg.bin' if os.path.exists(os.path.join(bins, 'TccStreamCfg.bin')) else '', 'Lz4', container_list_auth_type, 'KEY_ID_CONTAINER_COMP'+'_'+self._RSA_SIGN_TYPE, 0, self.TCC_STREAM_SIZE, 0), # TCC Stream Config
+ )
+
+ if self.ENABLE_TSN:
+ container_list.append (
+ ('TMAC','TsnSubRegion.bin' if os.path.exists(os.path.join(bins, 'TsnSubRegion.bin')) else '', 'Lz4', container_list_auth_type, 'KEY_ID_CONTAINER_COMP'+'_'+self._RSA_SIGN_TYPE, 0, self.TMAC_SIZE, 0), # TSN MAC Address
+ )
+
+ return [container_list]
+
+ def GetOutputImages (self):
+ # define extra images that will be copied to output folder
+ img_list = ['SlimBootloader.txt',
+ 'FlashMap.txt',
+ 'CfgDataStitch.py',
+ 'CfgDataDef.yaml']
+ return img_list
+
+ def GetImageLayout (self):
+ img_list = []
+
+ acm_flag = 0 if self.ACM_SIZE > 0 else STITCH_OPS.MODE_FILE_IGNOR
+ fwu_flag = 0 if self.ENABLE_FWU else STITCH_OPS.MODE_FILE_IGNOR
+ cfg_flag = 0 if len(self._CFGDATA_EXT_FILE) > 0 and self.CFGDATA_REGION_TYPE == FLASH_REGION_TYPE.BIOS else STITCH_OPS.MODE_FILE_IGNOR
+
+ if len(self._CFGDATA_EXT_FILE) > 0 and self.CFGDATA_REGION_TYPE == FLASH_REGION_TYPE.PLATFORMDATA:
+ img_list.extend ([
+ ('CFGDATA_PDR.bin', [
+ ('CFGDATA.bin', '', self.CFGDATA_SIZE, STITCH_OPS.MODE_FILE_PAD, STITCH_OPS.MODE_POS_TAIL),
+ ]
+ ),
+ ])
+
+ img_list.extend ([
+ ('NON_VOLATILE.bin', [
+ ('SBLRSVD.bin', '' , self.SBLRSVD_SIZE, STITCH_OPS.MODE_FILE_NOP, STITCH_OPS.MODE_POS_TAIL),
+ ]
+ ),
+ ('NON_REDUNDANT.bin', [
+ ('SIIPFW.bin' , '' , self.SIIPFW_SIZE, STITCH_OPS.MODE_FILE_PAD, STITCH_OPS.MODE_POS_TAIL),
+ ('VARIABLE.bin' , '' , self.VARIABLE_SIZE, STITCH_OPS.MODE_FILE_NOP, STITCH_OPS.MODE_POS_TAIL),
+ ('MRCDATA.bin' , '' , self.MRCDATA_SIZE, STITCH_OPS.MODE_FILE_NOP, STITCH_OPS.MODE_POS_TAIL),
+ ('EPAYLOAD.bin', '' , self.EPAYLOAD_SIZE, STITCH_OPS.MODE_FILE_PAD, STITCH_OPS.MODE_POS_TAIL),
+ ('UEFIVARIABLE.bin', '' , self.UEFI_VARIABLE_SIZE, STITCH_OPS.MODE_FILE_NOP, STITCH_OPS.MODE_POS_TAIL),
+ ('PAYLOAD.bin' , 'Lz4' , self.PAYLOAD_SIZE, STITCH_OPS.MODE_FILE_PAD, STITCH_OPS.MODE_POS_TAIL),
+ ]
+ ),
+ ('REDUNDANT_A.bin', [
+ ('STAGE2.fd' , 'Lz4' , self.STAGE2_SIZE, STITCH_OPS.MODE_FILE_PAD, STITCH_OPS.MODE_POS_TAIL),
+ ('FWUPDATE.bin' , 'Lzma' , self.FWUPDATE_SIZE, STITCH_OPS.MODE_FILE_PAD | fwu_flag, STITCH_OPS.MODE_POS_TAIL),
+ ('CFGDATA.bin' , '' , self.CFGDATA_SIZE, STITCH_OPS.MODE_FILE_PAD | cfg_flag, STITCH_OPS.MODE_POS_TAIL),
+ ('KEYHASH.bin' , '' , self.KEYHASH_SIZE, STITCH_OPS.MODE_FILE_PAD, STITCH_OPS.MODE_POS_TAIL),
+ ]
+ ),
+ ('REDUNDANT_B.bin', [
+ ('STAGE2.fd' , 'Lz4' , self.STAGE2_SIZE, STITCH_OPS.MODE_FILE_PAD, STITCH_OPS.MODE_POS_TAIL),
+ ('FWUPDATE.bin' , 'Lzma' , self.FWUPDATE_SIZE, STITCH_OPS.MODE_FILE_PAD | fwu_flag, STITCH_OPS.MODE_POS_TAIL),
+ ('CFGDATA.bin' , '' , self.CFGDATA_SIZE, STITCH_OPS.MODE_FILE_PAD | cfg_flag, STITCH_OPS.MODE_POS_TAIL),
+ ('KEYHASH.bin' , '' , self.KEYHASH_SIZE, STITCH_OPS.MODE_FILE_PAD, STITCH_OPS.MODE_POS_TAIL),
+ ]
+ ),
+ ('TOP_SWAP_A.bin', [
+ ('STAGE1B_A.fd' , '' , self.STAGE1B_SIZE, STITCH_OPS.MODE_FILE_PAD, STITCH_OPS.MODE_POS_TAIL),
+ ('UCODE.bin' , '' , self.UCODE_SIZE, STITCH_OPS.MODE_FILE_PAD, STITCH_OPS.MODE_POS_TAIL),
+ ('ACM.bin' , '' , self.ACM_SIZE, STITCH_OPS.MODE_FILE_NOP | acm_flag, STITCH_OPS.MODE_POS_TAIL),
+ ('STAGE1A_A.fd' , '' , self.STAGE1A_SIZE, STITCH_OPS.MODE_FILE_NOP, STITCH_OPS.MODE_POS_TAIL),
+ ]
+ ),
+ ('TOP_SWAP_B.bin', [
+ ('STAGE1B_B.fd' , '' , self.STAGE1B_SIZE, STITCH_OPS.MODE_FILE_PAD, STITCH_OPS.MODE_POS_TAIL),
+ ('UCODE.bin' , '' , self.UCODE_SIZE, STITCH_OPS.MODE_FILE_PAD, STITCH_OPS.MODE_POS_TAIL),
+ ('ACM.bin' , '' , self.ACM_SIZE, STITCH_OPS.MODE_FILE_NOP | acm_flag, STITCH_OPS.MODE_POS_TAIL),
+ ('STAGE1A_B.fd' , '' , self.STAGE1A_SIZE, STITCH_OPS.MODE_FILE_NOP, STITCH_OPS.MODE_POS_TAIL),
+ ]
+ ),
+ ])
+
+
+ img_list.extend ([
+ ('SlimBootloader.bin', [
+ ('NON_VOLATILE.bin' , '' , self.NON_VOLATILE_SIZE, STITCH_OPS.MODE_FILE_PAD, STITCH_OPS.MODE_POS_HEAD),
+ ('NON_REDUNDANT.bin' , '' , self.NON_REDUNDANT_SIZE, STITCH_OPS.MODE_FILE_PAD, STITCH_OPS.MODE_POS_HEAD),
+ ('REDUNDANT_B.bin' , '' , self.REDUNDANT_SIZE, STITCH_OPS.MODE_FILE_PAD, STITCH_OPS.MODE_POS_HEAD),
+ ('REDUNDANT_A.bin' , '' , self.REDUNDANT_SIZE, STITCH_OPS.MODE_FILE_PAD, STITCH_OPS.MODE_POS_HEAD),
+ ('TOP_SWAP_B.bin' , '' , self.TOP_SWAP_SIZE, STITCH_OPS.MODE_FILE_PAD, STITCH_OPS.MODE_POS_HEAD),
+ ('TOP_SWAP_A.bin' , '' , self.TOP_SWAP_SIZE, STITCH_OPS.MODE_FILE_PAD, STITCH_OPS.MODE_POS_HEAD),
+ ]
+ ),
+ ])
+
+ return img_list
diff --git a/Platform/MeteorlakeBoardPkg/CfgData/CfgDataDef.yaml b/Platform/MeteorlakeBoardPkg/CfgData/CfgDataDef.yaml
index 0c7f36f6..c4b7dd86 100644
--- a/Platform/MeteorlakeBoardPkg/CfgData/CfgDataDef.yaml
+++ b/Platform/MeteorlakeBoardPkg/CfgData/CfgDataDef.yaml
@@ -2,7 +2,7 @@
#
# Slim Bootloader CFGDATA Default File.
#
-# Copyright (c) 2020 - 2021, Intel Corporation. All rights reserved.
+# Copyright (c) 2020 - 2024, Intel Corporation. All rights reserved.
# SPDX-License-Identifier: BSD-2-Clause-Patent
#
##
@@ -41,8 +41,6 @@ configs:
- !include Platform/CommonBoardPkg/CfgData/CfgData_Common.yaml
- - !include Platform/CommonBoardPkg/CfgData/CfgData_Tcc.yaml
-
- !include Platform/CommonBoardPkg/CfgData/CfgData_PayloadSelection.yaml
- !include CfgData_BootOption.yaml
diff --git a/Platform/MeteorlakeBoardPkg/CfgData/CfgData_Int_Mtlp_DDR5_CRB.dlt b/Platform/MeteorlakeBoardPkg/CfgData/CfgData_Int_Mtlp_DDR5_CRB.dlt
new file mode 100644
index 00000000..174c47f0
--- /dev/null
+++ b/Platform/MeteorlakeBoardPkg/CfgData/CfgData_Int_Mtlp_DDR5_CRB.dlt
@@ -0,0 +1,102 @@
+#/** @file
+#
+# Platform Configuration Delta File.
+#
+# Copyright (c) 2021 - 2024, Intel Corporation. All rights reserved.
+# SPDX-License-Identifier: BSD-2-Clause-Patent
+#
+#
+#**/
+
+
+#
+# Delta configuration values for platform ID 0x1A
+#
+PLATFORMID_CFG_DATA.PlatformId | 0x1A
+PLAT_NAME_CFG_DATA.PlatformName | 'MtlpCRB'
+GEN_CFG_DATA.PayloadId | ''
+GEN_CFG_DATA.VbtImageId | 1
+#FSPM UPD
+MEMORY_CFG_DATA.SpdDataSel000 | 0
+MEMORY_CFG_DATA.SpdDataSel010 | 0
+MEMORY_CFG_DATA.SpdDataSel020 | 0
+MEMORY_CFG_DATA.SpdDataSel030 | 0
+MEMORY_CFG_DATA.SpdDataSel100 | 0
+MEMORY_CFG_DATA.SpdDataSel101 | 0
+MEMORY_CFG_DATA.SpdDataSel110 | 0
+MEMORY_CFG_DATA.SpdDataSel120 | 0
+MEMORY_CFG_DATA.SpdDataSel130 | 0
+MEMORY_CFG_DATA.MrcFastBoot | 1
+MEMORY_CFG_DATA.DqPinsInterleaved | 0
+MEMORY_CFG_DATA.PchHdaEnable | 1
+MEMORY_CFG_DATA.PchHdaDspEnable | 1
+MEMORY_CFG_DATA.PchHdaAudioLinkHdaEnable | 1
+MEMORY_CFG_DATA.DmiGen3DsPortRxPreset | {0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02}
+MEMORY_CFG_DATA.UserBd | 5
+MEMORY_CFG_DATA.ActiveCoreCount | 0xFF
+MEMORY_CFG_DATA.ActiveSmallCoreCount | 0xFF
+MEMORY_CFG_DATA.PcieClkSrcUsage | { 0x80, 0x8, 0x70, 0xff, 0xff, 0xff, 0xB, 0xff, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0, 0x1 }
+MEMORY_CFG_DATA.DqMapCpu2DramMc0Ch0 | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+MEMORY_CFG_DATA.DqMapCpu2DramMc0Ch1 | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+MEMORY_CFG_DATA.DqMapCpu2DramMc0Ch2 | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+MEMORY_CFG_DATA.DqMapCpu2DramMc0Ch3 | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+MEMORY_CFG_DATA.DqMapCpu2DramMc1Ch0 | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+MEMORY_CFG_DATA.DqMapCpu2DramMc1Ch1 | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+MEMORY_CFG_DATA.DqMapCpu2DramMc1Ch2 | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+MEMORY_CFG_DATA.DqMapCpu2DramMc1Ch3 | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+MEMORY_CFG_DATA.SaGv | 1
+MEMORY_CFG_DATA.PchHdaAudioLinkDmicEnable | {0x1,0x1}
+MEMORY_CFG_DATA.PchHdaAudioLinkSndwEnable | {0x1,0,0,0}
+MEMORY_CFG_DATA.UsbTcPortEnPreMem | 0xF
+MEMORY_CFG_DATA.PcieClkSrcClkReq | { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0, 0x1 }
+MEMORY_CFG_DATA.TcssItbtPcie0En | 0x1
+MEMORY_CFG_DATA.TcssItbtPcie1En | 0x1
+MEMORY_CFG_DATA.TcssItbtPcie2En | 0x1
+MEMORY_CFG_DATA.TcssItbtPcie3En | 0x1
+MEMORY_CFG_DATA.TcssXhciEn | 0x1
+MEMORY_CFG_DATA.TcssDma0En | 0x1
+MEMORY_CFG_DATA.TcssDma1En | 0x1
+MEMORY_CFG_DATA.I2cPostCodeEnable | 0x1
+
+#FSPS UPD
+SILICON_CFG_DATA.PcieRpL1Substates | {0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3}
+SILICON_CFG_DATA.PcieRpLtrEnable | {0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}
+SILICON_CFG_DATA.PcieRpClkReqDetect | {0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}
+SILICON_CFG_DATA.PcieRpAspm | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1}
+SILICON_CFG_DATA.PcieRpMaxPayload | {0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1}
+SILICON_CFG_DATA.PcieRpAdvancedErrorReporting | {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}
+SILICON_CFG_DATA.PtmEnabled | { 0x1, 0x1, 0x1, 0x1}
+SILICON_CFG_DATA.SataPortsDevSlp | {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+SILICON_CFG_DATA.PortUsb30Enable | {0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+SILICON_CFG_DATA.CpuUsb3OverCurrentPin | {0xFF, 0xFF, 0x3, 0x3, 0xFF, 0xFF, 0xFF, 0xFF}
+SILICON_CFG_DATA.PchIshI2cEnable | {0x01, 0x00, 0x00}
+SILICON_CFG_DATA.PchIshGpEnable | {0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01}
+SILICON_CFG_DATA.Usb2OverCurrentPin | {0x03, 0x03, 0x00, 0x00, 0x02, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, 0x05, 0x05, 0x06, 0x06, 0x07, 0x07}
+SILICON_CFG_DATA.Usb3OverCurrentPin | {0x00, 0x00, 0xFF, 0xFF, 0x02, 0x02, 0x03, 0x03, 0x04, 0x04}
+SILICON_CFG_DATA.SerialIoUartPowerGating | {0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02}
+SILICON_CFG_DATA.SerialIoUartDmaEnable | {0x01, 0x01, 0x01, 0x1, 0x1, 0x00, 0x00}
+SILICON_CFG_DATA.SerialIoUartAutoFlow | {0x0, 0x0, 0x01, 0x01, 0x01, 0x00, 0x00}
+SILICON_CFG_DATA.Usb2PhyPetxiset | {0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+SILICON_CFG_DATA.Usb2PhyPredeemp | {0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+SILICON_CFG_DATA.PchSerialIoI2cPadsTermination | {0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01}
+SILICON_CFG_DATA.SataLedEnable | 0
+SILICON_CFG_DATA.EcAvailable | 0
+SILICON_CFG_DATA.TurboRatioLimitRatio | {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+SILICON_CFG_DATA.AtomTurboRatioLimitRatio | {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+SILICON_CFG_DATA.PchPmSlpSusMinAssert | 0x0
+SILICON_CFG_DATA.PchPmSlpS3MinAssert | 0x0
+SILICON_CFG_DATA.PchIshI3cEnable | 1
+
+POWER_CFG_DATA.TurboMode | 0
+POWER_CFG_DATA.EnergyEfficientTurbo | 1
+POWER_CFG_DATA.ThermalMonitor | 0
+POWER_CFG_DATA.MaxRatio | 4
+POWER_CFG_DATA.EnableItbm | 0
+POWER_CFG_DATA.Cx | 0x0
+POWER_CFG_DATA.C1e | 0x0
+POWER_CFG_DATA.TimedMwait | 1
+POWER_CFG_DATA.PkgCStateLimit | 0
+POWER_CFG_DATA.Eist | 0
+POWER_CFG_DATA.Hwp | 1
+POWER_CFG_DATA.EnableHwpAutoEppGrouping | 1
+
diff --git a/Platform/MeteorlakeBoardPkg/CfgData/CfgData_Int_Mtlp_DDR5_Rvp.dlt b/Platform/MeteorlakeBoardPkg/CfgData/CfgData_Int_Mtlp_DDR5_Rvp.dlt
new file mode 100644
index 00000000..80c0071c
--- /dev/null
+++ b/Platform/MeteorlakeBoardPkg/CfgData/CfgData_Int_Mtlp_DDR5_Rvp.dlt
@@ -0,0 +1,110 @@
+#/** @file
+#
+# Platform Configuration Delta File.
+#
+# Copyright (c) 2021 - 2024, Intel Corporation. All rights reserved.
+# SPDX-License-Identifier: BSD-2-Clause-Patent
+#
+#
+#**/
+
+
+#
+# Delta configuration values for platform ID 0x1
+#
+PLATFORMID_CFG_DATA.PlatformId | 0x1
+PLAT_NAME_CFG_DATA.PlatformName | 'MtlpDDR5'
+GEN_CFG_DATA.PayloadId | ''
+GEN_CFG_DATA.VbtImageId | 3
+
+# FIPS mode enablement feature
+FEATURES_CFG_DATA.Features.MeFipsMode | 0
+FEATURES_CFG_DATA.Features.S0ix | 0x0
+
+#FSPM UPD
+MEMORY_CFG_DATA.SpdDataSel000 | 0
+MEMORY_CFG_DATA.SpdDataSel010 | 0
+MEMORY_CFG_DATA.SpdDataSel020 | 0
+MEMORY_CFG_DATA.SpdDataSel030 | 0
+MEMORY_CFG_DATA.SpdDataSel100 | 0
+MEMORY_CFG_DATA.SpdDataSel101 | 0
+MEMORY_CFG_DATA.SpdDataSel110 | 0
+MEMORY_CFG_DATA.SpdDataSel120 | 0
+MEMORY_CFG_DATA.SpdDataSel130 | 0
+MEMORY_CFG_DATA.MrcFastBoot | 1
+MEMORY_CFG_DATA.DqPinsInterleaved | 0
+MEMORY_CFG_DATA.PchHdaEnable | 1
+MEMORY_CFG_DATA.PchHdaDspEnable | 1
+MEMORY_CFG_DATA.PchHdaAudioLinkHdaEnable | 1
+MEMORY_CFG_DATA.DmiGen3DsPortRxPreset | {0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07}
+MEMORY_CFG_DATA.UserBd | 5
+MEMORY_CFG_DATA.ActiveCoreCount | 0xFF
+MEMORY_CFG_DATA.ActiveSmallCoreCount | 0xFF
+MEMORY_CFG_DATA.PcieClkSrcUsage | { 0, 0x6, 0x70, 0x5, 0x8, 0x7, 0xB, 0xA, 0x9, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }
+MEMORY_CFG_DATA.DqMapCpu2DramMc0Ch0 | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+MEMORY_CFG_DATA.DqMapCpu2DramMc0Ch1 | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+MEMORY_CFG_DATA.DqMapCpu2DramMc0Ch2 | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+MEMORY_CFG_DATA.DqMapCpu2DramMc0Ch3 | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+MEMORY_CFG_DATA.DqMapCpu2DramMc1Ch0 | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+MEMORY_CFG_DATA.DqMapCpu2DramMc1Ch1 | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+MEMORY_CFG_DATA.DqMapCpu2DramMc1Ch2 | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+MEMORY_CFG_DATA.DqMapCpu2DramMc1Ch3 | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+MEMORY_CFG_DATA.DqsMapCpu2DramMc0Ch0 | { 0, 0}
+MEMORY_CFG_DATA.DqsMapCpu2DramMc0Ch1 | { 0, 0}
+MEMORY_CFG_DATA.DqsMapCpu2DramMc0Ch2 | { 0, 0}
+MEMORY_CFG_DATA.DqsMapCpu2DramMc0Ch3 | { 0, 0}
+MEMORY_CFG_DATA.DqsMapCpu2DramMc1Ch0 | { 0, 0}
+MEMORY_CFG_DATA.DqsMapCpu2DramMc1Ch1 | { 0, 0}
+MEMORY_CFG_DATA.DqsMapCpu2DramMc1Ch2 | { 0, 0}
+MEMORY_CFG_DATA.DqsMapCpu2DramMc1Ch3 | { 0, 0}
+MEMORY_CFG_DATA.TcssXhciEn | 0x1
+MEMORY_CFG_DATA.Gen3LtcoEnable | 0x0
+
+MEMORY_CFG_DATA.SaGv | 1
+MEMORY_CFG_DATA.PchHdaAudioLinkDmicEnable | {0x1,0x1}
+MEMORY_CFG_DATA.PchHdaAudioLinkSndwEnable | {0x1,0,0,0}
+MEMORY_CFG_DATA.UsbTcPortEnPreMem | 0xF
+MEMORY_CFG_DATA.PcieClkSrcClkReq | { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0, 0x1 }
+MEMORY_CFG_DATA.I2cPostCodeEnable | 0x0
+
+#FSPS UPD
+SILICON_CFG_DATA.PcieRpL1Substates | {0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3}
+SILICON_CFG_DATA.PcieRpLtrEnable | {0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}
+SILICON_CFG_DATA.PcieRpClkReqDetect | {0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}
+SILICON_CFG_DATA.PcieRpAspm | {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4}
+SILICON_CFG_DATA.PcieRpMaxPayload | {0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1}
+SILICON_CFG_DATA.PcieRpAdvancedErrorReporting | {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}
+SILICON_CFG_DATA.PtmEnabled | { 0x1, 0x1, 0x1, 0x1}
+SILICON_CFG_DATA.SataPortsDevSlp | {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+SILICON_CFG_DATA.PortUsb30Enable | {0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+SILICON_CFG_DATA.CpuUsb3OverCurrentPin | {0xFF, 0xFF, 0x3, 0x3, 0xFF, 0xFF, 0xFF, 0xFF}
+SILICON_CFG_DATA.PchIshI2cEnable | {0x01, 0x00, 0x00}
+SILICON_CFG_DATA.PchIshGpEnable | {0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01}
+SILICON_CFG_DATA.Usb2OverCurrentPin | {0x3, 0x3, 0x0, 0x0, 0x01, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0x05, 0x05, 0x06, 0x06, 0x07, 0x07}
+SILICON_CFG_DATA.Usb3OverCurrentPin | {0x00, 0x00, 0x01, 0x1, 0x02, 0x02, 0x03, 0x03, 0x04, 0x04}
+SILICON_CFG_DATA.SerialIoUartPowerGating | {0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02}
+SILICON_CFG_DATA.SerialIoUartDmaEnable | {0x01, 0x01, 0x01, 0x1, 0x1, 0x00, 0x00}
+SILICON_CFG_DATA.SerialIoUartAutoFlow | {0x0, 0x0, 0x01, 0x01, 0x01, 0x00, 0x00}
+SILICON_CFG_DATA.Usb2PhyPetxiset | {0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+SILICON_CFG_DATA.Usb2PhyPredeemp | {0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+SILICON_CFG_DATA.PchSerialIoI2cPadsTermination | {0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01}
+SILICON_CFG_DATA.SataLedEnable | 0
+SILICON_CFG_DATA.TurboRatioLimitRatio | {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+SILICON_CFG_DATA.AtomTurboRatioLimitRatio | {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+SILICON_CFG_DATA.PchPmSlpSusMinAssert | 0x0
+SILICON_CFG_DATA.PchPmSlpS3MinAssert | 0x0
+SILICON_CFG_DATA.PchIshI3cEnable | 1
+SILICON_CFG_DATA.EnableTcssCovTypeA | {0x0, 0x0, 0x0, 0x0}
+
+POWER_CFG_DATA.TurboMode | 0
+POWER_CFG_DATA.EnergyEfficientTurbo | 1
+POWER_CFG_DATA.ThermalMonitor | 0
+POWER_CFG_DATA.MaxRatio | 4
+POWER_CFG_DATA.EnableItbm | 0
+POWER_CFG_DATA.Cx | 0x1
+POWER_CFG_DATA.C1e | 0x1
+POWER_CFG_DATA.TimedMwait | 1
+POWER_CFG_DATA.PkgCStateLimit | 0xff
+POWER_CFG_DATA.Eist | 0
+POWER_CFG_DATA.Hwp | 1
+POWER_CFG_DATA.EnableHwpAutoEppGrouping | 1
diff --git a/Platform/MeteorlakeBoardPkg/CfgData/CfgData_Int_Mtlp_LPDDR5_Rvp.dlt b/Platform/MeteorlakeBoardPkg/CfgData/CfgData_Int_Mtlp_LPDDR5_Rvp.dlt
new file mode 100644
index 00000000..e7bbe907
--- /dev/null
+++ b/Platform/MeteorlakeBoardPkg/CfgData/CfgData_Int_Mtlp_LPDDR5_Rvp.dlt
@@ -0,0 +1,95 @@
+#/** @file
+#
+# Platform Configuration Delta File.
+#
+# Copyright (c) 2023 - 2024, Intel Corporation. All rights reserved.
+# SPDX-License-Identifier: BSD-2-Clause-Patent
+#
+#
+#**/
+
+
+#
+# Delta configuration values for platform ID 0x2
+#
+PLATFORMID_CFG_DATA.PlatformId | 0x2
+PLAT_NAME_CFG_DATA.PlatformName | 'MtlpLp5'
+GEN_CFG_DATA.PayloadId | ''
+GEN_CFG_DATA.VbtImageId | 2
+
+# FIPS mode enablement feature
+FEATURES_CFG_DATA.Features.MeFipsMode | 0
+
+#FSPM UPD
+MEMORY_CFG_DATA.SpdDataSel000 | 1
+MEMORY_CFG_DATA.SpdDataSel010 | 1
+MEMORY_CFG_DATA.SpdDataSel020 | 1
+MEMORY_CFG_DATA.SpdDataSel030 | 1
+MEMORY_CFG_DATA.SpdDataSel100 | 1
+MEMORY_CFG_DATA.SpdDataSel101 | 0
+MEMORY_CFG_DATA.SpdDataSel110 | 1
+MEMORY_CFG_DATA.SpdDataSel120 | 1
+MEMORY_CFG_DATA.SpdDataSel130 | 1
+MEMORY_CFG_DATA.MrcFastBoot | 1
+MEMORY_CFG_DATA.DqPinsInterleaved | 0
+MEMORY_CFG_DATA.PchHdaEnable | 1
+MEMORY_CFG_DATA.PchHdaDspEnable | 1
+MEMORY_CFG_DATA.PchHdaAudioLinkHdaEnable | 1
+MEMORY_CFG_DATA.DmiGen3DsPortRxPreset | {0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02}
+MEMORY_CFG_DATA.UserBd | 5
+MEMORY_CFG_DATA.ActiveCoreCount | 0xFF
+MEMORY_CFG_DATA.ActiveSmallCoreCount | 0xFF
+MEMORY_CFG_DATA.PcieClkSrcUsage | { 0, 0x6, 0x70, 0x5, 0x8, 0x7, 0xB, 0xA, 0x9, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0, 0x1 }
+MEMORY_CFG_DATA.DqMapCpu2DramMc0Ch0 | { 0x0, 0x3, 0x1, 0x2, 0x4, 0x5, 0x6, 0x7, 0x0C, 0x0D, 0x0E, 0x0F, 0x0B, 0x9, 0x0A, 0x8}
+MEMORY_CFG_DATA.DqMapCpu2DramMc0Ch1 | { 0x3, 0x0, 0x1, 0x2, 0x5, 0x7, 0x6, 0x4, 0x0D, 0x0A, 0x0C, 0x0F, 0x9, 0x0B, 0x8, 0x0E}
+MEMORY_CFG_DATA.DqMapCpu2DramMc0Ch2 | { 0x2, 0x1, 0x3, 0x0, 0x7, 0x5, 0x6, 0x4, 0x0C, 0x8, 0x0D, 0x0F, 0x0B, 0x0A, 0x9, 0x0E}
+MEMORY_CFG_DATA.DqMapCpu2DramMc0Ch3 | { 0x4, 0x3, 0x0, 0x1, 0x5, 0x2, 0x6, 0x7, 0x8, 0x0F, 0x0C, 0x0E, 0x0A, 0x0D, 0x9, 0x0B}
+MEMORY_CFG_DATA.DqMapCpu2DramMc1Ch0 | { 0x1, 0x3, 0x2, 0x6, 0x7, 0x5, 0x4, 0x0, 0x0E, 0x0D, 0x0C, 0x0F, 0x0B, 0x0A, 0x8, 0x9}
+MEMORY_CFG_DATA.DqMapCpu2DramMc1Ch1 | { 0x0, 0x7, 0x3, 0x6, 0x2, 0x5, 0x1, 0x4, 0x9, 0x0A, 0x0B, 0x8, 0x0D, 0x0E, 0x0F, 0x0C}
+MEMORY_CFG_DATA.DqMapCpu2DramMc1Ch2 | { 0x3, 0x0, 0x2, 0x1, 0x6, 0x5, 0x4, 0x7, 0x0F, 0x0D, 0x0C, 0x0E, 0x8, 0x0B, 0x0A, 0x9}
+MEMORY_CFG_DATA.DqMapCpu2DramMc1Ch3 | { 0x2, 0x1, 0x3, 0x0, 0x6, 0x4, 0x7, 0x5, 0x0E, 0x0C, 0x0D, 0x0F, 0x9, 0x0A, 0x0B, 0x8}
+MEMORY_CFG_DATA.SaGv | 1
+MEMORY_CFG_DATA.PchHdaAudioLinkDmicEnable | {0x1,0x1}
+MEMORY_CFG_DATA.PchHdaAudioLinkSndwEnable | {0x1,0,0,0}
+MEMORY_CFG_DATA.UsbTcPortEnPreMem | 0xF
+MEMORY_CFG_DATA.PcieClkSrcClkReq | { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0, 0x1 }
+#FSPS UPD
+SILICON_CFG_DATA.PcieRpL1Substates | {0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3}
+SILICON_CFG_DATA.PcieRpLtrEnable | {0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}
+SILICON_CFG_DATA.PcieRpClkReqDetect | {0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}
+SILICON_CFG_DATA.PcieRpAspm | {0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x0, 0x0, 0x0, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4}
+SILICON_CFG_DATA.PcieRpMaxPayload | {0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1}
+SILICON_CFG_DATA.PcieRpAdvancedErrorReporting | {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}
+SILICON_CFG_DATA.PtmEnabled | { 0x1, 0x1, 0x1, 0x1}
+SILICON_CFG_DATA.SataPortsDevSlp | {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+SILICON_CFG_DATA.PortUsb30Enable | {0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+SILICON_CFG_DATA.CpuUsb3OverCurrentPin | {0x0, 0x1, 0x2, 0x3, 0xFF, 0xFF, 0xFF, 0xFF}
+SILICON_CFG_DATA.PchIshI2cEnable | {0x01, 0x00, 0x00}
+SILICON_CFG_DATA.PchIshGpEnable | {0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01}
+SILICON_CFG_DATA.Usb2OverCurrentPin | {0x04, 0x05, 0x06, 0x07, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x05, 0x05, 0x06, 0x06, 0x07, 0x07}
+SILICON_CFG_DATA.Usb3OverCurrentPin | {0x00, 0x00, 0x01, 0x1, 0x02, 0x02, 0x03, 0x03, 0x04, 0x04}
+SILICON_CFG_DATA.SerialIoUartPowerGating | {0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02}
+SILICON_CFG_DATA.SerialIoUartDmaEnable | {0x01, 0x01, 0x01, 0x1, 0x1, 0x00, 0x00}
+SILICON_CFG_DATA.SerialIoUartAutoFlow | {0x0, 0x0, 0x01, 0x01, 0x01, 0x00, 0x00}
+SILICON_CFG_DATA.Usb2PhyPetxiset | {0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+SILICON_CFG_DATA.Usb2PhyPredeemp | {0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+SILICON_CFG_DATA.PchSerialIoI2cPadsTermination | {0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01}
+SILICON_CFG_DATA.SataLedEnable | 0
+SILICON_CFG_DATA.TurboRatioLimitRatio | {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+SILICON_CFG_DATA.AtomTurboRatioLimitRatio | {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+SILICON_CFG_DATA.PchPmSlpSusMinAssert | 0x0
+SILICON_CFG_DATA.PchPmSlpS3MinAssert | 0x0
+SILICON_CFG_DATA.PchIshI3cEnable | 1
+
+POWER_CFG_DATA.TurboMode | 0
+POWER_CFG_DATA.EnergyEfficientTurbo | 1
+POWER_CFG_DATA.ThermalMonitor | 0
+POWER_CFG_DATA.MaxRatio | 4
+POWER_CFG_DATA.EnableItbm | 0
+POWER_CFG_DATA.Cx | 0
+POWER_CFG_DATA.C1e | 0
+POWER_CFG_DATA.TimedMwait | 1
+POWER_CFG_DATA.PkgCStateLimit | 0
+POWER_CFG_DATA.Eist | 0
+POWER_CFG_DATA.Hwp | 1
+POWER_CFG_DATA.EnableHwpAutoEppGrouping | 1
\ No newline at end of file
diff --git a/Platform/MeteorlakeBoardPkg/CfgData/CfgData_Int_Mtlps_DDR5_CRB.dlt b/Platform/MeteorlakeBoardPkg/CfgData/CfgData_Int_Mtlps_DDR5_CRB.dlt
new file mode 100644
index 00000000..c7ef893a
--- /dev/null
+++ b/Platform/MeteorlakeBoardPkg/CfgData/CfgData_Int_Mtlps_DDR5_CRB.dlt
@@ -0,0 +1,117 @@
+#/** @file
+#
+# Platform Configuration Delta File.
+#
+# Copyright (c) 2021 - 2024, Intel Corporation. All rights reserved.
+# SPDX-License-Identifier: BSD-2-Clause-Patent
+#
+#
+#**/
+
+
+#
+# Delta configuration values for platform ID 0x15
+#
+PLATFORMID_CFG_DATA.PlatformId | 0x15
+PLAT_NAME_CFG_DATA.PlatformName | 'MtlpsCRB'
+GEN_CFG_DATA.PayloadId | ''
+GEN_CFG_DATA.VbtImageId | 4
+
+# FIPS mode enablement feature
+FEATURES_CFG_DATA.Features.MeFipsMode | 0
+FEATURES_CFG_DATA.Features.S0ix | 0x0
+
+#FSPM UPD
+MEMORY_CFG_DATA.SpdDataSel000 | 0
+MEMORY_CFG_DATA.SpdDataSel010 | 0
+MEMORY_CFG_DATA.SpdDataSel020 | 0
+MEMORY_CFG_DATA.SpdDataSel030 | 0
+MEMORY_CFG_DATA.SpdDataSel100 | 0
+MEMORY_CFG_DATA.SpdDataSel101 | 0
+MEMORY_CFG_DATA.SpdDataSel110 | 0
+MEMORY_CFG_DATA.SpdDataSel120 | 0
+MEMORY_CFG_DATA.SpdDataSel130 | 0
+MEMORY_CFG_DATA.MrcFastBoot | 1
+MEMORY_CFG_DATA.DqPinsInterleaved | 0
+MEMORY_CFG_DATA.PchHdaEnable | 1
+MEMORY_CFG_DATA.PchHdaDspEnable | 1
+MEMORY_CFG_DATA.PchHdaAudioLinkHdaEnable | 1
+MEMORY_CFG_DATA.DmiGen3DsPortRxPreset | {0x7,0x7,0x7,0x7,0x7,0x7,0x7,0x7}
+MEMORY_CFG_DATA.UserBd | 5
+MEMORY_CFG_DATA.ActiveCoreCount | 0xFF
+MEMORY_CFG_DATA.ActiveSmallCoreCount | 0xFF
+MEMORY_CFG_DATA.PcieClkSrcUsage | { 0, 0x6, 0x70, 0xFF, 0x8, 0x7, 0xFF, 0xFF, 0x9, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }
+MEMORY_CFG_DATA.DqMapCpu2DramMc0Ch0 | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+MEMORY_CFG_DATA.DqMapCpu2DramMc0Ch1 | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+MEMORY_CFG_DATA.DqMapCpu2DramMc0Ch2 | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+MEMORY_CFG_DATA.DqMapCpu2DramMc0Ch3 | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+MEMORY_CFG_DATA.DqMapCpu2DramMc1Ch0 | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+MEMORY_CFG_DATA.DqMapCpu2DramMc1Ch1 | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+MEMORY_CFG_DATA.DqMapCpu2DramMc1Ch2 | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+MEMORY_CFG_DATA.DqMapCpu2DramMc1Ch3 | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+MEMORY_CFG_DATA.DqsMapCpu2DramMc0Ch0 | { 0, 0}
+MEMORY_CFG_DATA.DqsMapCpu2DramMc0Ch1 | { 0, 0}
+MEMORY_CFG_DATA.DqsMapCpu2DramMc0Ch2 | { 0, 0}
+MEMORY_CFG_DATA.DqsMapCpu2DramMc0Ch3 | { 0, 0}
+MEMORY_CFG_DATA.DqsMapCpu2DramMc1Ch0 | { 0, 0}
+MEMORY_CFG_DATA.DqsMapCpu2DramMc1Ch1 | { 0, 0}
+MEMORY_CFG_DATA.DqsMapCpu2DramMc1Ch2 | { 0, 0}
+MEMORY_CFG_DATA.DqsMapCpu2DramMc1Ch3 | { 0, 0}
+MEMORY_CFG_DATA.SaGv | 1
+MEMORY_CFG_DATA.PchHdaAudioLinkDmicEnable | {0x1,0x1}
+MEMORY_CFG_DATA.PchHdaAudioLinkSndwEnable | {0x1,0,0,0}
+MEMORY_CFG_DATA.UsbTcPortEnPreMem | 0xF
+MEMORY_CFG_DATA.PcieClkSrcClkReq | { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0, 0x1 }
+MEMORY_CFG_DATA.TcssItbtPcie0En | 0x1
+MEMORY_CFG_DATA.TcssItbtPcie1En | 0x1
+MEMORY_CFG_DATA.TcssItbtPcie2En | 0x1
+MEMORY_CFG_DATA.TcssItbtPcie3En | 0x1
+MEMORY_CFG_DATA.TcssXhciEn | 0x1
+MEMORY_CFG_DATA.TcssDma0En | 0x1
+MEMORY_CFG_DATA.TcssDma1En | 0x1
+MEMORY_CFG_DATA.Gen3LtcoEnable | 0x0
+MEMORY_CFG_DATA.I2cPostCodeEnable | 0x1
+
+#FSPS UPD
+SILICON_CFG_DATA.PcieRpL1Substates | {0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3}
+SILICON_CFG_DATA.PcieRpLtrEnable | {0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}
+SILICON_CFG_DATA.PcieRpClkReqDetect | {0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}
+SILICON_CFG_DATA.PcieRpAspm | {0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x2, 0x2, 0x2, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4}
+SILICON_CFG_DATA.PcieRpMaxPayload | {0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1}
+SILICON_CFG_DATA.PcieRpAdvancedErrorReporting | {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}
+SILICON_CFG_DATA.PtmEnabled | { 0x1, 0x1, 0x1, 0x1}
+SILICON_CFG_DATA.SataPortsDevSlp | {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+SILICON_CFG_DATA.PortUsb30Enable | {0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+SILICON_CFG_DATA.CpuUsb3OverCurrentPin | {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}
+SILICON_CFG_DATA.PchIshI2cEnable | {0x00, 0x01, 0x00}
+SILICON_CFG_DATA.PchIshGpEnable | {0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00}
+SILICON_CFG_DATA.Usb2OverCurrentPin | {0x03, 0x03, 0x03, 0x00, 0x3, 0x3, 0x3, 0x3, 0x0, 0xff, 0x05, 0x05, 0x06, 0x06, 0x07, 0x07}
+SILICON_CFG_DATA.Usb3OverCurrentPin | {0x03, 0x03, 0x01, 0x1, 0x02, 0x02, 0x03, 0x03, 0x04, 0x04}
+SILICON_CFG_DATA.SerialIoUartPowerGating | {0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02}
+SILICON_CFG_DATA.SerialIoUartDmaEnable | {0x01, 0x01, 0x01, 0x1, 0x1, 0x00, 0x00}
+SILICON_CFG_DATA.SerialIoUartAutoFlow | {0x0, 0x0, 0x01, 0x01, 0x01, 0x00, 0x00}
+SILICON_CFG_DATA.Usb2PhyPetxiset | {0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+SILICON_CFG_DATA.Usb2PhyPredeemp | {0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+SILICON_CFG_DATA.PchSerialIoI2cPadsTermination | {0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01}
+SILICON_CFG_DATA.SataLedEnable | 0
+SILICON_CFG_DATA.EcAvailable | 0
+SILICON_CFG_DATA.EnableTcssCovTypeA | {0x0, 0x82, 0x0, 0x0}
+
+SILICON_CFG_DATA.TurboRatioLimitRatio | {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+SILICON_CFG_DATA.AtomTurboRatioLimitRatio | {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+SILICON_CFG_DATA.PchPmSlpSusMinAssert | 0x4
+SILICON_CFG_DATA.PchPmSlpS3MinAssert | 0x3
+SILICON_CFG_DATA.PchIshI3cEnable | 0
+
+POWER_CFG_DATA.TurboMode | 0
+POWER_CFG_DATA.EnergyEfficientTurbo | 1
+POWER_CFG_DATA.ThermalMonitor | 0
+POWER_CFG_DATA.MaxRatio | 4
+POWER_CFG_DATA.EnableItbm | 0
+POWER_CFG_DATA.Cx | 0x1
+POWER_CFG_DATA.C1e | 0x1
+POWER_CFG_DATA.TimedMwait | 1
+POWER_CFG_DATA.PkgCStateLimit | 0xff
+POWER_CFG_DATA.Eist | 0
+POWER_CFG_DATA.Hwp | 1
+POWER_CFG_DATA.EnableHwpAutoEppGrouping | 1
diff --git a/Platform/MeteorlakeBoardPkg/CfgData/CfgData_Int_Mtlps_DDR5_RVP.dlt b/Platform/MeteorlakeBoardPkg/CfgData/CfgData_Int_Mtlps_DDR5_RVP.dlt
new file mode 100644
index 00000000..c3d72aaa
--- /dev/null
+++ b/Platform/MeteorlakeBoardPkg/CfgData/CfgData_Int_Mtlps_DDR5_RVP.dlt
@@ -0,0 +1,102 @@
+#/** @file
+#
+# Platform Configuration Delta File.
+#
+# Copyright (c) 2021 - 2024, Intel Corporation. All rights reserved.
+# SPDX-License-Identifier: BSD-2-Clause-Patent
+#
+#
+#**/
+
+
+#
+# Delta configuration values for platform ID 0x14
+#
+PLATFORMID_CFG_DATA.PlatformId | 0x14
+PLAT_NAME_CFG_DATA.PlatformName | 'MtlpsRVP'
+GEN_CFG_DATA.PayloadId | ''
+GEN_CFG_DATA.VbtImageId | 5
+#FSPM UPD
+MEMORY_CFG_DATA.SpdDataSel000 | 0
+MEMORY_CFG_DATA.SpdDataSel010 | 0
+MEMORY_CFG_DATA.SpdDataSel020 | 0
+MEMORY_CFG_DATA.SpdDataSel030 | 0
+MEMORY_CFG_DATA.SpdDataSel100 | 0
+MEMORY_CFG_DATA.SpdDataSel101 | 0
+MEMORY_CFG_DATA.SpdDataSel110 | 0
+MEMORY_CFG_DATA.SpdDataSel120 | 0
+MEMORY_CFG_DATA.SpdDataSel130 | 0
+MEMORY_CFG_DATA.MrcFastBoot | 1
+MEMORY_CFG_DATA.DqPinsInterleaved | 0
+MEMORY_CFG_DATA.PchHdaEnable | 1
+MEMORY_CFG_DATA.PchHdaDspEnable | 1
+MEMORY_CFG_DATA.PchHdaAudioLinkHdaEnable | 1
+MEMORY_CFG_DATA.DmiGen3DsPortRxPreset | {0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02}
+MEMORY_CFG_DATA.UserBd | 5
+MEMORY_CFG_DATA.ActiveCoreCount | 0xFF
+MEMORY_CFG_DATA.ActiveSmallCoreCount | 0xFF
+MEMORY_CFG_DATA.PcieClkSrcUsage | { 0, 0x6, 0x70, 0x5, 0x8, 0x7, 0xB, 0xA, 0x9, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }
+MEMORY_CFG_DATA.DqMapCpu2DramMc0Ch0 | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+MEMORY_CFG_DATA.DqMapCpu2DramMc0Ch1 | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+MEMORY_CFG_DATA.DqMapCpu2DramMc0Ch2 | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+MEMORY_CFG_DATA.DqMapCpu2DramMc0Ch3 | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+MEMORY_CFG_DATA.DqMapCpu2DramMc1Ch0 | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+MEMORY_CFG_DATA.DqMapCpu2DramMc1Ch1 | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+MEMORY_CFG_DATA.DqMapCpu2DramMc1Ch2 | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+MEMORY_CFG_DATA.DqMapCpu2DramMc1Ch3 | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+MEMORY_CFG_DATA.SaGv | 1
+MEMORY_CFG_DATA.PchHdaAudioLinkDmicEnable | {0x1,0x1}
+MEMORY_CFG_DATA.PchHdaAudioLinkSndwEnable | {0x1,0,0,0}
+MEMORY_CFG_DATA.UsbTcPortEnPreMem | 0xF
+MEMORY_CFG_DATA.PcieClkSrcClkReq | { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0, 0x1 }
+MEMORY_CFG_DATA.TcssItbtPcie0En | 0x1
+MEMORY_CFG_DATA.TcssItbtPcie1En | 0x1
+MEMORY_CFG_DATA.TcssItbtPcie2En | 0x1
+MEMORY_CFG_DATA.TcssItbtPcie3En | 0x1
+MEMORY_CFG_DATA.TcssXhciEn | 0x1
+MEMORY_CFG_DATA.TcssDma0En | 0x1
+MEMORY_CFG_DATA.TcssDma1En | 0x1
+MEMORY_CFG_DATA.I2cPostCodeEnable | 0x0
+
+#FSPS UPD
+SILICON_CFG_DATA.PcieRpL1Substates | {0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3}
+SILICON_CFG_DATA.PcieRpLtrEnable | {0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}
+SILICON_CFG_DATA.PcieRpClkReqDetect | {0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}
+SILICON_CFG_DATA.PcieRpAspm | {0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x0, 0x0, 0x0, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4}
+SILICON_CFG_DATA.PcieRpMaxPayload | {0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1}
+SILICON_CFG_DATA.PcieRpAdvancedErrorReporting | {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}
+SILICON_CFG_DATA.PtmEnabled | { 0x1, 0x1, 0x1, 0x1}
+SILICON_CFG_DATA.SataPortsDevSlp | {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+SILICON_CFG_DATA.PortUsb30Enable | {0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+SILICON_CFG_DATA.CpuUsb3OverCurrentPin | {0x0, 0x1, 0x2, 0x3, 0xFF, 0xFF, 0xFF, 0xFF}
+SILICON_CFG_DATA.PchIshI2cEnable | {0x01, 0x00, 0x00}
+SILICON_CFG_DATA.PchIshGpEnable | {0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01}
+SILICON_CFG_DATA.Usb2OverCurrentPin | {0x04, 0x05, 0x06, 0x07, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x05, 0x05, 0x06, 0x06, 0x07, 0x07}
+SILICON_CFG_DATA.Usb3OverCurrentPin | {0x00, 0x00, 0x01, 0x1, 0x02, 0x02, 0x03, 0x03, 0x04, 0x04}
+SILICON_CFG_DATA.SerialIoUartPowerGating | {0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02}
+SILICON_CFG_DATA.SerialIoUartDmaEnable | {0x01, 0x01, 0x01, 0x1, 0x1, 0x00, 0x00}
+SILICON_CFG_DATA.SerialIoUartAutoFlow | {0x0, 0x0, 0x01, 0x01, 0x01, 0x00, 0x00}
+SILICON_CFG_DATA.Usb2PhyPetxiset | {0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+SILICON_CFG_DATA.Usb2PhyPredeemp | {0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+SILICON_CFG_DATA.PchSerialIoI2cPadsTermination | {0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01}
+SILICON_CFG_DATA.SataLedEnable | 0
+SILICON_CFG_DATA.EcAvailable | 0
+SILICON_CFG_DATA.TurboRatioLimitRatio | {0x2A, 0x2A, 0x28, 0x28, 0x26, 0x26, 0x26, 0x26}
+SILICON_CFG_DATA.AtomTurboRatioLimitRatio | {0x1F, 0x1F, 0x1F, 0x1F, 0x1C, 0x1C, 0x1C, 0x1C}
+SILICON_CFG_DATA.PchPmSlpSusMinAssert | 0x4
+SILICON_CFG_DATA.PchPmSlpS3MinAssert | 0x3
+SILICON_CFG_DATA.PchIshI3cEnable | 0
+
+POWER_CFG_DATA.TurboMode | 0
+POWER_CFG_DATA.EnergyEfficientTurbo | 1
+POWER_CFG_DATA.ThermalMonitor | 0
+POWER_CFG_DATA.MaxRatio | 4
+POWER_CFG_DATA.EnableItbm | 0
+POWER_CFG_DATA.Cx | 0x0
+POWER_CFG_DATA.C1e | 0x0
+POWER_CFG_DATA.TimedMwait | 1
+POWER_CFG_DATA.PkgCStateLimit | 0
+POWER_CFG_DATA.Eist | 0
+POWER_CFG_DATA.Hwp | 1
+POWER_CFG_DATA.EnableHwpAutoEppGrouping | 1
+
diff --git a/Platform/MeteorlakeBoardPkg/CfgData/CfgData_Tcc_Feature.dlt b/Platform/MeteorlakeBoardPkg/CfgData/CfgData_Tcc_Feature.dlt
deleted file mode 100644
index 80a056da..00000000
--- a/Platform/MeteorlakeBoardPkg/CfgData/CfgData_Tcc_Feature.dlt
+++ /dev/null
@@ -1,33 +0,0 @@
-## @file
-#
-# TCC feature Configuration Delta File.
-#
-# Copyright (c) 2021, Intel Corporation. All rights reserved.
-# SPDX-License-Identifier: BSD-2-Clause-Patent
-#
-##
-#
-
-# Note: This file will come into effect only when ENABLE_TCC = 1 in BoardConfig file
-# Enable TCC config data
-TCC_CFG_DATA.TccEnable | 1
-TCC_CFG_DATA.TccTuning | 1
-TCC_CFG_DATA.TccSoftSram | 1
-TCC_CFG_DATA.TccErrorLog | 1
-
-# Enable Timed GPIO
-SILICON_CFG_DATA.EnableTimedGpio0 | 1
-SILICON_CFG_DATA.EnableTimedGpio1 | 1
-
-# Enable RTCM from the boot option
-BOOT_OPTION_CFG_DATA_0.BootFlags_0 | 24
-BOOT_OPTION_CFG_DATA_1.ImageType_1 | 0x1E
-
-BOOT_OPTION_CFG_DATA_2.BootFlags_2 | 24
-BOOT_OPTION_CFG_DATA_3.ImageType_3 | 0x1E
-
-BOOT_OPTION_CFG_DATA_4.BootFlags_4 | 24
-BOOT_OPTION_CFG_DATA_5.ImageType_5 | 0x1E
-
-BOOT_OPTION_CFG_DATA_6.BootFlags_6 | 24
-BOOT_OPTION_CFG_DATA_7.ImageType_7 | 0x1E
diff --git a/Platform/MeteorlakeBoardPkg/CfgData/CfgData_Tsn_Feature.dlt b/Platform/MeteorlakeBoardPkg/CfgData/CfgData_Tsn_Feature.dlt
deleted file mode 100644
index 704cb430..00000000
--- a/Platform/MeteorlakeBoardPkg/CfgData/CfgData_Tsn_Feature.dlt
+++ /dev/null
@@ -1,14 +0,0 @@
-## @file
-#
-# TSN feature Configuration Delta File.
-#
-# Copyright (c) 2021, Intel Corporation. All rights reserved.
-# SPDX-License-Identifier: BSD-2-Clause-Patent
-#
-##
-#
-
-SILICON_CFG_DATA.PchTsnEnable | 1
-
-# TSN Multi-VC is not enabled by default
-SILICON_CFG_DATA.PchTsnMultiVcEnable | 0
diff --git a/Platform/MeteorlakeBoardPkg/Library/Stage2BoardInitLib/Stage2BoardInitLib.c b/Platform/MeteorlakeBoardPkg/Library/Stage2BoardInitLib/Stage2BoardInitLib.c
index da356b97..929231aa 100644
--- a/Platform/MeteorlakeBoardPkg/Library/Stage2BoardInitLib/Stage2BoardInitLib.c
+++ b/Platform/MeteorlakeBoardPkg/Library/Stage2BoardInitLib/Stage2BoardInitLib.c
@@ -982,7 +982,6 @@ PlatformUpdateAcpiTable (
VOID *FspHobList;
PLATFORM_DATA *PlatformData;
FEATURES_CFG_DATA *FeaturesCfgData;
- TCC_CFG_DATA *TccCfgData;
EFI_STATUS Status;
EFI_ACPI_6_3_FIXED_ACPI_DESCRIPTION_TABLE *FadtPointer;
@@ -1049,14 +1048,6 @@ PlatformUpdateAcpiTable (
} else if (Table->Signature == SIGNATURE_32 ('R', 'T', 'C', 'T')) {
DEBUG ((DEBUG_INFO, "Find RTCT table\n"));
- if (FeaturePcdGet (PcdTccEnabled)) {
- TccCfgData = (TCC_CFG_DATA *) FindConfigDataByTag(CDATA_TCC_TAG);
- if ((TccCfgData != NULL) && (TccCfgData->TccEnable != 0)) {
- Status = UpdateAcpiRtctTable(Table);
- DEBUG ( (DEBUG_INFO, "Updated Rtct Table entries in AcpiTable status: %r\n", Status) );
- return Status;
- }
- }
return EFI_UNSUPPORTED;
} else if (Table->Signature == EFI_BDAT_TABLE_SIGNATURE) {
FspHobList = GetFspHobListPtr ();
@@ -1384,7 +1375,6 @@ PlatformUpdateAcpiGnvs (
DPTF_NVS_AREA *DptfNvs;
FSPS_UPD *FspsUpd;
FSP_S_CONFIG *FspsConfig;
- TCC_CFG_DATA *TccCfgData;
SILICON_CFG_DATA *SiCfgData;
FEATURES_CFG_DATA *FeaturesCfgData;
UINT8 Index;
@@ -1394,9 +1384,6 @@ PlatformUpdateAcpiGnvs (
UINT32 Data32;
GPIO_GROUP GroupToGpeDwX[3];
UINT32 GroupDw[3];
- CPUID_EXTENDED_TIME_STAMP_COUNTER_EDX Edx;
- CPUID_PROCESSOR_FREQUENCY_EBX Ebx;
- PLATFORM_DATA *PlatformData;
GlobalNvs = (GLOBAL_NVS_AREA *)GnvsIn;
ZeroMem (GlobalNvs, sizeof (GLOBAL_NVS_AREA));
@@ -1846,20 +1833,4 @@ PlatformUpdateAcpiGnvs (
PlatformNvs->PpmFlags = CpuNvs->PpmFlags;
SocUpdateAcpiGnvs ((VOID *)GnvsIn);
-
- // TCC mode enabling
- if (FeaturePcdGet (PcdTccEnabled)) {
- TccCfgData = (TCC_CFG_DATA *) FindConfigDataByTag(CDATA_FEATURES_TAG);
- if ((TccCfgData != NULL) && (TccCfgData->TccEnable != 0)) {
- AsmCpuid (CPUID_TIME_STAMP_COUNTER, NULL, &Ebx.Uint32, NULL, NULL);
- AsmCpuid (CPUID_EXTENDED_TIME_STAMP_COUNTER, NULL, NULL, NULL, &Edx.Uint32);
- }
-
- // If TCC is enabled, use the TCC policy from subregion
- PlatformData = (PLATFORM_DATA *)GetPlatformDataPtr ();
- if((PlatformData != NULL) && PlatformData->PlatformFeatures.TccDsoTuning){
- PlatformNvs->Rtd3Support = PlatformData->PlatformFeatures.TccRtd3Support;
- PlatformNvs->LowPowerS0Idle = PlatformData->PlatformFeatures.TccLowPowerS0Idle;
- }
- }
}
diff --git a/Silicon/MeteorlakePkg/FspBin/FspBin.inf b/Silicon/MeteorlakePkg/FspBin/FspBin.inf
new file mode 100644
index 00000000..a1eb791d
--- /dev/null
+++ b/Silicon/MeteorlakePkg/FspBin/FspBin.inf
@@ -0,0 +1,31 @@
+## @file
+# File to describe FSP repo information
+#
+# Copyright (c) 2024, Intel Corporation. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-2-Clause-Patent
+#
+#
+##
+
+
+[UserExtensions.SBL."CloneRepo"]
+ REPO = https://github.com/intel/FSP.git
+ COMMIT = cc6399e8c759ad4ed83c2d6ea568fd918fc9bc06
+
+[UserExtensions.SBL."CopyList"]
+ MeteorLakeFspBinPkg/IoT/MeteorLake/Fsp.fd : Silicon/MeteorlakePkg/FspBin/FspRel.bin
+ MeteorLakeFspBinPkg/IoT/MeteorLake/Fsp.fd : Silicon/MeteorlakePkg/FspBin/FspDbg.bin
+ MeteorLakeFspBinPkg/IoT/MeteorLake/Fsp.bsf : Silicon/MeteorlakePkg/FspBin/Fsp.bsf
+ MeteorLakeFspBinPkg/IoT/MeteorLake/Include/FspUpd.h : Silicon/MeteorlakePkg/Include/FspUpd.h
+ MeteorLakeFspBinPkg/IoT/MeteorLake/Include/FsptUpd.h : Silicon/MeteorlakePkg/Include/FsptUpd.h
+ MeteorLakeFspBinPkg/IoT/MeteorLake/Include/FspmUpd.h : Silicon/MeteorlakePkg/Include/FspmUpd.h
+ MeteorLakeFspBinPkg/IoT/MeteorLake/Include/FspsUpd.h : Silicon/MeteorlakePkg/Include/FspsUpd.h
+ MeteorLakeFspBinPkg/IoT/MeteorLake/Include/MemInfoHob.h : Silicon/MeteorlakePkg/Include/MemInfoHob.h
+ MeteorLakeFspBinPkg/IoT/MeteorLake/VbtBin/VbtMtlpCrb.dat : Platform/MeteorlakeBoardPkg/VbtBin/VbtMtlpCrb.dat
+ MeteorLakeFspBinPkg/IoT/MeteorLake/VbtBin/VbtMtlpLp5.dat : Platform/MeteorlakeBoardPkg/VbtBin/VbtMtlpLp5.dat
+ MeteorLakeFspBinPkg/IoT/MeteorLake/VbtBin/VbtMtlpRvp.dat : Platform/MeteorlakeBoardPkg/VbtBin/VbtMtlpRvp.dat
+ MeteorLakeFspBinPkg/IoT/MeteorLake/VbtBin/VbtMtlpsCrb.dat : Platform/MeteorlakeBoardPkg/VbtBin/VbtMtlpsCrb.dat
+ MeteorLakeFspBinPkg/IoT/MeteorLake/VbtBin/VbtMtlpsRvp.dat : Platform/MeteorlakeBoardPkg/VbtBin/VbtMtlpsRvp.dat
+ MeteorLakeFspBinPkg/IoT/MeteorLake/VbtBin/Vbt.json : Platform/MeteorlakeBoardPkg/VbtBin/Vbt.json
+ FSP_License.pdf : Silicon/MeteorlakePkg/Fsp/FSP_License.pdf
diff --git a/Silicon/MeteorlakePkg/Microcode/Microcode.inf b/Silicon/MeteorlakePkg/Microcode/Microcode.inf
new file mode 100644
index 00000000..be046d5c
--- /dev/null
+++ b/Silicon/MeteorlakePkg/Microcode/Microcode.inf
@@ -0,0 +1,25 @@
+## @file
+#
+# Copyright (c) 2024, Intel Corporation. All rights reserved.
+# SPDX-License-Identifier: BSD-2-Clause-Patent
+#
+#
+##
+
+[Defines]
+ INF_VERSION = 0x00010005
+ BASE_NAME = Microcode
+ FILE_GUID = 197DB236-F856-4924-90F8-CDF12FB875F3
+ MODULE_TYPE = USER_DEFINED
+ VERSION_STRING = 1.0
+
+[Sources]
+ m_e6_a06a4_0000001c.mcb
+
+[UserExtensions.SBL."CloneRepo"]
+ REPO = https://github.com/slimbootloader/firmwareblob.git
+ COMMIT = 57cc7eb0da0c244e5e527d0c5ee571d9234c03da
+
+[UserExtensions.SBL."CopyList"]
+ Microcode/Meteorlake/m_e6_a06a4_0000001c.pdb : Silicon/MeteorlakePkg/Microcode/m_e6_a06a4_0000001c.mcb
+