coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
mmu.c
Go to the documentation of this file.
1
/* SPDX-License-Identifier: GPL-2.0-only */
2
3
#include <symbols.h>
4
#include <soc/addressmap.h>
5
#include <soc/mmu.h>
6
#include <soc/sdram.h>
7
#include <
arch/mmu.h
>
8
9
void
soc_mmu_init
(
void
)
10
{
11
const
unsigned
long
devmem =
MA_DEV
|
MA_S
|
MA_RW
;
12
const
unsigned
long
secure_mem =
MA_MEM
|
MA_S
|
MA_RW
;
13
14
mmu_init
();
15
16
/*
17
* Need to use secure mem attribute, as firmware is running in ARM TZ
18
* region.
19
*/
20
mmu_config_range
((
void
*)_ttb,
REGION_SIZE
(ttb), secure_mem);
21
mmu_config_range
((
void
*)
_dram
,
sdram_size_mb
() *
MiB
, secure_mem);
22
/* IO space has the MSB set and is divided into 4 sub-regions:
23
* * NCB
24
* * SLI
25
* * RSL
26
* * AP
27
*/
28
mmu_config_range
((
void
*)
IO_SPACE_START
,
IO_SPACE_SIZE
, devmem);
29
30
mmu_enable
();
31
}
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
MiB
#define MiB
Definition:
helpers.h:76
sdram_size_mb
size_t sdram_size_mb(void)
Definition:
sdram.c:24
_dram
u8 _dram[]
REGION_SIZE
#define REGION_SIZE(name)
Definition:
symbols.h:10
IO_SPACE_SIZE
#define IO_SPACE_SIZE
Definition:
addressmap.h:15
IO_SPACE_START
#define IO_SPACE_START
Definition:
addressmap.h:14
soc_mmu_init
void soc_mmu_init(void)
Definition:
mmu.c:9
src
soc
cavium
cn81xx
mmu.c
Generated by
1.9.1