coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
emi.c
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 /*
4  * This file is created based on MT8186 Functional Specification
5  * Chapter number: 4.8
6  */
7 
8 #include <assert.h>
9 #include <cbmem.h>
11 #include <soc/emi.h>
12 
13 size_t sdram_size(void)
14 {
15  const struct mem_chip_info *mc;
16  size_t size = 0;
17 
18  if (ENV_ROMSTAGE) {
19  size = mtk_dram_size();
20  printk(BIOS_INFO, "dram size (romstage): %#lx\n", size);
21  return size;
22  }
23 
25  assert(mc);
26 
27  for (unsigned int i = 0; i < mc->num_channels; ++i)
28  size += mc->channel[i].density;
29 
30  printk(BIOS_INFO, "dram size: %#lx\n", size);
31  return size;
32 }
33 
34 void mt_set_emi(struct dramc_param *dparam)
35 {
36  /* Do nothing */
37 }
#define assert(statement)
Definition: assert.h:74
void * cbmem_find(u32 id)
Definition: imd_cbmem.c:166
#define CBMEM_ID_MEM_CHIP_INFO
Definition: cbmem_id.h:82
size_t mtk_dram_size(void)
Definition: memory.c:102
#define printk(level,...)
Definition: stdlib.h:16
#define BIOS_INFO
BIOS_INFO - Expected events.
Definition: loglevel.h:113
size_t sdram_size(void)
Definition: emi.c:117
void mt_set_emi(const struct mt8173_sdram_params *sdram_params)
Definition: emi.c:164
#define ENV_ROMSTAGE
Definition: rules.h:149
uint8_t num_channels
Definition: mem_chip_info.h:18
struct mem_chip_info::mem_chip_channel channel[0]