[coreboot-gerrit] Change in coreboot[master]: mb/scaleway/tagada: Don't change FIAMUX when Security Override is set

Julien Viard de Galbert (Code Review) gerrit at coreboot.org
Thu Mar 29 15:08:04 CEST 2018


Julien Viard de Galbert has uploaded this change for review. ( https://review.coreboot.org/25443


Change subject: mb/scaleway/tagada: Don't change FIAMUX when Security Override is set
......................................................................

mb/scaleway/tagada: Don't change FIAMUX when Security Override is set

This will not enable M.2 SATA drive if the ME config was lost
(For instance after flashin a full flash factory image)

This is required so that the system can boot without FIA MUX error
during flash update procedure.

Change-Id: I55a8bcdc30bc67af2d3e9ccb8844eac599727108
Signed-off-by: Julien Viard de Galbert <jviarddegalbert at online.net>
---
M src/mainboard/scaleway/tagada/hsio.c
1 file changed, 33 insertions(+), 0 deletions(-)



  git pull ssh://review.coreboot.org:29418/coreboot refs/changes/43/25443/1

diff --git a/src/mainboard/scaleway/tagada/hsio.c b/src/mainboard/scaleway/tagada/hsio.c
index dca80ac..b48ef11 100644
--- a/src/mainboard/scaleway/tagada/hsio.c
+++ b/src/mainboard/scaleway/tagada/hsio.c
@@ -19,6 +19,8 @@
 #include <hsio.h>
 #include <gpio_defs.h>
 #include <soc/fiamux.h>
+#include <string.h>
+#include <fast_spi_def.h>
 
 #ifdef __RAMSTAGE__
 static void update_hsio_info_for_m2_slots(size_t num_of_entry,
@@ -27,6 +29,14 @@
 	uint32_t reg32;
 	bool m2a_pcie, m2b_pcie;
 	uint8_t entry;
+	BL_FIA_MUX_CONFIG_HOB *fiamux_hob_data = get_fiamux_hob_data();
+	uint16_t supported_hsio_lanes;
+	void *spibar = fast_spi_get_bar();
+	uint32_t hsfs;
+
+	/* Configure FIA MUX PCD */
+	supported_hsio_lanes =
+		(uint16_t)fiamux_hob_data->FiaMuxConfig.SkuNumLanesAllowed;
 
 	/* Detects modules type */
 	// _GPIO_4 : LFFF: M2A_CFGn : M2A_SATAn : 0 SATA, 1 PCIe
@@ -45,6 +55,10 @@
 	// HSIO default config is for PCIe, only update for SATA
 	// (also secondary PCIe lines are already set depending on SKU)
 	for (entry = 0; entry < num_of_entry; entry++) {
+		/* only update the active config */
+		if (config[entry].NumLanesSupported != supported_hsio_lanes)
+			continue;
+		BL_ME_FIA_CONFIG *fia_config = &(config[entry].FiaConfig);
 		BL_ME_FIA_MUX_CONFIG *mux_config =
 			&(config[entry].FiaConfig.MuxConfiguration);
 		BL_ME_FIA_SATA_CONFIG *sata_config =
@@ -63,6 +77,25 @@
 			sata_config->BL_MeFiaSataLaneSataSel.Lane12SataSel =
 				BL_ME_FIA_SATA_CONTROLLER_LANE_ASSIGNED;
 		}
+
+		/* Check SPIBAR for security override
+		   at least one M2 slot is populated with SATA
+		   the configuration is different form ME current one */
+		hsfs = read32(spibar + SPIBAR_HSFSTS_CTL);
+		if ((!(hsfs & SPIBAR_HSFSTS_FDOPSS))
+			&& (!m2a_pcie || !m2b_pcie)
+			&& memcmp(fia_config,
+				  &fiamux_hob_data->FiaMuxConfig.FiaMuxConfig,
+				  sizeof(BL_ME_FIA_CONFIG))) {
+			/* update configuration to NOT change ME config
+			   as it will fail with security override set. */
+			memcpy(fia_config,
+			       &fiamux_hob_data->FiaMuxConfig.FiaMuxConfig,
+			       sizeof(BL_ME_FIA_CONFIG));
+			printk(BIOS_CRIT, "FLASH SECURITY OVERRIDE SET: "
+					  "M2 SATA Slots are not available!\n");
+
+		}
 	}
 }
 #endif

-- 
To view, visit https://review.coreboot.org/25443
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings

Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I55a8bcdc30bc67af2d3e9ccb8844eac599727108
Gerrit-Change-Number: 25443
Gerrit-PatchSet: 1
Gerrit-Owner: Julien Viard de Galbert <jviarddegalbert at online.net>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.coreboot.org/pipermail/coreboot-gerrit/attachments/20180329/edf12f1f/attachment-0001.html>


More information about the coreboot-gerrit mailing list