efi_selftest: allow to select a single test for execution
[oweals/u-boot.git] / lib / efi_selftest / efi_selftest_console.c
index 840e2290c60c05684c6afb898e4c66db42c374da..6a7fd20da5c51b008fd0794b07c96345c50225cc 100644 (file)
@@ -142,6 +142,7 @@ void efi_st_printf(const char *fmt, ...)
        const char *c;
        u16 *pos = buf;
        const char *s;
+       const u16 *u;
 
        va_start(args, fmt);
 
@@ -179,9 +180,18 @@ void efi_st_printf(const char *fmt, ...)
                        case 'p':
                                ++c;
                                switch (*c) {
+                               /* MAC address */
                                case 'm':
                                        mac(va_arg(args, void*), &pos);
                                        break;
+
+                               /* u16 string */
+                               case 's':
+                                       u = va_arg(args, u16*);
+                                       /* Ensure string fits into buffer */
+                                       for (; *u && pos < buf + 120; ++u)
+                                               *pos++ = *u;
+                                       break;
                                default:
                                        --c;
                                        pointer(va_arg(args, void*), &pos);