[coreboot-gerrit] Change in coreboot[master]: intel/common/sgx: Use data pointer of device_t to get microcode

Pratikkumar V Prajapati (Code Review) gerrit at coreboot.org
Mon Aug 14 23:34:12 CEST 2017


Pratikkumar V Prajapati has uploaded this change for review. ( https://review.coreboot.org/21009


Change subject: intel/common/sgx: Use data pointer of device_t to get microcode
......................................................................

intel/common/sgx: Use data pointer of device_t to get microcode

Get microcode patch pointer from device_t struct of CPU.

Change-Id: I9196c30ec7ea52d7184a96b33835def197e2c799
Signed-off-by: Pratik Prajapati <pratikkumar.v.prajapati at intel.com>
---
M src/soc/intel/common/block/include/intelblocks/sgx.h
M src/soc/intel/common/block/sgx/sgx.c
2 files changed, 12 insertions(+), 4 deletions(-)



  git pull ssh://review.coreboot.org:29418/coreboot refs/changes/09/21009/1

diff --git a/src/soc/intel/common/block/include/intelblocks/sgx.h b/src/soc/intel/common/block/include/intelblocks/sgx.h
index cc2dc7f..9929f0f 100644
--- a/src/soc/intel/common/block/include/intelblocks/sgx.h
+++ b/src/soc/intel/common/block/include/intelblocks/sgx.h
@@ -25,7 +25,7 @@
 /*
  * Configure SGX.
  */
-void sgx_configure(const void *microcode_patch);
+void sgx_configure(void);
 
 /*
  * Configure core PRMRR
diff --git a/src/soc/intel/common/block/sgx/sgx.c b/src/soc/intel/common/block/sgx/sgx.c
index 53a68cf..55cb272 100644
--- a/src/soc/intel/common/block/sgx/sgx.c
+++ b/src/soc/intel/common/block/sgx/sgx.c
@@ -13,6 +13,7 @@
  * GNU General Public License for more details.
  */
 
+#include <assert.h>
 #include <console/console.h>
 #include <chip.h>
 #include <cpu/x86/msr.h>
@@ -156,13 +157,20 @@
 	return 0;
 }
 
-void sgx_configure(const void *microcode_patch)
+void sgx_configure(void)
 {
-	device_t dev = SA_DEV_ROOT;
+	device_t dev = dev_find_path(NULL, DEVICE_PATH_CPU_CLUSTER);
+	assert(dev != NULL);
+
 	config_t *conf = dev->chip_info;
 
 	if (!conf->sgx_enable || !is_sgx_supported() || !is_prmrr_set()) {
 		printk(BIOS_ERR, "SGX: pre-conditions not met\n");
+		return;
+	}
+
+	if (!dev->data) {
+		printk(BIOS_ERR, "SGX: microcode not set in device struct\n");
 		return;
 	}
 
@@ -177,7 +185,7 @@
 	cpu_lock_sgx_memory();
 
 	/* Reload the microcode patch */
-	intel_microcode_load_unlocked(microcode_patch);
+	intel_microcode_load_unlocked(dev->data);
 
 	/* Lock the SGX feature */
 	lock_sgx();

-- 
To view, visit https://review.coreboot.org/21009
To unsubscribe, visit https://review.coreboot.org/settings

Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I9196c30ec7ea52d7184a96b33835def197e2c799
Gerrit-Change-Number: 21009
Gerrit-PatchSet: 1
Gerrit-Owner: Pratikkumar V Prajapati <pratikkumar.v.prajapati at intel.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.coreboot.org/pipermail/coreboot-gerrit/attachments/20170814/709bf73b/attachment.html>


More information about the coreboot-gerrit mailing list