The tinycurses keyboard driver has the same bug as the "normal" libpayload
keyboard driver had before. The better way would be to unify those two drivers.
But for now, the attached patch fixes the problem.

Signed-off-by: Stefan Reinauer <stepan@coresystems.de>

Index: libpayload/curses/keyboard.c
===================================================================
--- libpayload/curses/keyboard.c	(revision 665)
+++ libpayload/curses/keyboard.c	(working copy)
@@ -140,11 +140,11 @@
 
 /* Scancode macros */
 
-#define DOWN(_c) (0x80 | (_c))
-#define UP(_c) (_c)
+#define DOWN(_c) (_c)
+#define UP(_c) (0x80 | (_c))
 
-#define ISDOWN(_c) ((_c) & 0x80)
-#define ISUP(_c) (!ISDOWN((_c)))
+#define ISUP(_c) ((_c) & 0x80)
+#define ISDOWN(_c) (!ISUP((_c)))
 
 #define SCANCODE(_c) ((_c) & ~0x80)
 
@@ -293,8 +293,8 @@
 		return 0;
 	}
 
-	/* Only process keys on an upstroke. */
-	if (!ISUP(code))
+	/* Only process keys on an down stroke. */
+	if (!ISDOWN(code))
 		return 0;
 
 	sc = SCANCODE(code);
