Attention is currently required from: Hung-Te Lin. Xixi Chen has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/62065 )
Change subject: src/mediatek/mt8186: Get dram size from ddr_info rank_size array ......................................................................
src/mediatek/mt8186: Get dram size from ddr_info rank_size array
Originally, dram size is set to 4GB by default. To support different dram size, should update from emi rank_size array.
Signed-off-by: Xi Chen xixi.chen@mediatek.corp-partner.google.com Change-Id: I017e9d1a2d6e26f1fc21b67b5962dfb5c6ade8a5 --- M src/soc/mediatek/common/memory.c M src/soc/mediatek/mt8186/emi.c 2 files changed, 13 insertions(+), 1 deletion(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/65/62065/1
diff --git a/src/soc/mediatek/common/memory.c b/src/soc/mediatek/common/memory.c index 3ca3611..4f9410b 100644 --- a/src/soc/mediatek/common/memory.c +++ b/src/soc/mediatek/common/memory.c @@ -23,6 +23,9 @@ const char *get_dram_geometry_str(u32 ddr_geometry); const char *get_dram_type_str(u32 ddr_type);
+/* dram info which is passed to CBMEM */ +const struct ddr_base_info *current_ddr_info; + static int mt_mem_test(const struct dramc_data *dparam) { if (CONFIG(MEMORY_TEST)) { @@ -262,4 +265,6 @@ static struct dramc_param dramc_parameter; mt_mem_init(&dramc_parameter); mtk_mmu_after_dram(); + + current_ddr_info = (const struct ddr_base_info *)&dramc_parameter.dramc_datas.ddr_info; } diff --git a/src/soc/mediatek/mt8186/emi.c b/src/soc/mediatek/mt8186/emi.c index 48a7b3e..fc1ce1f 100644 --- a/src/soc/mediatek/mt8186/emi.c +++ b/src/soc/mediatek/mt8186/emi.c @@ -7,9 +7,16 @@
#include <soc/emi.h>
+extern const struct ddr_base_info *ddr_info; size_t sdram_size(void) { - return (size_t)4 * GiB; + size_t size = 0; + int i; + + for (i = 0; i < RANK_MAX; ++i) + size += ddr_info->rank_size[i]; + + return size; }
void mt_set_emi(struct dramc_param *dparam)