diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71-e3000/0129-crypto-ccp-Allow-SEV-firmware-to-be-chosen-based-on-.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71-e3000/0129-crypto-ccp-Allow-SEV-firmware-to-be-chosen-based-on-.patch | 99 |
1 files changed, 0 insertions, 99 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71-e3000/0129-crypto-ccp-Allow-SEV-firmware-to-be-chosen-based-on-.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71-e3000/0129-crypto-ccp-Allow-SEV-firmware-to-be-chosen-based-on-.patch deleted file mode 100644 index a7b50496..00000000 --- a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71-e3000/0129-crypto-ccp-Allow-SEV-firmware-to-be-chosen-based-on-.patch +++ /dev/null @@ -1,99 +0,0 @@ -From 03e12867a4dad629e3b1695a2049ebacd2229134 Mon Sep 17 00:00:00 2001 -From: Janakarajan Natarajan <Janakarajan.Natarajan@amd.com> -Date: Fri, 14 Sep 2018 17:32:04 -0500 -Subject: [PATCH 129/131] crypto: ccp - Allow SEV firmware to be chosen based - on Family and Model - -During PSP initialization, there is an attempt to update the SEV firmware -by looking in /lib/firmware/amd/. Currently, sev.fw is the expected name -of the firmware blob. - -This patch will allow for firmware filenames based on the family and -model of the processor. - -Model specific firmware files are given highest priority. Followed by -firmware for a subset of models. Lastly, failing the previous two options, -fallback to looking for sev.fw. - -Signed-off-by: Janakarajan Natarajan <Janakarajan.Natarajan@amd.com> -Reviewed-by: Tom Lendacky <thomas.lendacky@amd.com> -Acked-by: Gary R Hook <gary.hook@amd.com> -Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> -Signed-off-by: Sudheesh Mavila <sudheesh.mavila@amd.com> ---- - drivers/crypto/ccp/psp-dev.c | 44 ++++++++++++++++++++++++++++++++++++++++---- - 1 file changed, 40 insertions(+), 4 deletions(-) - -diff --git a/drivers/crypto/ccp/psp-dev.c b/drivers/crypto/ccp/psp-dev.c -index f541e60..3571aa2 100644 ---- a/drivers/crypto/ccp/psp-dev.c -+++ b/drivers/crypto/ccp/psp-dev.c -@@ -31,8 +31,9 @@ - ((psp_master->api_major) >= _maj && \ - (psp_master->api_minor) >= _min) - --#define DEVICE_NAME "sev" --#define SEV_FW_FILE "amd/sev.fw" -+#define DEVICE_NAME "sev" -+#define SEV_FW_FILE "amd/sev.fw" -+#define SEV_FW_NAME_SIZE 64 - - static DEFINE_MUTEX(sev_cmd_mutex); - static struct sev_misc_dev *misc_dev; -@@ -440,6 +441,40 @@ static int sev_get_api_version(void) - return 0; - } - -+int sev_get_firmware(struct device *dev, const struct firmware **firmware) -+{ -+ char fw_name_specific[SEV_FW_NAME_SIZE]; -+ char fw_name_subset[SEV_FW_NAME_SIZE]; -+ -+ snprintf(fw_name_specific, sizeof(fw_name_specific), -+ "amd/amd_sev_fam%.2xh_model%.2xh.sbin", -+ boot_cpu_data.x86, boot_cpu_data.x86_model); -+ -+ snprintf(fw_name_subset, sizeof(fw_name_subset), -+ "amd/amd_sev_fam%.2xh_model%.1xxh.sbin", -+ boot_cpu_data.x86, (boot_cpu_data.x86_model & 0xf0) >> 4); -+ -+ /* Check for SEV FW for a particular model. -+ * Ex. amd_sev_fam17h_model00h.sbin for Family 17h Model 00h -+ * -+ * or -+ * -+ * Check for SEV FW common to a subset of models. -+ * Ex. amd_sev_fam17h_model0xh.sbin for -+ * Family 17h Model 00h -- Family 17h Model 0Fh -+ * -+ * or -+ * -+ * Fall-back to using generic name: sev.fw -+ */ -+ if ((request_firmware(firmware, fw_name_specific, dev) >= 0) || -+ (request_firmware(firmware, fw_name_subset, dev) >= 0) || -+ (request_firmware(firmware, SEV_FW_FILE, dev) >= 0)) -+ return 0; -+ -+ return -ENOENT; -+} -+ - /* Don't fail if SEV FW couldn't be updated. Continue with existing SEV FW */ - static int sev_update_firmware(struct device *dev) - { -@@ -449,9 +484,10 @@ static int sev_update_firmware(struct device *dev) - struct page *p; - u64 data_size; - -- ret = request_firmware(&firmware, SEV_FW_FILE, dev); -- if (ret < 0) -+ if (sev_get_firmware(dev, &firmware) == -ENOENT) { -+ dev_dbg(dev, "No SEV firmware file present\n"); - return -1; -+ } - - /* - * SEV FW expects the physical address given to it to be 32 --- -2.7.4 - |