coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
console.c
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
4 #include <console/ne2k.h>
6 #include <console/spkmodem.h>
7 #include <console/streams.h>
8 #include <console/uart.h>
9 #include <console/usb.h>
10 #include <console/spi.h>
11 #include <console/flash.h>
12 #include <console/system76_ec.h>
13 
14 /* Note: when adding a new console, make sure you update the definition of
15  HAS_ONLY_FAST_CONSOLES in <console.h>! */
16 void console_hw_init(void)
17 {
18  __cbmemc_init();
21 
22  __uart_init();
23  __ne2k_init();
28 }
29 
30 void console_interactive_tx_byte(unsigned char byte, void *data_unused)
31 {
32  if (byte == '\n') {
33  /* Some consoles want newline conversion to keep terminals happy. */
34  __uart_tx_byte('\r');
35  __usb_tx_byte('\r');
36  }
37 
38  __spkmodem_tx_byte(byte);
40  __uart_tx_byte(byte);
41  __ne2k_tx_byte(byte);
42  __usb_tx_byte(byte);
45 }
46 
47 void console_stored_tx_byte(unsigned char byte, void *data_unused)
48 {
50  __cbmemc_tx_byte(byte);
51 }
52 
53 void console_tx_byte(unsigned char byte)
54 {
57 }
58 
59 void console_tx_flush(void)
60 {
66 }
67 
68 void console_write_line(uint8_t *buffer, size_t number_of_bytes)
69 {
70  /* Finish displaying all of the console data if requested */
71  if (number_of_bytes == 0) {
73  return;
74  }
75 
76  /* Output the console data */
77  while (number_of_bytes--)
79 }
80 
81 #if CONFIG(GDB_STUB) && (ENV_ROMSTAGE || ENV_RAMSTAGE)
82 void gdb_hw_init(void)
83 {
84  __gdb_hw_init();
85 }
86 
87 void gdb_tx_byte(unsigned char byte)
88 {
89  __gdb_tx_byte(byte);
90 }
91 
92 void gdb_tx_flush(void)
93 {
94  __gdb_tx_flush();
95 }
96 
97 unsigned char gdb_rx_byte(void)
98 {
99  return __gdb_rx_byte();
100 }
101 #endif
static void __cbmemc_init(void)
Definition: cbmem_console.h:20
static void __cbmemc_tx_byte(u8 data)
Definition: cbmem_console.h:21
void console_interactive_tx_byte(unsigned char byte, void *data_unused)
Definition: console.c:30
void console_tx_flush(void)
Definition: console.c:59
void console_write_line(uint8_t *buffer, size_t number_of_bytes)
Definition: console.c:68
void console_tx_byte(unsigned char byte)
Definition: console.c:53
void console_stored_tx_byte(unsigned char byte, void *data_unused)
Definition: console.c:47
void console_hw_init(void)
Definition: console.c:16
static void __flashconsole_tx_flush(void)
Definition: flash.h:27
static void __flashconsole_init(void)
Definition: flash.h:25
static void __flashconsole_tx_byte(u8 data)
Definition: flash.h:26
static void __spiconsole_tx_byte(u8 data)
Definition: spi.h:22
static void __spiconsole_init(void)
Definition: spi.h:21
static void __uart_init(void)
Definition: uart.h:82
static void __uart_tx_flush(void)
Definition: uart.h:84
static void __uart_tx_byte(u8 data)
Definition: uart.h:83
static void __usb_tx_byte(u8 data)
Definition: usb.h:35
static void __usbdebug_init(void)
Definition: usb.h:34
static void __usb_tx_flush(void)
Definition: usb.h:36
static void __ne2k_tx_byte(u8 data)
Definition: ne2k.h:27
static void __ne2k_init(void)
Definition: ne2k.h:26
static void __ne2k_tx_flush(void)
Definition: ne2k.h:28
u8 buffer[C2P_BUFFER_MAXSIZE]
Definition: psp_smm.c:18
static void __qemu_debugcon_init(void)
Definition: qemu_debugcon.h:17
static void __qemu_debugcon_tx_byte(u8 data)
Definition: qemu_debugcon.h:18
static void __spkmodem_tx_byte(u8 data)
Definition: spkmodem.h:14
static void __spkmodem_init(void)
Definition: spkmodem.h:13
#define NULL
Definition: stddef.h:19
unsigned char uint8_t
Definition: stdint.h:8
void gdb_tx_byte(unsigned char byte)
unsigned char gdb_rx_byte(void)
void gdb_hw_init(void)
void gdb_tx_flush(void)
static void __system76_ec_init(void)
Definition: system76_ec.h:30
static void __system76_ec_tx_flush(void)
Definition: system76_ec.h:31
static void __system76_ec_tx_byte(unsigned char byte)
Definition: system76_ec.h:32