coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
init.c
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 #include <commonlib/helpers.h>
5 #include <console/console.h>
6 #include <console/uart.h>
7 #include <console/streams.h>
8 #include <device/pci.h>
9 #include <option.h>
10 #include <version.h>
11 
12 #define FIRST_CONSOLE (ENV_BOOTBLOCK || (CONFIG(NO_BOOTBLOCK_CONSOLE) && ENV_ROMSTAGE))
13 
14 static int console_inited;
15 static int console_loglevel;
16 
17 int get_log_level(void)
18 {
19  if (console_inited == 0)
20  return -1;
21 
22  return console_loglevel;
23 }
24 
25 static void init_log_level(void)
26 {
28 
29  if (!FIRST_CONSOLE)
31 }
32 
33 int console_log_level(int msg_level)
34 {
35  int log_level = get_log_level();
36 
37  if (log_level < 0)
38  return CONSOLE_LOG_NONE;
39 
40  if (msg_level <= log_level)
41  return CONSOLE_LOG_ALL;
42 
43  if (CONFIG(CONSOLE_CBMEM) && (msg_level <= BIOS_DEBUG))
44  return CONSOLE_LOG_FAST;
45 
46  return 0;
47 }
48 
49 void console_init(void)
50 {
52 
53  if (CONFIG(DEBUG_CONSOLE_INIT))
54  console_inited = 1;
55 
56  if (CONFIG(EARLY_PCI_BRIDGE) && (ENV_BOOTBLOCK || ENV_ROMSTAGE))
58 
60 
61  console_inited = 1;
62 
63  if (ENV_BOOTBLOCK && CONFIG(CONSOLE_CBMEM_PRINT_PRE_BOOTBLOCK_CONTENTS))
65 
66  printk(BIOS_NOTICE, "\n\ncoreboot-%s%s %s " ENV_STRING " starting (log level: %i)...\n",
68  get_log_level());
69 }
void cbmem_dump_console(void)
#define printk(level,...)
Definition: stdlib.h:16
void console_hw_init(void)
Definition: console.c:16
@ CONFIG
Definition: dsi_common.h:201
static void init_log_level(void)
Definition: init.c:25
static int console_loglevel
Definition: init.c:15
int console_log_level(int msg_level)
Definition: init.c:33
#define FIRST_CONSOLE
Definition: init.c:12
void console_init(void)
Definition: init.c:49
static int console_inited
Definition: init.c:14
int get_log_level(void)
Definition: init.c:17
#define BIOS_DEBUG
BIOS_DEBUG - Verbose output.
Definition: loglevel.h:128
#define BIOS_NOTICE
BIOS_NOTICE - Unexpected but relatively insignificant.
Definition: loglevel.h:100
int get_console_loglevel(void)
Definition: loglevel_vpd.c:8
unsigned int get_uint_option(const char *name, const unsigned int fallback)
Definition: option.c:116
void pci_early_bridge_init(void)
Definition: pci_early.c:95
#define ENV_BOOTBLOCK
Definition: rules.h:148
#define ENV_ROMSTAGE
Definition: rules.h:149
#define ENV_STRING
Definition: rules.h:156
const char coreboot_version[]
Definition: version.c:29
const char coreboot_extra_version[]
Definition: version.c:30
const char coreboot_build[]
Definition: version.c:31