diff --git a/hw/sh_serial.c b/hw/sh_serial.c
index 324c2a8..fe409c4 100644
--- a/hw/sh_serial.c
+++ b/hw/sh_serial.c
@@ -293,7 +293,7 @@ void sh_serial_init (target_phys_addr_t base, int feat,
 
     s->smr = 0;
     s->brr = 0xff;
-    s->scr = 0;
+    s->scr = 1 << 5; /* pretend that TX is enabled so early printk works */
     s->sptr = 0;
 
     if (feat & SH_SERIAL_FEAT_SCIF) {
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 1062fdf..4ebc8bb 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -3177,8 +3177,8 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
             goto efault;
         ret = get_errno(sys_unlinkat(arg1, p, arg3));
         unlock_user(p, arg2, 0);
-#endif
         break;
+#endif
     case TARGET_NR_execve:
         {
             char **argp, **envp;