Index: meson/arch/sparc64/meson.build
===================================================================
--- meson/arch/sparc64/meson.build	(revision dbc1398f63526fa9a7608796a0155b6d806f1501)
+++ meson/arch/sparc64/meson.build	(revision 9754ed27d13eaf9da59abb744c63d0e3f5ab5ea2)
@@ -76,5 +76,4 @@
 endif
 
-
 if PROCESSOR == 'sun4v'
 	rd_essential_drv += [
@@ -89,4 +88,7 @@
 		'drv/intctl/obio',
 		'drv/char/ns8250',
+		'drv/char/i8042',
+		'drv/hid/ps2mouse',
+		'drv/hid/xtkbd',
 	]
 endif
Index: tools/ew.py
===================================================================
--- tools/ew.py	(revision dbc1398f63526fa9a7608796a0155b6d806f1501)
+++ tools/ew.py	(revision 9754ed27d13eaf9da59abb744c63d0e3f5ab5ea2)
@@ -173,5 +173,5 @@
 			raise Exception
 		if processor == 'us':
-			return 'system-sparc64', '-M sun4u --prom-env boot-args="console=devices/\\hw\\pci0\\01:01.0\\com1\\a"'
+			return 'system-sparc64', '-M sun4u'
 
 		# processor = 'sun4v'
@@ -410,5 +410,4 @@
 				'image' : 'image.iso',
 				'audio' : False,
-				'console' : True,
 				'net' : False,
 				'usb' : False,
Index: uspace/drv/bus/isa/ebus.dev
===================================================================
--- uspace/drv/bus/isa/ebus.dev	(revision dbc1398f63526fa9a7608796a0155b6d806f1501)
+++ uspace/drv/bus/isa/ebus.dev	(revision 9754ed27d13eaf9da59abb744c63d0e3f5ab5ea2)
@@ -3,2 +3,8 @@
 	irq 2027
 	io_range 3f8 8
+
+i8042:
+	match 100 isa/i8042
+	irq 2025
+	irq 2026
+	io_range 060 5
Index: uspace/drv/char/i8042/i8042.c
===================================================================
--- uspace/drv/char/i8042/i8042.c	(revision dbc1398f63526fa9a7608796a0155b6d806f1501)
+++ uspace/drv/char/i8042/i8042.c	(revision 9754ed27d13eaf9da59abb744c63d0e3f5ab5ea2)
@@ -2,5 +2,5 @@
  * Copyright (c) 2001-2004 Jakub Jermar
  * Copyright (c) 2006 Josef Cejka
- * Copyright (c) 2017 Jiri Svoboda
+ * Copyright (c) 2021 Jiri Svoboda
  * Copyright (c) 2011 Jan Vesely
  * All rights reserved.
@@ -146,4 +146,7 @@
 	fibril_mutex_unlock(&port->buf_lock);
 	fibril_condvar_broadcast(&port->buf_cv);
+
+	async_sess_t *parent_sess = ddf_dev_parent_sess_get(dev);
+	hw_res_clear_interrupt(parent_sess, port->irq);
 }
 
@@ -202,4 +205,5 @@
 	dev->kbd->cds.ops = &i8042_chardev_ops;
 	dev->kbd->cds.sarg = dev->kbd;
+	dev->kbd->irq = irq_kbd;
 	fibril_mutex_initialize(&dev->kbd->buf_lock);
 	fibril_condvar_initialize(&dev->kbd->buf_cv);
@@ -226,4 +230,5 @@
 	dev->aux->cds.ops = &i8042_chardev_ops;
 	dev->aux->cds.sarg = dev->aux;
+	dev->aux->irq = irq_mouse;
 	fibril_mutex_initialize(&dev->aux->buf_lock);
 	fibril_condvar_initialize(&dev->aux->buf_cv);
Index: uspace/drv/char/i8042/i8042.h
===================================================================
--- uspace/drv/char/i8042/i8042.h	(revision dbc1398f63526fa9a7608796a0155b6d806f1501)
+++ uspace/drv/char/i8042/i8042.h	(revision 9754ed27d13eaf9da59abb744c63d0e3f5ab5ea2)
@@ -76,4 +76,6 @@
 	/** Signal new data in buffer */
 	fibril_condvar_t buf_cv;
+	/** Interrupt number */
+	int irq;
 } i8042_port_t;
 
