coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
carve_out.c
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 #include <arch/stages.h>
4 #include <soc/mmu_common.h>
5 #include <soc/symbols_common.h>
6 #include <device/mmio.h>
7 
8 #define MODEM_ID_LTE 0x004c5445
9 #define MODEM_ID_WIFI 0x57494649
10 
11 bool soc_modem_carve_out(void **start, void **end)
12 {
13  uint32_t modem_id = read32(_modem_id);
14 
15  switch (modem_id) {
16  case MODEM_ID_LTE:
17  *start = _dram_modem_wifi_only;
18  *end = _edram_modem_extra;
19  return true;
20  case MODEM_ID_WIFI:
21  *start = _dram_modem_wifi_only;
22  *end = _edram_modem_wifi_only;
23  return true;
24  default:
25  return false;
26  }
27 }
static uint32_t read32(const void *addr)
Definition: mmio.h:22
bool soc_modem_carve_out(void **start, void **end)
Definition: carve_out.c:11
#define MODEM_ID_WIFI
Definition: carve_out.c:9
#define MODEM_ID_LTE
Definition: carve_out.c:8
unsigned int uint32_t
Definition: stdint.h:14