diff --git a/test/py/tests/test_efi_selftest.py b/test/py/tests/test_efi_selftest.py
index 747d52d935a4142af1f816f4473a3c343ede1105..9d3a11575e7725d8cb94d9a4f2234620c59c74b8 100644
--- a/test/py/tests/test_efi_selftest.py
+++ b/test/py/tests/test_efi_selftest.py
@@ -48,3 +48,61 @@ def test_efi_selftest_watchdog_reboot(u_boot_console):
 	if m != 0:
 		raise Exception('Reset failed in \'watchdog reboot\' test')
 	u_boot_console.restart_uboot();
+
+@pytest.mark.buildconfigspec('cmd_bootefi_selftest')
+def test_efi_selftest_text_input(u_boot_console):
+	"""Test the EFI_SIMPLE_TEXT_INPUT_PROTOCOL
+
+	:param u_boot_console: U-Boot console
+
+	This function calls the text input EFI selftest.
+	"""
+	u_boot_console.run_command(cmd='setenv efi_selftest text input')
+	output = u_boot_console.run_command(cmd='bootefi selftest',
+					    wait_for_prompt=False)
+	m = u_boot_console.p.expect(['To terminate type \'x\''])
+	if m != 0:
+		raise Exception('No prompt for \'text input\' test')
+	u_boot_console.drain_console()
+	u_boot_console.p.timeout = 500
+	# EOT
+	u_boot_console.run_command(cmd=chr(4), wait_for_echo=False,
+				   send_nl=False, wait_for_prompt=False)
+	m = u_boot_console.p.expect(['Unicode char 4'])
+	if m != 0:
+		raise Exception('EOT failed in \'text input\' test')
+	u_boot_console.drain_console()
+	# BS
+	u_boot_console.run_command(cmd=chr(8), wait_for_echo=False,
+				   send_nl=False, wait_for_prompt=False)
+	m = u_boot_console.p.expect(['(BS)'])
+	if m != 0:
+		raise Exception('BS failed in \'text input\' test')
+	u_boot_console.drain_console()
+	# TAB
+	u_boot_console.run_command(cmd=chr(9), wait_for_echo=False,
+				   send_nl=False, wait_for_prompt=False)
+	m = u_boot_console.p.expect(['(TAB)'])
+	if m != 0:
+		raise Exception('BS failed in \'text input\' test')
+	u_boot_console.drain_console()
+	# a
+	u_boot_console.run_command(cmd='a', wait_for_echo=False, send_nl=False,
+				   wait_for_prompt=False)
+	m = u_boot_console.p.expect(['(\'a\')'])
+	if m != 0:
+		raise Exception('\'a\' failed in \'text input\' test')
+	u_boot_console.drain_console()
+	# UP escape sequence
+	u_boot_console.run_command(cmd=chr(27) + '[A', wait_for_echo=False,
+				   send_nl=False, wait_for_prompt=False)
+	m = u_boot_console.p.expect(['(Up)'])
+	if m != 0:
+		raise Exception('UP failed in \'text input\' test')
+	u_boot_console.drain_console()
+	u_boot_console.run_command(cmd='x', wait_for_echo=False, send_nl=False,
+				   wait_for_prompt=False)
+	m = u_boot_console.p.expect(['Summary: 0 failures', 'Press any key'])
+	if m != 0:
+		raise Exception('Failures occurred during the EFI selftest')
+	u_boot_console.restart_uboot();