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 <
arch/mmu.h
>
4
#include <
bootblock_common.h
>
5
#include <symbols.h>
6
7
void
bootblock_mainboard_init
(
void
)
8
{
9
mmu_init
();
10
11
/* Everything below DRAM is device memory */
12
mmu_config_range
((
void
*)0, (
uintptr_t
)
_dram
,
MA_DEV
|
MA_RW
);
13
/* Set a dummy value for DRAM. ramstage should update the mapping. */
14
mmu_config_range
(
_dram
, 1 *
GiB
,
MA_MEM
|
MA_RW
);
15
16
mmu_config_range
(_ttb,
REGION_SIZE
(ttb),
MA_MEM
|
MA_S
|
MA_RW
);
17
mmu_config_range
(_bootblock,
REGION_SIZE
(bootblock),
MA_MEM
|
MA_S
|
MA_RW
);
18
mmu_config_range
(_romstage,
REGION_SIZE
(
romstage
),
MA_MEM
|
MA_S
|
MA_RW
);
19
mmu_config_range
(_ramstage,
REGION_SIZE
(ramstage),
MA_MEM
|
MA_S
|
MA_RW
);
20
21
mmu_config_range
(_bl31,
REGION_SIZE
(bl31),
MA_MEM
|
MA_S
|
MA_RW
);
22
23
mmu_enable
();
24
}
mmu_enable
void mmu_enable(void)
Definition:
mmu.c:293
mmu.h
MA_DEV
#define MA_DEV
Definition:
mmu.h:14
MA_MEM
#define MA_MEM
Definition:
mmu.h:13
MA_S
#define MA_S
Definition:
mmu.h:18
MA_RW
#define MA_RW
Definition:
mmu.h:22
mmu_config_range
void mmu_config_range(u32 start_mb, u32 size_mb, enum dcache_policy policy)
Definition:
mmu.c:221
mmu_init
void mmu_init(void)
Definition:
mmu.c:242
bootblock_common.h
GiB
#define GiB
Definition:
helpers.h:77
_dram
u8 _dram[]
REGION_SIZE
#define REGION_SIZE(name)
Definition:
symbols.h:10
bootblock_mainboard_init
__weak void bootblock_mainboard_init(void)
Definition:
bootblock.c:19
romstage
static void romstage(void)
Definition:
romstage.c:24
uintptr_t
unsigned long uintptr_t
Definition:
stdint.h:21
src
mainboard
emulation
qemu-aarch64
bootblock.c
Generated by
1.9.1