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 static void sbi_console_flush(struct serial_chip *chip __unused) 23 { 24 } 25 26 static void sbi_console_putc(struct serial_chip *chip __unused, 27 int ch) 28 { 29 sbi_console_putchar(ch); 30 } 31 32 static const struct serial_ops sbi_console_ops = { 33 .flush = sbi_console_flush, 34 .putc = sbi_console_putc, 35 }; 36 37 static void sbi_console_init(struct sbi_console_data *pd) 38 { 39 pd->chip.ops = &sbi_console_ops; 40 } 41 42 void plat_console_init(void) 43 { 44 sbi_console_init(&console_data); 45 register_serial_console(&console_data.chip); 46 } 47