2 * arch/h8300/kernel/sim-console.c
4 * Copyright (C) 2015 Yoshinori Sato <ysato@users.sourceforge.jp>
6 * This file is subject to the terms and conditions of the GNU General Public
7 * License. See the file "COPYING" in the main directory of this archive
10 #include <linux/console.h>
11 #include <linux/init.h>
12 #include <linux/serial_core.h>
14 static void sim_write(struct console
*con
, const char *s
, unsigned n
)
16 register const char *_ptr
__asm__("er1") = s
;
17 register const unsigned _len
__asm__("er2") = n
;
19 __asm__("sub.l er0,er0\n\t" /* er0 = 1 (stdout) */
21 ".byte 0x5e,0x00,0x00,0xc7\n\t" /* jsr @0xc7 (sys_write) */
22 : : "g"(_ptr
), "g"(_len
):"er0");
25 static int __init
sim_setup(struct earlycon_device
*device
, const char *opt
)
27 device
->con
->write
= sim_write
;
31 EARLYCON_DECLARE(h8sim
, sim_setup
);