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 <arch/mmu.h>
4 #include <soc/mmu.h>
5 #include <soc/mmu_common.h>
6 #include <soc/symbols_common.h>
7 
8 __weak bool soc_modem_carve_out(void **start, void **end) { return false; }
9 
10 void qc_mmu_dram_config_post_dram_init(void *ddr_base, size_t ddr_size)
11 {
12  void *start = NULL;
13  void *end = NULL;
14 
15  if (!soc_modem_carve_out(&start, &end)) {
16  mmu_config_range((void *)ddr_base, ddr_size, CACHED_RAM);
17  } else {
18  mmu_config_range(ddr_base, start - ddr_base, CACHED_RAM);
19  mmu_config_range(end, ddr_base + ddr_size - end, CACHED_RAM);
20  }
21 
22  mmu_config_range((void *)_aop_code_ram, REGION_SIZE(aop_code_ram),
23  CACHED_RAM);
24  mmu_config_range((void *)_aop_data_ram, REGION_SIZE(aop_data_ram),
25  CACHED_RAM);
26 }
void mmu_config_range(u32 start_mb, u32 size_mb, enum dcache_policy policy)
Definition: mmu.c:221
#define REGION_SIZE(name)
Definition: symbols.h:10
#define CACHED_RAM
Definition: mmu_common.h:9
const struct smm_save_state_ops *legacy_ops __weak
Definition: save_state.c:8
__weak bool soc_modem_carve_out(void **start, void **end)
Definition: mmu.c:8
void qc_mmu_dram_config_post_dram_init(void *ddr_base, size_t ddr_size)
Definition: mmu.c:10
#define NULL
Definition: stddef.h:19