]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
crypto: ccp - Add additional information about an SEV firmware upgrade
authorTom Lendacky <thomas.lendacky@amd.com>
Wed, 14 Aug 2024 20:42:40 +0000 (15:42 -0500)
committerHerbert Xu <herbert@gondor.apana.org.au>
Sat, 24 Aug 2024 13:36:07 +0000 (21:36 +0800)
Print additional information, in the form of the old and new versions of
the SEV firmware, so that it can be seen what the base firmware was before
the upgrade.

Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com>
Reviewed-by: Ashish Kalra <ashish.kalra@amd.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/ccp/sev-dev.c

index 9810edbb272d2bdf6721f32458fb65d06c1aaa00..3b89f23afcd7d657a357a47ffdaadf6fb191799e 100644 (file)
@@ -1629,8 +1629,6 @@ static int sev_update_firmware(struct device *dev)
 
        if (ret)
                dev_dbg(dev, "Failed to update SEV firmware: %#x\n", error);
-       else
-               dev_info(dev, "SEV firmware update successful\n");
 
        __free_pages(p, order);
 
@@ -2382,6 +2380,7 @@ void sev_pci_init(void)
 {
        struct sev_device *sev = psp_master->sev_data;
        struct sev_platform_init_args args = {0};
+       u8 api_major, api_minor, build;
        int rc;
 
        if (!sev)
@@ -2392,9 +2391,19 @@ void sev_pci_init(void)
        if (sev_get_api_version())
                goto err;
 
+       api_major = sev->api_major;
+       api_minor = sev->api_minor;
+       build     = sev->build;
+
        if (sev_update_firmware(sev->dev) == 0)
                sev_get_api_version();
 
+       if (api_major != sev->api_major || api_minor != sev->api_minor ||
+           build != sev->build)
+               dev_info(sev->dev, "SEV firmware updated from %d.%d.%d to %d.%d.%d\n",
+                        api_major, api_minor, build,
+                        sev->api_major, sev->api_minor, sev->build);
+
        /* Initialize the platform */
        args.probe = true;
        rc = sev_platform_init(&args);