]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
efi_loader: Show FirmwareVendor and FirmwareRevision in helloworld
authorSimon Glass <sjg@chromium.org>
Thu, 26 Sep 2024 21:59:35 +0000 (23:59 +0200)
committerTom Rini <trini@konsulko.com>
Thu, 10 Oct 2024 04:04:56 +0000 (22:04 -0600)
Show the firmware vendor and revision to make it clear which firmware is
used, e.g. whether U-Boot is providing the boot services.

The output will look like

    Firmware vendor: Das U-Boot
    Firmware revision: 20241000

Signed-off-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
lib/efi_loader/helloworld.c

index 586177de0c8933f55c315f1d05a5cb9220bcc8f2..d10a5229f740f1e5089f1370d578886cb0d035f8 100644 (file)
@@ -71,6 +71,33 @@ static void uint2dec(u32 value, u16 **buf)
        *buf = pos;
 }
 
+/**
+ * Print an unsigned 32bit value as hexadecimal number to an u16 string
+ *
+ * @value:     value to be printed
+ * @buf:       pointer to buffer address
+ *             on return position of terminating zero word
+ */
+static void uint2hex(u32 value, u16 **buf)
+{
+       u16 *pos = *buf;
+       int i;
+       u16 c;
+
+       for (i = 0; i < 8; ++i) {
+               /* Write current digit */
+               c = value >> 28;
+               value <<= 4;
+               if (c < 10)
+                       c += '0';
+               else
+                       c += 'a' - 10;
+               *pos++ = c;
+       }
+       *pos = 0;
+       *buf = pos;
+}
+
 /**
  * print_uefi_revision() - print UEFI revision number
  */
@@ -96,6 +123,16 @@ static void print_uefi_revision(void)
        con_out->output_string(con_out, u"Running on UEFI ");
        con_out->output_string(con_out, rev);
        con_out->output_string(con_out, u"\r\n");
+
+       con_out->output_string(con_out, u"Firmware vendor: ");
+       con_out->output_string(con_out, systable->fw_vendor);
+       con_out->output_string(con_out, u"\r\n");
+
+       buf = rev;
+       uint2hex(systable->fw_revision, &buf);
+       con_out->output_string(con_out, u"Firmware revision: ");
+       con_out->output_string(con_out, rev);
+       con_out->output_string(con_out, u"\r\n");
 }
 
 /**