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 */