Index: arch/mips32/src/drivers/arc.c
===================================================================
--- arch/mips32/src/drivers/arc.c	(revision 93b84b3c39c5f623f2855694d31930674e24a165)
+++ arch/mips32/src/drivers/arc.c	(revision 0bd4f56d26dfbe8df5cc3d583aa4e029954a3601)
@@ -218,4 +218,22 @@
 }
 
+static char arc_read(chardev_t *dev)
+{
+	char ch;
+	__u32 count;
+	long result;
+
+	result = arc_entry->read(0, &ch, 1, &count);
+	if (result || count!=1) {
+		printf("Error reading from ARC keyboard.\n");
+		cpu_halt();
+	}
+	if (ch == '\r')
+		return '\n';
+	if (ch == 0x7f)
+		return '\b';
+	return ch;
+}
+
 static void arc_write(chardev_t *dev, const char ch)
 {
@@ -236,5 +254,6 @@
 	.resume = arc_enable,
 	.suspend = arc_disable,
-	.write = arc_write
+	.write = arc_write,
+	.read = arc_read
 };
 
