]>
Commit | Line | Data |
---|---|---|
4e0c2098 | 1 | /* |
8cad4892 | 2 | * arch/h8300/kernel/sim-console.c |
4e0c2098 | 3 | * |
8cad4892 | 4 | * Copyright (C) 2015 Yoshinori Sato <ysato@users.sourceforge.jp> |
4e0c2098 YS |
5 | * |
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 | |
8 | * for more details. | |
9 | */ | |
10 | #include <linux/console.h> | |
4e0c2098 | 11 | #include <linux/init.h> |
8cad4892 | 12 | #include <linux/serial_core.h> |
4e0c2098 | 13 | |
8cad4892 | 14 | static void sim_write(struct console *con, const char *s, unsigned n) |
4e0c2098 YS |
15 | { |
16 | register const int fd __asm__("er0") = 1; /* stdout */ | |
8cad4892 YS |
17 | register const char *_ptr __asm__("er1") = s; |
18 | register const unsigned _len __asm__("er2") = n; | |
4e0c2098 YS |
19 | |
20 | __asm__(".byte 0x5e,0x00,0x00,0xc7\n\t" /* jsr @0xc7 (sys_write) */ | |
21 | : : "g"(fd), "g"(_ptr), "g"(_len)); | |
22 | } | |
23 | ||
8cad4892 | 24 | static int __init sim_setup(struct earlycon_device *device, const char *opt) |
4e0c2098 | 25 | { |
8cad4892 | 26 | device->con->write = sim_write; |
4e0c2098 YS |
27 | return 0; |
28 | } | |
29 | ||
8cad4892 | 30 | EARLYCON_DECLARE(h8sim, sim_setup); |