vga: Change the arguments of vga_write_text to support extended ASCII

VGA defined the extended ASCII set based on CP437, but the function
vga_write_text() accepts a signed char array.

This will cause unnecessary confusion that if we want to print u with
umlaut (code=129 in CP437), we need to explicitly cast it to -127 in
signed char.

Since we still want to leverage the built-in string utilities
which only accepts const char*, we still need to cast it to signed char
while processing, and cast it back to unsigned once we write into the
frame buffer.

BRANCH=brya
BUG=b:264666392
TEST=emerge-brya coreboot chromeos-bootimage

Signed-off-by: Hsuan Ting Chen <roccochen@chromium.org>
Change-Id: If555bbc05f40ce3f02339c0468afff6dda8b7ded
Reviewed-on: https://review.coreboot.org/c/coreboot/+/73099
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Tarun Tuli <taruntuli@google.com>
diff --git a/src/drivers/pc80/vga/vga.c b/src/drivers/pc80/vga/vga.c
index a9befca..7f8ce69 100644
--- a/src/drivers/pc80/vga/vga.c
+++ b/src/drivers/pc80/vga/vga.c
@@ -283,8 +283,10 @@
 }
 
 void
-vga_write_text(enum VGA_TEXT_ALIGNMENT alignment, unsigned int line, const char *string)
+vga_write_text(enum VGA_TEXT_ALIGNMENT alignment, unsigned int line,
+	       const unsigned char *ustring)
 {
+	const char *string = (const char *)ustring;
 	char str[VGA_COLUMNS * VGA_LINES] = {0};
 	memcpy(str, string, strnlen(string, sizeof(str) - 1));
 
diff --git a/src/include/pc80/vga.h b/src/include/pc80/vga.h
index ec012f5..7a97afe 100644
--- a/src/include/pc80/vga.h
+++ b/src/include/pc80/vga.h
@@ -33,6 +33,7 @@
  * vga_write_text() writes a line of text aligned left/center/right
  * horizontally on the screen (i.e. enum VGA_TEXT_ALIGNMENT)
  */
-void vga_write_text(enum VGA_TEXT_ALIGNMENT alignment, unsigned int line, const char *string);
+void vga_write_text(enum VGA_TEXT_ALIGNMENT alignment, unsigned int line,
+		    const unsigned char *ustring);
 
 #endif /* VGA_H */
diff --git a/src/soc/intel/alderlake/romstage/ux.c b/src/soc/intel/alderlake/romstage/ux.c
index 5dba194..23fd0fe 100644
--- a/src/soc/intel/alderlake/romstage/ux.c
+++ b/src/soc/intel/alderlake/romstage/ux.c
@@ -14,6 +14,9 @@
 
 	printk(BIOS_INFO, "Informing user on-display of %s.\n", name);
 	vga_write_text(VGA_TEXT_CENTER, VGA_TEXT_HORIZONTAL_MIDDLE,
-		       "Your device is finishing an update. This may take 1-2 minutes.\nPlease do not turn off your device.");
+		       (const unsigned char *)
+		       "Your device is finishing an update. "
+		       "This may take 1-2 minutes.\n"
+		       "Please do not turn off your device.");
 	return true;
 }