diff --git a/bootloader/bootloader-display.c b/bootloader/bootloader-display.c
index 7bdbc4e187454ec921aa4d6959bdd3919a57cf7a..8c13116d78e937292ce8499c7014dce19b536f07 100644
--- a/bootloader/bootloader-display.c
+++ b/bootloader/bootloader-display.c
@@ -55,6 +55,21 @@ void bootloader_display_header(void)
bootloader_display_line(2, CARD10_VERSION, white);
}
+void bootloader_display_error(char *errtype, char *line1, char *line2)
+{
+ gfx_clear(&display_screen);
+
+ Color red = gfx_color(&display_screen, RED);
+ Color yellow = gfx_color(&display_screen, YELLOW);
+ Color white = gfx_color(&display_screen, WHITE);
+
+ bootloader_display_line(0, "[FATAL ERROR]", red);
+ bootloader_display_line(1, errtype, yellow);
+ bootloader_display_line(2, CARD10_VERSION, white);
+ bootloader_display_line(3, line1, white);
+ bootloader_display_line(4, line2, white);
+}
+
/*
* Display a line of text on the display.
*/
diff --git a/bootloader/bootloader.h b/bootloader/bootloader.h
index 45631ea6583f8deff33dd059408d6c60210b2b2a..ac3ca3d79f614afc05b71e640f3caf02e8e115a8 100644
--- a/bootloader/bootloader.h
+++ b/bootloader/bootloader.h
@@ -5,6 +5,7 @@
/* Display */
void bootloader_display_init(void);
void bootloader_display_header(void);
+void bootloader_display_error(char *errtype, char *line1, char *line2);
void bootloader_display_line(int line, char *string, uint16_t color);
/* USB */