diff --git a/src/drivers/pc80/rtc/option.c b/src/drivers/pc80/rtc/option.c
index bb697df..dc78dbb 100644
--- a/src/drivers/pc80/rtc/option.c
+++ b/src/drivers/pc80/rtc/option.c
@@ -239,25 +239,25 @@
 	return cmos_checksum_valid(LB_CKS_RANGE_START, LB_CKS_RANGE_END, LB_CKS_LOC);
 }
 
-static void cmos_load_defaults(void)
-{
-	size_t length = 128;
-	size_t i;
-
-	const unsigned char *cmos_default =
-		cbfs_boot_map_with_leak("cmos.default",
-				CBFS_COMPONENT_CMOS_DEFAULT, &length);
-	if (!cmos_default)
-		return;
-
-	u8 control_state = cmos_disable_rtc();
-	for (i = 14; i < MIN(128, length); i++)
-		cmos_write_inner(cmos_default[i], i);
-	cmos_restore_rtc(control_state);
-}
 
 void sanitize_cmos(void)
 {
-	if (cmos_error() || !cmos_lb_cks_valid() || CONFIG(STATIC_OPTION_TABLE))
-		cmos_load_defaults();
+	const unsigned char *cmos_default;
+	const bool cmos_need_reset =
+		CONFIG(STATIC_OPTION_TABLE) || cmos_error() || !cmos_lb_cks_valid();
+	size_t length = 128;
+	size_t i;
+
+	if (CONFIG(TPM_MEASURED_BOOT) || cmos_need_reset) {
+		cmos_default = cbfs_boot_map_with_leak("cmos.default",
+			CBFS_COMPONENT_CMOS_DEFAULT, &length);
+
+		if (!cmos_default || !cmos_need_reset)
+			return;
+
+		u8 control_state = cmos_disable_rtc();
+		for (i = 14; i < MIN(128, length); i++)
+			cmos_write_inner(cmos_default[i], i);
+		cmos_restore_rtc(control_state);
+	}
 }
