Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
eb2aa28
pc80/mc146818rtc: Add API to get CMOS failure state
miczyg1 Aug 7, 2026
c8630b0
efi/option: Restore and return defaults if CMOS is invalid
miczyg1 Aug 7, 2026
8686af7
mainboard/msi/{ms7d25,ms7e06}: Add EZ DEBUG LED support
miczyg1 Feb 14, 2024
d1210a1
superio/nuvoton/nct6687d: Add driver for SMBus
miczyg1 Aug 7, 2026
f06efeb
drivers/nuvoton/nct3933: Introduce Nuvoton NCT3933 driver
miczyg1 Aug 7, 2026
75ecebb
device/dram/ddr4.c: Add API to parse XMP profile on DDR4
miczyg1 Aug 7, 2026
07b2c12
mb/msi/{ms7d25,ms7e06}: Verify DDR4 XMP profile and boost DRAM voltage
miczyg1 Aug 8, 2026
24fc8e1
soc/intel/common,alderlake: Add more CFR options
miczyg1 Aug 9, 2026
c0ea0ad
superio/nuvoton/nct6687d: Compile EC API in SMM
miczyg1 Aug 9, 2026
dff97b0
mainboard/msi/ms7d25,ms7e06: Add CFR menu and options
miczyg1 Aug 9, 2026
d778f5b
mainboard/msi/ms7d25,ms7e06/smihandler.c: Disable USB power in S5
miczyg1 Aug 9, 2026
3f5b5e5
payloads/external/edk2/Kconfig.dasharo: Update EDK2 revision for CFR
miczyg1 Aug 9, 2026
47a4ed5
configs/config.msi_{ms7d25,ms7e06}: Switch to CFR
miczyg1 Aug 9, 2026
40d4ffa
configs/config.msi_ms7d25: Bump to v1.1.7-rc4
miczyg1 Aug 9, 2026
7252cd3
configs/config.msi_ms7e06: Bump to v0.9.5-rc4
miczyg1 Aug 9, 2026
3fde0d7
configs/config.msi_ms7d25: Bump to v1.1.7-rc5
miczyg1 Aug 10, 2026
b5ec017
configs/config.msi_ms7e06: Bump to v0.9.5-rc5
miczyg1 Aug 10, 2026
a01feeb
3rdparty/intel-microcode: Bump submodule to microcode-20260811
miczyg1 Aug 12, 2026
c96f0b7
configs/config.msi_ms7d25: Bump to v1.1.7
miczyg1 Aug 12, 2026
b4bd89b
configs/config.msi_ms7e06: Bump to v0.9.5
miczyg1 Aug 12, 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
2 changes: 1 addition & 1 deletion 3rdparty/intel-microcode
Submodule intel-microcode updated from 439ddd to 4b73c1
16 changes: 7 additions & 9 deletions configs/config.msi_ms7d25_ddr4
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
CONFIG_LOCALVERSION="v1.1.7-rc3"
CONFIG_OPTION_BACKEND_NONE=y
CONFIG_LOCALVERSION="v1.1.7"
CONFIG_SBOM=y
CONFIG_SBOM_PAYLOAD=y
CONFIG_SBOM_ME=y
Expand Down Expand Up @@ -33,12 +32,12 @@ CONFIG_HAVE_ME_BIN=y
CONFIG_DASHARO_PREFER_S3_SLEEP=y
CONFIG_PCIEXP_SUPPORT_RESIZABLE_BARS=y
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=0x01010703
CONFIG_DRIVERS_EFI_MAIN_FW_LSV=0x01010701
CONFIG_DRIVERS_EFI_MAIN_FW_VERSION=0x01010780
CONFIG_DRIVERS_EFI_MAIN_FW_LSV=0x01010780
CONFIG_DRIVERS_EFI_UPDATE_CAPSULES=y
CONFIG_DRIVERS_OPTION_CFR=y
CONFIG_TPM2=y
CONFIG_STM=y
CONFIG_STM_STMPE_ENABLED=y
Expand Down Expand Up @@ -76,14 +75,13 @@ CONFIG_EDK2_DASHARO_NETWORK_CONFIG=y
CONFIG_EDK2_DASHARO_CHIPSET_CONFIG=y
CONFIG_EDK2_DASHARO_POWER_CONFIG=y
CONFIG_EDK2_DASHARO_PCI_CONFIG=y
CONFIG_EDK2_DASHARO_MEMORY_CONFIG=y
CONFIG_EDK2_DASHARO_SPD_PROFILE_OPTION=y
CONFIG_EDK2_DASHARO_SERIAL_REDIRECTION_DEFAULT_ENABLE=y
CONFIG_EDK2_DASHARO_CPU_CONFIG=y
CONFIG_EDK2_CORE_DISABLE_OPTION=y
CONFIG_EDK2_HYPERTHREADING_OPTION=y
CONFIG_EDK2_BOOT_MENU_KEY=0x0015
CONFIG_EDK2_SETUP_MENU_KEY=0x0008
CONFIG_EDK2_RAM_DISK_ENABLE=y
CONFIG_EDK2_CREATE_PREINSTALLED_BOOT_OPTIONS=y
CONFIG_EDK2_CAPSULES_V2=y
CONFIG_EDK2_CAPSULES_V2_TRANSITION=y
CONFIG_EDK2_ENABLE_FAST_BOOT_FEATURE=y
CONFIG_EDK2_ENABLE_QUIET_BOOT_FEATURE=y
16 changes: 7 additions & 9 deletions configs/config.msi_ms7d25_ddr5
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
CONFIG_LOCALVERSION="v1.1.7-rc3"
CONFIG_OPTION_BACKEND_NONE=y
CONFIG_LOCALVERSION="v1.1.7"
CONFIG_SBOM=y
CONFIG_SBOM_PAYLOAD=y
CONFIG_SBOM_ME=y
Expand Down Expand Up @@ -33,12 +32,12 @@ CONFIG_HAVE_ME_BIN=y
CONFIG_DASHARO_PREFER_S3_SLEEP=y
CONFIG_PCIEXP_SUPPORT_RESIZABLE_BARS=y
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=0x01010703
CONFIG_DRIVERS_EFI_MAIN_FW_LSV=0x01010701
CONFIG_DRIVERS_EFI_MAIN_FW_VERSION=0x01010780
CONFIG_DRIVERS_EFI_MAIN_FW_LSV=0x01010780
CONFIG_DRIVERS_EFI_UPDATE_CAPSULES=y
CONFIG_DRIVERS_OPTION_CFR=y
CONFIG_TPM2=y
CONFIG_STM=y
CONFIG_STM_STMPE_ENABLED=y
Expand Down Expand Up @@ -75,14 +74,13 @@ CONFIG_EDK2_DASHARO_NETWORK_CONFIG=y
CONFIG_EDK2_DASHARO_CHIPSET_CONFIG=y
CONFIG_EDK2_DASHARO_POWER_CONFIG=y
CONFIG_EDK2_DASHARO_PCI_CONFIG=y
CONFIG_EDK2_DASHARO_MEMORY_CONFIG=y
CONFIG_EDK2_DASHARO_SPD_PROFILE_OPTION=y
CONFIG_EDK2_DASHARO_SERIAL_REDIRECTION_DEFAULT_ENABLE=y
CONFIG_EDK2_DASHARO_CPU_CONFIG=y
CONFIG_EDK2_CORE_DISABLE_OPTION=y
CONFIG_EDK2_HYPERTHREADING_OPTION=y
CONFIG_EDK2_BOOT_MENU_KEY=0x0015
CONFIG_EDK2_SETUP_MENU_KEY=0x0008
CONFIG_EDK2_RAM_DISK_ENABLE=y
CONFIG_EDK2_CREATE_PREINSTALLED_BOOT_OPTIONS=y
CONFIG_EDK2_CAPSULES_V2=y
CONFIG_EDK2_CAPSULES_V2_TRANSITION=y
CONFIG_EDK2_ENABLE_FAST_BOOT_FEATURE=y
CONFIG_EDK2_ENABLE_QUIET_BOOT_FEATURE=y
16 changes: 7 additions & 9 deletions configs/config.msi_ms7e06_ddr4
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
CONFIG_LOCALVERSION="v0.9.5-rc3"
CONFIG_OPTION_BACKEND_NONE=y
CONFIG_LOCALVERSION="v0.9.5"
CONFIG_SBOM=y
CONFIG_SBOM_PAYLOAD=y
CONFIG_SBOM_ME=y
Expand Down Expand Up @@ -33,12 +32,12 @@ CONFIG_HAVE_ME_BIN=y
CONFIG_DASHARO_PREFER_S3_SLEEP=y
CONFIG_PCIEXP_SUPPORT_RESIZABLE_BARS=y
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=0x00090503
CONFIG_DRIVERS_EFI_MAIN_FW_LSV=0x00090501
CONFIG_DRIVERS_EFI_MAIN_FW_VERSION=0x00090580
CONFIG_DRIVERS_EFI_MAIN_FW_LSV=0x00090580
CONFIG_DRIVERS_EFI_UPDATE_CAPSULES=y
CONFIG_DRIVERS_OPTION_CFR=y
CONFIG_TPM2=y
CONFIG_STM=y
CONFIG_STM_STMPE_ENABLED=y
Expand Down Expand Up @@ -75,14 +74,13 @@ CONFIG_EDK2_DASHARO_NETWORK_CONFIG=y
CONFIG_EDK2_DASHARO_CHIPSET_CONFIG=y
CONFIG_EDK2_DASHARO_POWER_CONFIG=y
CONFIG_EDK2_DASHARO_PCI_CONFIG=y
CONFIG_EDK2_DASHARO_MEMORY_CONFIG=y
CONFIG_EDK2_DASHARO_SPD_PROFILE_OPTION=y
CONFIG_EDK2_DASHARO_SERIAL_REDIRECTION_DEFAULT_ENABLE=y
CONFIG_EDK2_DASHARO_CPU_CONFIG=y
CONFIG_EDK2_CORE_DISABLE_OPTION=y
CONFIG_EDK2_HYPERTHREADING_OPTION=y
CONFIG_EDK2_BOOT_MENU_KEY=0x0015
CONFIG_EDK2_SETUP_MENU_KEY=0x0008
CONFIG_EDK2_RAM_DISK_ENABLE=y
CONFIG_EDK2_CREATE_PREINSTALLED_BOOT_OPTIONS=y
CONFIG_EDK2_CAPSULES_V2=y
CONFIG_EDK2_CAPSULES_V2_TRANSITION=y
CONFIG_EDK2_ENABLE_FAST_BOOT_FEATURE=y
CONFIG_EDK2_ENABLE_QUIET_BOOT_FEATURE=y
16 changes: 7 additions & 9 deletions configs/config.msi_ms7e06_ddr5
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
CONFIG_LOCALVERSION="v0.9.5-rc3"
CONFIG_OPTION_BACKEND_NONE=y
CONFIG_LOCALVERSION="v0.9.5"
CONFIG_SBOM=y
CONFIG_SBOM_PAYLOAD=y
CONFIG_SBOM_ME=y
Expand Down Expand Up @@ -33,12 +32,12 @@ CONFIG_HAVE_ME_BIN=y
CONFIG_DASHARO_PREFER_S3_SLEEP=y
CONFIG_PCIEXP_SUPPORT_RESIZABLE_BARS=y
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=0x00090503
CONFIG_DRIVERS_EFI_MAIN_FW_LSV=0x00090501
CONFIG_DRIVERS_EFI_MAIN_FW_VERSION=0x00090580
CONFIG_DRIVERS_EFI_MAIN_FW_LSV=0x00090580
CONFIG_DRIVERS_EFI_UPDATE_CAPSULES=y
CONFIG_DRIVERS_OPTION_CFR=y
CONFIG_TPM2=y
CONFIG_STM=y
CONFIG_STM_STMPE_ENABLED=y
Expand Down Expand Up @@ -75,14 +74,13 @@ CONFIG_EDK2_DASHARO_NETWORK_CONFIG=y
CONFIG_EDK2_DASHARO_CHIPSET_CONFIG=y
CONFIG_EDK2_DASHARO_POWER_CONFIG=y
CONFIG_EDK2_DASHARO_PCI_CONFIG=y
CONFIG_EDK2_DASHARO_MEMORY_CONFIG=y
CONFIG_EDK2_DASHARO_SPD_PROFILE_OPTION=y
CONFIG_EDK2_DASHARO_SERIAL_REDIRECTION_DEFAULT_ENABLE=y
CONFIG_EDK2_DASHARO_CPU_CONFIG=y
CONFIG_EDK2_CORE_DISABLE_OPTION=y
CONFIG_EDK2_HYPERTHREADING_OPTION=y
CONFIG_EDK2_BOOT_MENU_KEY=0x0015
CONFIG_EDK2_SETUP_MENU_KEY=0x0008
CONFIG_EDK2_RAM_DISK_ENABLE=y
CONFIG_EDK2_CREATE_PREINSTALLED_BOOT_OPTIONS=y
CONFIG_EDK2_CAPSULES_V2=y
CONFIG_EDK2_CAPSULES_V2_TRANSITION=y
CONFIG_EDK2_ENABLE_FAST_BOOT_FEATURE=y
CONFIG_EDK2_ENABLE_QUIET_BOOT_FEATURE=y
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 "6d5a8a9a6363e2b30657c4ee4d2088ec11356f0b"
default "5dc2238ef9d7a60e260a7cf4ccd93c0f2c8a04dd"

config EDK2_SYSTEM76_EC_LOGGING
bool "Enable edk2 logging to System76 EC"
Expand Down
74 changes: 74 additions & 0 deletions src/device/dram/ddr4.c
Original file line number Diff line number Diff line change
Expand Up @@ -226,6 +226,8 @@ int spd_decode_ddr4(struct dimm_attr_ddr4_st *dimm, spd_ddr4_raw_data spd)

dimm->ecc_extension = spd[SPD_PRIMARY_SDRAM_WIDTH] & SPD_ECC_8BIT;

dimm->dimms_per_channel = 4;

/* make sure we have the manufacturing information block */
if (spd_bytes_used > 320) {
dimm->manufacturer_id = (spd[351] << 8) | spd[350];
Expand All @@ -236,6 +238,78 @@ int spd_decode_ddr4(struct dimm_attr_ddr4_st *dimm, spd_ddr4_raw_data spd)
return SPD_STATUS_OK;
}

/**
* \brief Decode the raw SPD XMP data
*
* Decodes a raw SPD XMP data from a DDR4 DIMM, and organizes it into a
* @ref dimm_attr structure. The SPD data must first be read in a contiguous
* array, and passed to this function.
*
* @param dimm pointer to @ref dimm_attr structure where the decoded data is to
* be stored
* @param spd array of raw data previously read from the SPD.
*
* @param profile select one of the profiles to load
*
* @return @ref spd_status enumerator
* SPD_STATUS_OK -- decoding was successful
* SPD_STATUS_INVALID -- invalid SPD or not a DDR4 SPD
* SPD_STATUS_CRC_ERROR -- CRC did not verify
* SPD_STATUS_INVALID_FIELD -- A field with an invalid value was
* detected.
*/
int spd_xmp_decode_ddr4(struct dimm_attr_ddr4_st *dimm, spd_ddr4_raw_data spd,
enum ddr4_xmp_profile profile)
{
int ret;
u8 *xmp; /* pointer to XMP profile data */

/* need a valid SPD */
ret = spd_decode_ddr4(dimm, spd);
if (ret != SPD_STATUS_OK)
return ret;

/* search for magic header */
if (spd[384] != 0x0C || spd[385] != 0x4A) {
printk(BIOS_ERR, "Not a DDR4 XMP profile!\n");
dimm->dram_type = SPD_MEMORY_TYPE_UNDEFINED;
return SPD_STATUS_INVALID;
}

if (profile == DDR4_XMP_PROFILE_1) {
if (!(spd[386] & 1)) {
printk(BIOS_ERR, "XMP profile 1 disabled!\n");
dimm->dram_type = SPD_MEMORY_TYPE_UNDEFINED;
return SPD_STATUS_INVALID;
}

xmp = &spd[393];
dimm->dimms_per_channel = ((spd[386] >> 2) & 0x3) + 1;
printk(BIOS_DEBUG, "XMP profile 1 present\n");
} else {
if (!(spd[386] & 2)) {
printk(BIOS_ERR, "XMP 2 profile disabled!\n");
dimm->dram_type = SPD_MEMORY_TYPE_UNDEFINED;
return SPD_STATUS_INVALID;
}
xmp = &spd[440];
dimm->dimms_per_channel = ((spd[386] >> 4) & 0x3) + 1;
printk(BIOS_DEBUG, "XMP profile 2 present\n");
}

printk(BIOS_DEBUG, " Max DIMMs/channel : %u\n", dimm->dimms_per_channel);

printk(BIOS_DEBUG, " XMP Revision : %u.%u\n", spd[387] >> 4, spd[387] & 0xf);

/* calculate voltage in mV */
dimm->vdd_voltage = (xmp[0] & 0x7f) * 10;
dimm->vdd_voltage += (xmp[0] >> 7) * 1000;

printk(BIOS_DEBUG, " Requested voltage : %u mV\n", dimm->vdd_voltage);

return ret;
}

enum cb_err spd_add_smbios17_ddr4(const u8 channel, const u8 slot, const u16 selected_freq,
const struct dimm_attr_ddr4_st *info)
{
Expand Down
4 changes: 4 additions & 0 deletions src/drivers/efi/option.c
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

#include <efi/efi_datatype.h>
#include <option.h>
#include <pc80/mc146818rtc.h>
#include <smmstore.h>

#include "efivars.h"
Expand All @@ -16,6 +17,9 @@ unsigned int get_uint_option(const char *name, const unsigned int fallback)
uint32_t var;
uint32_t size;

if (cmos_is_invalid())
return fallback;

if (smmstore_lookup_region(&rdev))
return fallback;

Expand Down
6 changes: 6 additions & 0 deletions src/drivers/nuvoton/nct3933/Kconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
config DRIVERS_NUVOTON_NCT3933
bool
default n
help
Driver for Nuvoton NCT3933 SMBus Sink/Source Current DAC

5 changes: 5 additions & 0 deletions src/drivers/nuvoton/nct3933/Makefile.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
## SPDX-License-Identifier: GPL-2.0-only

ifeq ($(CONFIG_DRIVERS_NUVOTON_NCT3933),y)
all-y += nct3933.c
endif
Loading
Loading