xref: /optee_os/core/arch/riscv/kernel/sbi_console.c (revision 76a2df57b63062560ec4a39008dc84dadd47c1b9)
1 // SPDX-License-Identifier: BSD-2-Clause
2 /*
3  * Copyright 2022 NXP
4  */
5 
6 #include <assert.h>
7 #include <compiler.h>
8 #include <config.h>
9 #include <console.h>
10 #include <drivers/serial.h>
11 #include <kernel/spinlock.h>
12 #include <riscv.h>
13 #include <sbi.h>
14 #include <trace.h>
15 #include <util.h>
16 
17 struct sbi_console_data {
18 	struct serial_chip chip;
19 };
20 
21 static struct sbi_console_data console_data __nex_bss;
22 
23 static void sbi_console_putc(struct serial_chip *chip __unused,
24 			     int ch)
25 {
26 	sbi_console_putchar(ch);
27 }
28 
29 static const struct serial_ops sbi_console_ops = {
30 	.putc = sbi_console_putc,
31 };
32 
33 static void sbi_console_init(struct sbi_console_data *pd)
34 {
35 	pd->chip.ops = &sbi_console_ops;
36 }
37 
38 void plat_console_init(void)
39 {
40 	sbi_console_init(&console_data);
41 	register_serial_console(&console_data.chip);
42 }
43