Hung-Te Lin has submitted this change. ( https://review.coreboot.org/c/coreboot/+/56204 )
Change subject: soc/mediatek/mt8195: Get DRAM size from DRAM calibration result ......................................................................
soc/mediatek/mt8195: Get DRAM size from DRAM calibration result
Signed-off-by: Ryan Chuang ryan.chuang@mediatek.corp-partner.google.com Change-Id: Ic34f29d1692b94284b2cf6c5d91d323df736c76f Reviewed-on: https://review.coreboot.org/c/coreboot/+/56204 Reviewed-by: Hung-Te Lin hungte@chromium.org Reviewed-by: Yu-Ping Wu yupingso@google.com Tested-by: build bot (Jenkins) no-reply@coreboot.org --- M src/soc/mediatek/mt8195/emi.c 1 file changed, 18 insertions(+), 1 deletion(-)
Approvals: build bot (Jenkins): Verified Hung-Te Lin: Looks good to me, approved Yu-Ping Wu: Looks good to me, approved
diff --git a/src/soc/mediatek/mt8195/emi.c b/src/soc/mediatek/mt8195/emi.c index 120665a..6cbcae1 100644 --- a/src/soc/mediatek/mt8195/emi.c +++ b/src/soc/mediatek/mt8195/emi.c @@ -1,8 +1,25 @@ /* SPDX-License-Identifier: GPL-2.0-only */
+#include <console/console.h> +#include <emi.h> #include <soc/emi.h>
size_t sdram_size(void) { - return (size_t)4 * GiB; + int rank_num; + u64 rank_size[RANK_MAX]; + static size_t dram_size = 0; + + if (dram_size) + return dram_size; + + get_rank_size_by_emi(rank_size); + rank_num = get_rank_nr_by_emi(); + + for (int i = 0; i < rank_num; i++) + dram_size += rank_size[i]; + + printk(BIOS_INFO, "dram size = %#lx\n", dram_size); + + return dram_size; }