Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
61b4128
security/intel/stm/Makefile.mk: Enable STM compression in CBFS
miczyg1 Jul 1, 2026
e5addd4
mb/msi/{ms7d25,ms7e06}: Provide TSEG and MSEG overrides for STM
miczyg1 Jul 1, 2026
1517e38
payloads/external/edk2: Pass STM to EDK2 build environment
miczyg1 Jul 1, 2026
478e16e
security/intel/stm/StmPlatformSmm.c: Control STM with variable
miczyg1 Jul 1, 2026
e69631b
drivers/intel/fsp2_0,soc/intel/alderlake: Add support for 64bit mode
miczyg1 Jul 6, 2026
40e0405
security/intel/stm/StmApi.h: Sync header with submodule
miczyg1 Jul 6, 2026
f605988
security/intel/stm/StmPlatformResource.c: Fix flash mmapped range
miczyg1 Jul 6, 2026
f992ed8
security/intel/stm: Prepare for 64 bit mode
miczyg1 Jul 6, 2026
179a20b
security/intel/stm/SmmStm.c: Create page tables for whole memory space
miczyg1 Jul 6, 2026
fb89df3
drivers/smmstore/store.c: Make error messages unique
miczyg1 Aug 5, 2026
0c62ab6
cpu/x86/smm: Allocate additional 4K for SMM communication buffer
miczyg1 Aug 5, 2026
dad0f80
security/intel/stm: Describe all resources used by coreboot SMI handlers
miczyg1 Aug 6, 2026
4355ced
soc/intel/common/block/fast_spi: Do not reallocate SPI MMIO
miczyg1 Aug 6, 2026
5da7207
mb/msi/ms7d25,ms7e06: Add board-specific STM resources
miczyg1 Aug 6, 2026
2c9c8e0
security/intel/stm/Kconfig: Fix checks on TTYS0_BASE
miczyg1 Aug 6, 2026
1adf843
sb/intel,soc/intel: Set smram_to_vmcs_restore_required when STM enabled
miczyg1 Aug 6, 2026
44136a6
payloads/external/edk2/Makefile: Use coreboot toolchain instead of ho…
miczyg1 Aug 7, 2026
12532be
security/intel/stm: Build STM with coreboot toolchain
miczyg1 Aug 7, 2026
3c5290d
payloads/external/edk2/Kconfig.dasharo: Update EDK2 default revision
miczyg1 Aug 7, 2026
3c62653
configs/config.msi_{ms7d25,ms7e06}: Enable STM by default
miczyg1 Aug 7, 2026
c34809f
configs/config.msi_ms7d25: Bump to v1.1.7-rc3
miczyg1 Aug 8, 2026
f917f01
configs/config.msi_ms7e06: Bump to v0.9.5-rc3
miczyg1 Aug 8, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 6 additions & 2 deletions configs/config.msi_ms7d25_ddr4
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
CONFIG_LOCALVERSION="v1.1.7-rc2"
CONFIG_LOCALVERSION="v1.1.7-rc3"
CONFIG_OPTION_BACKEND_NONE=y
CONFIG_SBOM=y
CONFIG_SBOM_PAYLOAD=y
Expand Down Expand Up @@ -36,10 +36,14 @@ CONFIG_PCIEXP_LANE_ERR_STAT_CLEAR=y
CONFIG_DRIVERS_EFI_VARIABLE_STORE=y
CONFIG_DRIVERS_EFI_FW_INFO=y
CONFIG_DRIVERS_EFI_MAIN_FW_GUID="0f3e8ba6-19d3-461b-bbbc-8b5689fe8097"
CONFIG_DRIVERS_EFI_MAIN_FW_VERSION=0x01010702
CONFIG_DRIVERS_EFI_MAIN_FW_VERSION=0x01010703
CONFIG_DRIVERS_EFI_MAIN_FW_LSV=0x01010701
CONFIG_DRIVERS_EFI_UPDATE_CAPSULES=y
CONFIG_TPM2=y
CONFIG_STM=y
CONFIG_STM_STMPE_ENABLED=y
CONFIG_STM_TTYS0_BASE=0x0f0
CONFIG_STM_CBMEM_CONSOLE=y
CONFIG_BOOTMEDIA_LOCK_CONTROLLER=y
CONFIG_BOOTMEDIA_LOCK_WPRO_VBOOT_RO=y
CONFIG_BOOTMEDIA_LOCK_IN_VERSTAGE=y
Expand Down
8 changes: 6 additions & 2 deletions configs/config.msi_ms7d25_ddr5
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
CONFIG_LOCALVERSION="v1.1.7-rc2"
CONFIG_LOCALVERSION="v1.1.7-rc3"
CONFIG_OPTION_BACKEND_NONE=y
CONFIG_SBOM=y
CONFIG_SBOM_PAYLOAD=y
Expand Down Expand Up @@ -36,10 +36,14 @@ CONFIG_PCIEXP_LANE_ERR_STAT_CLEAR=y
CONFIG_DRIVERS_EFI_VARIABLE_STORE=y
CONFIG_DRIVERS_EFI_FW_INFO=y
CONFIG_DRIVERS_EFI_MAIN_FW_GUID="119059ec-1a5e-4844-b2e6-6f573b257570"
CONFIG_DRIVERS_EFI_MAIN_FW_VERSION=0x01010702
CONFIG_DRIVERS_EFI_MAIN_FW_VERSION=0x01010703
CONFIG_DRIVERS_EFI_MAIN_FW_LSV=0x01010701
CONFIG_DRIVERS_EFI_UPDATE_CAPSULES=y
CONFIG_TPM2=y
CONFIG_STM=y
CONFIG_STM_STMPE_ENABLED=y
CONFIG_STM_TTYS0_BASE=0x0f0
CONFIG_STM_CBMEM_CONSOLE=y
CONFIG_BOOTMEDIA_LOCK_CONTROLLER=y
CONFIG_BOOTMEDIA_LOCK_WPRO_VBOOT_RO=y
CONFIG_BOOTMEDIA_LOCK_IN_VERSTAGE=y
Expand Down
8 changes: 6 additions & 2 deletions configs/config.msi_ms7e06_ddr4
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
CONFIG_LOCALVERSION="v0.9.5-rc2"
CONFIG_LOCALVERSION="v0.9.5-rc3"
CONFIG_OPTION_BACKEND_NONE=y
CONFIG_SBOM=y
CONFIG_SBOM_PAYLOAD=y
Expand Down Expand Up @@ -36,10 +36,14 @@ CONFIG_PCIEXP_LANE_ERR_STAT_CLEAR=y
CONFIG_DRIVERS_EFI_VARIABLE_STORE=y
CONFIG_DRIVERS_EFI_FW_INFO=y
CONFIG_DRIVERS_EFI_MAIN_FW_GUID="91e6522e-25e1-4543-9b38-02e2aeafc9ed"
CONFIG_DRIVERS_EFI_MAIN_FW_VERSION=0x00090502
CONFIG_DRIVERS_EFI_MAIN_FW_VERSION=0x00090503
CONFIG_DRIVERS_EFI_MAIN_FW_LSV=0x00090501
CONFIG_DRIVERS_EFI_UPDATE_CAPSULES=y
CONFIG_TPM2=y
CONFIG_STM=y
CONFIG_STM_STMPE_ENABLED=y
CONFIG_STM_TTYS0_BASE=0x0f0
CONFIG_STM_CBMEM_CONSOLE=y
CONFIG_BOOTMEDIA_LOCK_CONTROLLER=y
CONFIG_BOOTMEDIA_LOCK_WPRO_VBOOT_RO=y
CONFIG_BOOTMEDIA_LOCK_IN_VERSTAGE=y
Expand Down
8 changes: 6 additions & 2 deletions configs/config.msi_ms7e06_ddr5
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
CONFIG_LOCALVERSION="v0.9.5-rc2"
CONFIG_LOCALVERSION="v0.9.5-rc3"
CONFIG_OPTION_BACKEND_NONE=y
CONFIG_SBOM=y
CONFIG_SBOM_PAYLOAD=y
Expand Down Expand Up @@ -36,10 +36,14 @@ CONFIG_PCIEXP_LANE_ERR_STAT_CLEAR=y
CONFIG_DRIVERS_EFI_VARIABLE_STORE=y
CONFIG_DRIVERS_EFI_FW_INFO=y
CONFIG_DRIVERS_EFI_MAIN_FW_GUID="58301b3d-5b6d-4562-9ec1-fbce40f15253"
CONFIG_DRIVERS_EFI_MAIN_FW_VERSION=0x00090502
CONFIG_DRIVERS_EFI_MAIN_FW_VERSION=0x00090503
CONFIG_DRIVERS_EFI_MAIN_FW_LSV=0x00090501
CONFIG_DRIVERS_EFI_UPDATE_CAPSULES=y
CONFIG_TPM2=y
CONFIG_STM=y
CONFIG_STM_STMPE_ENABLED=y
CONFIG_STM_TTYS0_BASE=0x0f0
CONFIG_STM_CBMEM_CONSOLE=y
CONFIG_BOOTMEDIA_LOCK_CONTROLLER=y
CONFIG_BOOTMEDIA_LOCK_WPRO_VBOOT_RO=y
CONFIG_BOOTMEDIA_LOCK_IN_VERSTAGE=y
Expand Down
27 changes: 10 additions & 17 deletions payloads/external/Makefile.mk
Original file line number Diff line number Diff line change
Expand Up @@ -213,14 +213,10 @@ $(obj)/UEFIPAYLOAD.fd: $(DOTCONFIG) $(IPXE_EFI)
CONFIG_SOC_AMD_COMMON_BLOCK_PSP_GEN2=$(CONFIG_SOC_AMD_COMMON_BLOCK_PSP_GEN2) \
CONFIG_DRIVERS_EFI_UPDATE_CAPSULES=$(CONFIG_DRIVERS_EFI_UPDATE_CAPSULES) \
CONFIG_DRIVERS_EFI_MAIN_FW_GUID=$(CONFIG_DRIVERS_EFI_MAIN_FW_GUID) \
GCC_CC_x86_32=$(GCC_CC_x86_32) \
GCC_CC_x86_64=$(GCC_CC_x86_64) \
GCC_CC_arm=$(GCC_CC_arm) \
GCC_CC_arm64=$(GCC_CC_arm64) \
OBJCOPY_x86_32=$(OBJCOPY_x86_32) \
OBJCOPY_x86_64=$(OBJCOPY_x86_64) \
OBJCOPY_arm=$(OBJCOPY_arm) \
OBJCOPY_arm64=$(OBJCOPY_arm64) \
GCC_IA32_PREFIX=$(patsubst %gcc,%,$(GCC_CC_x86_32)) \
GCC_X64_PREFIX=$(patsubst %gcc,%,$(GCC_CC_x86_64)) \
GCC_ARM_PREFIX=$(patsubst %gcc,%,$(GCC_CC_arm)) \
GCC_AARCH64_PREFIX=$(patsubst %gcc,%,$(GCC_CC_arm64)) \
MFLAGS= MAKEFLAGS= \
CONFIG_EDK2_ABOVE_4G_MEMORY=$(CONFIG_EDK2_ABOVE_4G_MEMORY) \
CONFIG_EDK2_BATTERY_CONFIG_OPTION=$(CONFIG_EDK2_BATTERY_CONFIG_OPTION) \
Expand Down Expand Up @@ -308,7 +304,8 @@ $(obj)/UEFIPAYLOAD.fd: $(DOTCONFIG) $(IPXE_EFI)
CONFIG_EDK2_VGA_BIOS_VENDOR_ID=0x$(word 1,$(subst $(comma),$(spc),$(call strip_quotes,$(CONFIG_VGA_BIOS_ID)))) \
CONFIG_EDK2_VGA_BIOS_DEVICE_ID=0x$(word 2,$(subst $(comma),$(spc),$(call strip_quotes,$(CONFIG_VGA_BIOS_ID)))) \
CONFIG_VGA_BIOS_FILE=$(CONFIG_VGA_BIOS_FILE) \
CONFIG_BOOTSPLASH_REGION_LOGO_FILE=$(CONFIG_BOOTSPLASH_REGION_LOGO_FILE)
CONFIG_BOOTSPLASH_REGION_LOGO_FILE=$(CONFIG_BOOTSPLASH_REGION_LOGO_FILE) \
CONFIG_STM=$(CONFIG_STM)

$(obj)/ShimmedUniversalPayload.elf: $(DOTCONFIG)
$(MAKE) -C payloads/external/edk2 UniversalPayload \
Expand Down Expand Up @@ -341,14 +338,10 @@ $(obj)/ShimmedUniversalPayload.elf: $(DOTCONFIG)
CONFIG_ECAM_MMCONF_LENGTH=$(CONFIG_ECAM_MMCONF_LENGTH) \
CONFIG_CPU_XTAL_HZ=$(CONFIG_CPU_XTAL_HZ) \
CONFIG_SMMSTORE_V2=$(CONFIG_SMMSTORE_V2) \
GCC_CC_x86_32=$(GCC_CC_x86_32) \
GCC_CC_x86_64=$(GCC_CC_x86_64) \
GCC_CC_arm=$(GCC_CC_arm) \
GCC_CC_arm64=$(GCC_CC_arm64) \
OBJCOPY_x86_32=$(OBJCOPY_x86_32) \
OBJCOPY_x86_64=$(OBJCOPY_x86_64) \
OBJCOPY_arm=$(OBJCOPY_arm) \
OBJCOPY_arm64=$(OBJCOPY_arm64) \
GCC_IA32_PREFIX=$(patsubst %gcc,%,$(GCC_CC_x86_32)) \
GCC_X64_PREFIX=$(patsubst %gcc,%,$(GCC_CC_x86_64)) \
GCC_ARM_PREFIX=$(patsubst %gcc,%,$(GCC_CC_arm)) \
GCC_AARCH64_PREFIX=$(patsubst %gcc,%,$(GCC_CC_arm64)) \
MFLAGS= MAKEFLAGS=

# FILO
Expand Down
2 changes: 1 addition & 1 deletion payloads/external/edk2/Kconfig.dasharo
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ config EDK2_REPOSITORY
default "https://github.com/Dasharo/edk2"

config EDK2_TAG_OR_REV
default "61ce35c29bb384240028d4319755b5759affbbe1"
default "6d5a8a9a6363e2b30657c4ee4d2088ec11356f0b"

config EDK2_SYSTEM76_EC_LOGGING
bool "Enable edk2 logging to System76 EC"
Expand Down
14 changes: 13 additions & 1 deletion payloads/external/edk2/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,15 @@ else
export PACKAGES_PATH := $(EDK2_PATH)
endif

OBJCOPY = $(GCC_PREFIX)objcopy
OBJCOPY = $(GCC_IA32_PREFIX)objcopy

export GCC_IA32_PREFIX
export GCC_X64_PREFIX
export GCC_ARM_PREFIX
export GCC_AARCH64_PREFIX
# tools_def.txt maps GCC_IA32_PREFIX and GCC_X64_PREFIX both to ENV(GCC_BIN).
# Use the X64 prefix as GCC_BIN since x86_64-elf-gcc handles IA32 (-m32) too.
export GCC_BIN := $(GCC_X64_PREFIX)

PAYLOAD_NAME=DasharoPayloadPkg

Expand Down Expand Up @@ -460,6 +468,10 @@ BUILD_STR += -D USE_AMD_PLATFORM_GOP=TRUE
BUILD_STR += --pcd gDasharoPayloadPkgTokenSpaceGuid.AmdVbiosOptionRomVendorId=$(CONFIG_EDK2_VGA_BIOS_VENDOR_ID)
BUILD_STR += --pcd gDasharoPayloadPkgTokenSpaceGuid.AmdVbiosOptionRomDeviceId=$(CONFIG_EDK2_VGA_BIOS_DEVICE_ID)
endif
# PcdShowSecurityStmOption = FALSE
ifeq ($(CONFIG_STM),y)
BUILD_STR += --pcd gDasharoSystemFeaturesTokenSpaceGuid.PcdShowSecurityStmOption=TRUE
endif

BUILD_STR += --pcd gEfiMdeModulePkgTokenSpaceGuid.PcdFirmwareVersionString=$(CONFIG_EDK2_FW_VERSION)
BUILD_STR += --pcd gEfiMdeModulePkgTokenSpaceGuid.PcdFirmwareVendor=$(CONFIG_EDK2_FW_VENDOR)
Expand Down
19 changes: 19 additions & 0 deletions src/cpu/x86/smm/smm_module_handler.c
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,25 @@ bool smm_region_overlaps_handler(const struct region *r)
return region_overlap(&r_smm, r) || region_overlap(&r_aseg, r);
}

void smm_stm_restore_smram_to_vmcs(void *smm_save_state)
{
if (!CONFIG(STM))
return;

/*
* Signal STM to propagate SMRAM save state changes back to the
* interrupted guest VMCS on RSM. Required for return values written to
* EAX (e.g. SMMSTORE result) to be visible in OS context after RSM.
* Without this bit set, ReadSyncSmmStateSaveArea() in the STM runtime
* skips the sync entirely, so the guest sees stale pre-SMI register
* values instead of the handler's return code.
*/
TXT_PROCESSOR_SMM_DESCRIPTOR *psd =
(TXT_PROCESSOR_SMM_DESCRIPTOR *)
((uintptr_t)smm_save_state - STM_PSD_SIZE);
psd->smm_resume_state.smram_to_vmcs_restore_required = 1;
}

asmlinkage void smm_handler_start(void *arg)
{
const struct smm_module_params *p;
Expand Down
8 changes: 7 additions & 1 deletion src/cpu/x86/smm/smm_module_loader.c
Original file line number Diff line number Diff line change
Expand Up @@ -358,7 +358,13 @@ static void setup_smihandler_params(struct smm_runtime *mod_params,
return;
}

void *ptr = cbmem_add(CBMEM_ID_SMM_COMBUFFER, info.block_size);
/*
* Add additional 4KiB for parameters, so that arguments can be in the same
* communication buffer, instead of arbitrary memory allocated by the caller.
* It helps with STM resource reporting and keeping the SMI handlers from
* accessing memory it doesn't have to access.
*/
void *ptr = cbmem_add(CBMEM_ID_SMM_COMBUFFER, info.block_size + 4 * KiB);
if (!ptr) {
printk(BIOS_ERR, "SMMSTORE: Failed to add com buffer\n");
return;
Expand Down
1 change: 1 addition & 0 deletions src/drivers/intel/fsp2_0/include/fsp/api.h
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
#include <stddef.h>
#include <stdint.h>
#include <fsp/soc_binding.h>
#include <fsp/fsp_status_x64_to_x86.h>
#include <soc/intel/common/mma.h>

#define FSP_SUCCESS EFI_SUCCESS
Expand Down
53 changes: 53 additions & 0 deletions src/drivers/intel/fsp2_0/include/fsp/fsp_status_x64_to_x86.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
/* SPDX-License-Identifier: GPL-2.0-or-later */

#ifndef _FSP2_0_STATUS_X64_TO_X86_H_
#define _FSP2_0_STATUS_X64_TO_X86_H_

/* Fixup definitions for x86_64 mode when FSP uses 32bit mode */
#if CONFIG(PLATFORM_USES_FSP2_X86_32) && CONFIG(USE_X86_64_SUPPORT)

#undef MAX_BIT
#undef ENCODE_RESET_REQUEST
#undef FSP_STATUS_RESET_REQUIRED_COLD
#undef FSP_STATUS_RESET_REQUIRED_WARM
#undef FSP_STATUS_RESET_REQUIRED_3
#undef FSP_STATUS_RESET_REQUIRED_4
#undef FSP_STATUS_RESET_REQUIRED_5
#undef FSP_STATUS_RESET_REQUIRED_6
#undef FSP_STATUS_RESET_REQUIRED_7
#undef FSP_STATUS_RESET_REQUIRED_8
#undef FSP_STATUS_VARIABLE_REQUEST

#undef EFI_SUCCESS
#undef EFI_INVALID_PARAMETER
#undef EFI_UNSUPPORTED
#undef EFI_DEVICE_ERROR
#undef EFI_NOT_FOUND
#undef EFI_NOT_STARTED

#define MAX_BIT 0x80000000
#define ENCODE_RESET_REQUEST(ResetType) \
((UINT32)((MAX_BIT >> 1) | (ResetType)))
#define FSP_STATUS_RESET_REQUIRED_COLD ENCODE_RESET_REQUEST(1)
#define FSP_STATUS_RESET_REQUIRED_WARM ENCODE_RESET_REQUEST(2)
#define FSP_STATUS_RESET_REQUIRED_3 ENCODE_RESET_REQUEST(3)
#define FSP_STATUS_RESET_REQUIRED_4 ENCODE_RESET_REQUEST(4)
#define FSP_STATUS_RESET_REQUIRED_5 ENCODE_RESET_REQUEST(5)
#define FSP_STATUS_RESET_REQUIRED_6 ENCODE_RESET_REQUEST(6)
#define FSP_STATUS_RESET_REQUIRED_7 ENCODE_RESET_REQUEST(7)
#define FSP_STATUS_RESET_REQUIRED_8 ENCODE_RESET_REQUEST(8)
#define FSP_STATUS_VARIABLE_REQUEST ENCODE_RESET_REQUEST(10)

#define ENCODE_EFI_STATUS(Status) \
((UINT32)((MAX_BIT) | (Status)))

#define EFI_SUCCESS 0
#define EFI_INVALID_PARAMETER ENCODE_EFI_STATUS(2)
#define EFI_UNSUPPORTED ENCODE_EFI_STATUS(3)
#define EFI_DEVICE_ERROR ENCODE_EFI_STATUS(7)
#define EFI_NOT_FOUND ENCODE_EFI_STATUS(14)
#define EFI_NOT_STARTED ENCODE_EFI_STATUS(19)

#endif

#endif /* _FSP2_0_STATUS_X64_TO_X86_H_ */
4 changes: 2 additions & 2 deletions src/drivers/smmstore/store.c
Original file line number Diff line number Diff line change
Expand Up @@ -419,7 +419,7 @@ static void *mmap_com_buf(struct region_device *com_buf, uint32_t offset, uint32

void *ptr = rdev_mmap(com_buf, offset, bufsize);
if (!ptr)
printk(BIOS_ERR, "smm store: not enough space for new data\n");
printk(BIOS_ERR, "smm store: could not mmap com buffer\n");

return ptr;
}
Expand Down Expand Up @@ -478,7 +478,7 @@ int smmstore_rawwrite_region(uint32_t block_id, uint32_t offset, uint32_t bufsiz
return -1;

if (rdev_chain(&store, &store, block_id * SMM_BLOCK_SIZE + offset, bufsize)) {
printk(BIOS_ERR, "smm store: not enough space for new data\n");
printk(BIOS_ERR, "smm store: could not create subregion rdev\n");
return -1;
}

Expand Down
6 changes: 6 additions & 0 deletions src/include/cpu/x86/smm.h
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,12 @@ void *smm_get_save_state(int cpu);
/* Returns true if the region overlaps with the SMM */
bool smm_region_overlaps_handler(const struct region *r);

/*
* Sets the bit to restore modified SMRAM to VMCS when STM is enabled.
* Requird to be called by all SMI handler that modify save state.
*/
void smm_stm_restore_smram_to_vmcs(void *smm_save_state);

/* Returns true if the memory pointed to overlaps with SMM reserved memory. */
static inline bool smm_points_to_smram(const void *ptr, const size_t len)
{
Expand Down
16 changes: 16 additions & 0 deletions src/mainboard/msi/ms7d25/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -95,4 +95,20 @@ config INTEL_FIT_LOC

endif

if STM

config IED_REGION_SIZE
default 0x0

config SMM_TSEG_SIZE
default 0x1000000

config MSEG_SIZE
default 0xCD0000

config STM_HEAPSIZE
default 0xB47000

endif

endif
1 change: 1 addition & 0 deletions src/mainboard/msi/ms7d25/Makefile.mk
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ romstage-y += romstage_fsp_params.c

ramstage-y += mainboard.c
ramstage-y += smbios.c
ramstage-$(CONFIG_STM) += stm.c

all-y += die.c
smm-y += die.c
Expand Down
21 changes: 21 additions & 0 deletions src/mainboard/msi/ms7d25/stm.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
/* SPDX-License-Identifier: GPL-2.0-only */

#include <security/intel/stm/SmmStm.h>
#include <security/intel/stm/StmPlatformResource.h>

// Nuvoton SIO resources
static STM_RSC_IO_DESC rsc_sio_io = {{IO_RANGE, sizeof(STM_RSC_IO_DESC)},
0x4e, 2};

static STM_RSC_IO_DESC rsc_hwm_io = {{IO_RANGE, sizeof(STM_RSC_IO_DESC)},
0xa20, 8};

int mainboard_stm_add_resources(void)
{
int Status = 0;

Status |= add_pi_resource((void *)&rsc_sio_io, 1);
Status |= add_pi_resource((void *)&rsc_hwm_io, 1);

return Status;
}
15 changes: 15 additions & 0 deletions src/mainboard/msi/ms7e06/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -94,5 +94,20 @@ config INTEL_FIT_LOC

endif

if STM

config IED_REGION_SIZE
default 0x0

config SMM_TSEG_SIZE
default 0x1000000

config MSEG_SIZE
default 0xCD0000

config STM_HEAPSIZE
default 0xB47000

endif

endif
1 change: 1 addition & 0 deletions src/mainboard/msi/ms7e06/Makefile.mk
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ romstage-y += romstage_fsp_params.c

ramstage-y += mainboard.c
ramstage-y += smbios.c
ramstage-$(CONFIG_STM) += stm.c

all-y += die.c
smm-y += die.c
Expand Down
Loading
Loading