coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
bootblock.c
Go to the documentation of this file.
1
/* SPDX-License-Identifier: GPL-2.0-only */
2
3
#include <
bootblock_common.h
>
4
#include <
console/console.h
>
5
#include <symbols.h>
6
7
#include "
mmu.h
"
8
#include <soc/usbl_if.h>
9
10
static
void
dump_usbl_report
(
int
section,
sbl_ro_info
*
info
)
11
{
12
int
i, num_log_entries;
13
14
num_log_entries =
info
->num_log_entries;
15
if
(!num_log_entries)
16
return
;
17
18
printk
(
BIOS_INFO
,
" Section %d log:\n"
, section);
19
for
(i = 0; i < num_log_entries; i++)
20
printk
(
BIOS_INFO
,
" %-5d:%2.2x:%.*s\n"
,
21
info
->log[i].time_stamp,
22
info
->log[i].type,
23
sizeof
(
info
->log[i].msg),
24
info
->log[i].msg);
25
}
26
27
void
bootblock_mainboard_init
(
void
)
28
{
29
int
i;
30
31
setup_mmu
(
DRAM_NOT_INITIALIZED
);
32
33
if
(((
uintptr_t
)
maskrom_param
< (
uintptr_t
)&
_wifi_imem_0
) ||
34
((
uintptr_t
)
maskrom_param
> (
uintptr_t
)&
_ewifi_imem_0
)) {
35
printk
(
BIOS_INFO
,
"No uber-sbl parameter detected\n"
);
36
return
;
37
}
38
39
/* Is maskrom parameter address set to a sensible value? */
40
if
((
maskrom_param
->
start_magic
!=
UBER_SBL_SHARED_INFO_START_MAGIC
) ||
41
(
maskrom_param
->
end_magic
!=
UBER_SBL_SHARED_INFO_END_MAGIC
)) {
42
43
printk
(
BIOS_INFO
,
"Uber-sbl: invalid magic!\n"
);
44
}
else
{
45
printk
(
BIOS_INFO
,
"Uber-sbl version: %s\n"
,
46
maskrom_param
->
version
);
47
48
for
(i = 0; i <
maskrom_param
->
num
; i++)
49
dump_usbl_report
(i, &
maskrom_param
->
info
[i]);
50
}
51
}
bootblock_common.h
printk
#define printk(level,...)
Definition:
stdlib.h:16
console.h
info
static struct smmstore_params_info info
Definition:
ramstage.c:12
UBER_SBL_SHARED_INFO_START_MAGIC
#define UBER_SBL_SHARED_INFO_START_MAGIC
Definition:
usbl_if.h:36
maskrom_param
uber_sbl_shared_info * maskrom_param
UBER_SBL_SHARED_INFO_END_MAGIC
#define UBER_SBL_SHARED_INFO_END_MAGIC
Definition:
usbl_if.h:37
bootblock_mainboard_init
__weak void bootblock_mainboard_init(void)
Definition:
bootblock.c:19
BIOS_INFO
#define BIOS_INFO
BIOS_INFO - Expected events.
Definition:
loglevel.h:113
dump_usbl_report
static void dump_usbl_report(int section, sbl_ro_info *info)
Definition:
bootblock.c:10
setup_mmu
void setup_mmu(enum dram_state dram)
Definition:
mmu.c:40
_wifi_imem_0
u8 _wifi_imem_0[]
_ewifi_imem_0
u8 _ewifi_imem_0[]
DRAM_NOT_INITIALIZED
@ DRAM_NOT_INITIALIZED
Definition:
mmu.h:14
mmu.h
uintptr_t
unsigned long uintptr_t
Definition:
stdint.h:21
sbl_ro_info
Definition:
usbl_if.h:15
uber_sbl_shared_info::version
char * version
Definition:
usbl_if.h:23
uber_sbl_shared_info::start_magic
u32 start_magic
Definition:
usbl_if.h:21
uber_sbl_shared_info::end_magic
u32 end_magic
Definition:
usbl_if.h:33
uber_sbl_shared_info::num
u32 num
Definition:
usbl_if.h:22
uber_sbl_shared_info::info
sbl_ro_info info[2]
Definition:
usbl_if.h:24
src
mainboard
google
gale
bootblock.c
Generated by
1.9.1