Index: HelenOS.config
===================================================================
--- HelenOS.config	(revision 77de449e3858b9dbc03718f6d76ce88246f3c450)
+++ HelenOS.config	(revision 3bdcf57c425c8d04e7048fea36599f5121f55ceb)
@@ -569,4 +569,7 @@
 ! [CONFIG_DSRLNIN=y|(PLATFORM=arm32&MACHINE=gta02)|(PLATFORM=arm32&MACHINE=integratorcp&CONFIG_PL011_UART=y)|(PLATFORM=arm32&MACHINE=beaglebone&CONFIG_OMAP_UART=y)|(PLATFORM=arm32&MACHINE=beagleboardxm&CONFIG_OMAP_UART=y)|(PLATFORM=arm64&CONFIG_PL011_UART=y)|(PLATFORM=ia64&MACHINE=i460GX&CONFIG_NS16550=y)|(PLATFORM=ia64&MACHINE=ski)|(PLATFORM=sparc64&PROCESSOR=sun4v)|(PLATFORM=arm32&MACHINE=raspberrypi&CONFIG_PL011_UART=y)|(PLATFORM=ia32&CONFIG_NS16550=y)|(PLATFORM=amd64&CONFIG_NS16550=y)|(PLATFORM=mips32&CONFIG_NS16550=y)|(PLATFORM=sparc64&CONFIG_SUN_TTY=y)] CONFIG_SRLN (y)
 
+% L4Re uvmm print hypercall support
+! [PLATFORM=amd64] CONFIG_L4RE_UVMM_EARLY_PRINT (n/y)
+
 % EGA support
 ! [CONFIG_HID_OUT=generic&(PLATFORM=ia32|PLATFORM=amd64)] CONFIG_EGA (y/n)
Index: kernel/arch/amd64/src/asm.S
===================================================================
--- kernel/arch/amd64/src/asm.S	(revision 77de449e3858b9dbc03718f6d76ce88246f3c450)
+++ kernel/arch/amd64/src/asm.S	(revision 3bdcf57c425c8d04e7048fea36599f5121f55ceb)
@@ -398,8 +398,5 @@
 	.asciz "Invalid instruction pointer."
 
-/** Print Unicode character to EGA display.
- *
- * If CONFIG_EGA is undefined or CONFIG_FB is defined
- * then this function does nothing.
+/** Print Unicode character to an early display device.
  *
  * Since the EGA can only display Extended ASCII (usually
@@ -413,4 +410,11 @@
  */
 FUNCTION_BEGIN(early_putwchar)
+
+#if (defined(CONFIG_L4RE_UVMM_EARLY_PRINT))
+	xorl %eax, %eax  /* RAX==0: uvmm's print hypercall */
+	mov %rdi, %rcx   /* RCX:    printed character */
+	vmcall
+#endif
+
 #if ((defined(CONFIG_EGA)) && (!defined(CONFIG_FB)))
 
