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