diff options
-rw-r--r-- | src/mainboard/google/cherry/Makefile.mk | 1 | ||||
-rw-r--r-- | src/mainboard/google/cherry/sdram_configs.c | 15 | ||||
-rw-r--r-- | src/mainboard/google/corsola/Makefile.mk | 1 | ||||
-rw-r--r-- | src/mainboard/google/corsola/sdram_configs.c | 15 | ||||
-rw-r--r-- | src/mainboard/google/geralt/Makefile.mk | 1 | ||||
-rw-r--r-- | src/mainboard/google/geralt/sdram_configs.c | 15 | ||||
-rw-r--r-- | src/soc/mediatek/common/Kconfig | 15 | ||||
-rw-r--r-- | src/soc/mediatek/common/include/soc/dramc_param_common.h | 2 | ||||
-rw-r--r-- | src/soc/mediatek/common/memory.c | 8 | ||||
-rw-r--r-- | src/soc/mediatek/mt8186/include/soc/dramc_param.h | 1 | ||||
-rw-r--r-- | src/soc/mediatek/mt8188/include/soc/dramc_param.h | 1 | ||||
-rw-r--r-- | src/soc/mediatek/mt8192/include/soc/dramc_param.h | 1 | ||||
-rw-r--r-- | src/soc/mediatek/mt8195/include/soc/dramc_param.h | 1 |
13 files changed, 24 insertions, 53 deletions
diff --git a/src/mainboard/google/cherry/Makefile.mk b/src/mainboard/google/cherry/Makefile.mk index 5fe133919c..41ec839afc 100644 --- a/src/mainboard/google/cherry/Makefile.mk +++ b/src/mainboard/google/cherry/Makefile.mk @@ -14,7 +14,6 @@ romstage-y += chromeos.c romstage-y += regulator.c romstage-y += reset.c romstage-y += romstage.c -romstage-y += sdram_configs.c ramstage-y += memlayout.ld ramstage-y += boardid.c diff --git a/src/mainboard/google/cherry/sdram_configs.c b/src/mainboard/google/cherry/sdram_configs.c deleted file mode 100644 index de6bdd1f05..0000000000 --- a/src/mainboard/google/cherry/sdram_configs.c +++ /dev/null @@ -1,15 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0-only */ - -#include <soc/dramc_param.h> - -const struct sdram_info *get_sdram_config(void) -{ - /* - * The MT8195 platform supports "dram adaptive" feature to - * automatically detect dram information, including channel, rank, die size..., - * and can automatically configure EMI settings. - * So we will be passing a placeholder param blob. - */ - static struct sdram_info params; - return ¶ms; -} diff --git a/src/mainboard/google/corsola/Makefile.mk b/src/mainboard/google/corsola/Makefile.mk index 5483167e38..1442f33d6a 100644 --- a/src/mainboard/google/corsola/Makefile.mk +++ b/src/mainboard/google/corsola/Makefile.mk @@ -14,7 +14,6 @@ romstage-y += chromeos.c romstage-y += regulator.c romstage-y += reset.c romstage-y += romstage.c -romstage-y += sdram_configs.c ramstage-y += memlayout.ld ramstage-y += boardid.c diff --git a/src/mainboard/google/corsola/sdram_configs.c b/src/mainboard/google/corsola/sdram_configs.c deleted file mode 100644 index f565f53f82..0000000000 --- a/src/mainboard/google/corsola/sdram_configs.c +++ /dev/null @@ -1,15 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0-only */ - -#include <soc/dramc_param.h> - -const struct sdram_info *get_sdram_config(void) -{ - /* - * The MT8186 platform supports "dram adaptive" feature to - * automatically detect dram information, including channel, rank, die size..., - * and can automatically configure EMI settings. - * So we will be passing a placeholder param blob. - */ - static struct sdram_info params; - return ¶ms; -} diff --git a/src/mainboard/google/geralt/Makefile.mk b/src/mainboard/google/geralt/Makefile.mk index b1af289d55..0975c5cd29 100644 --- a/src/mainboard/google/geralt/Makefile.mk +++ b/src/mainboard/google/geralt/Makefile.mk @@ -15,7 +15,6 @@ romstage-y += chromeos.c romstage-y += regulator.c romstage-y += reset.c romstage-y += romstage.c -romstage-y += sdram_configs.c ramstage-y += memlayout.ld ramstage-y += boardid.c diff --git a/src/mainboard/google/geralt/sdram_configs.c b/src/mainboard/google/geralt/sdram_configs.c deleted file mode 100644 index c4766be235..0000000000 --- a/src/mainboard/google/geralt/sdram_configs.c +++ /dev/null @@ -1,15 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0-only */ - -#include <soc/dramc_param.h> - -const struct sdram_info *get_sdram_config(void) -{ - /* - * The MT8188 platform supports "dram adaptive" feature to automatically - * detect dram information, including channel, rank, die size..., and - * can automatically configure EMI settings. Therefore, we will be - * passing a placeholder param blob. - */ - static struct sdram_info params; - return ¶ms; -} diff --git a/src/soc/mediatek/common/Kconfig b/src/soc/mediatek/common/Kconfig index 898918a621..55ea5ecd44 100644 --- a/src/soc/mediatek/common/Kconfig +++ b/src/soc/mediatek/common/Kconfig @@ -8,6 +8,21 @@ config SOC_MEDIATEK_COMMON if SOC_MEDIATEK_COMMON +config MEDIATEK_DRAM_ADAPTIVE + bool + default n if SOC_MEDIATEK_MT8173 + default n if SOC_MEDIATEK_MT8183 + default n if SOC_MEDIATEK_MT8192 + default y + help + Starting from MT8195, MediaTek platform supports "dram adaptive" to + automatically detect dram information, including channel, rank, die + size..., and can automatically configure EMI settings. So we can just + pass a placeholder param blob to `mt_mem_init_run` by enabling this + option. + Platforms (MT8173, MT8183, MT8192) which do not support "dram adaptive" + need to implement `get_sdram_config` to get the DRAM configuration info. + config MEDIATEK_DRAM_DVFS bool default n diff --git a/src/soc/mediatek/common/include/soc/dramc_param_common.h b/src/soc/mediatek/common/include/soc/dramc_param_common.h index 429f3c64a9..7dd8bba5d8 100644 --- a/src/soc/mediatek/common/include/soc/dramc_param_common.h +++ b/src/soc/mediatek/common/include/soc/dramc_param_common.h @@ -101,4 +101,6 @@ struct ddr_base_info { u32 data_rate; }; +const struct sdram_info *get_sdram_config(void); + #endif diff --git a/src/soc/mediatek/common/memory.c b/src/soc/mediatek/common/memory.c index be72023dac..72ea37eea3 100644 --- a/src/soc/mediatek/common/memory.c +++ b/src/soc/mediatek/common/memory.c @@ -313,7 +313,13 @@ static void mt_mem_init_run(struct dramc_param *dparam, void mt_mem_init(struct dramc_param *dparam) { - const struct sdram_info *sdram_param = get_sdram_config(); + const struct sdram_info *sdram_param = NULL; + static struct sdram_info fake_sdram_param; + + if (CONFIG(MEDIATEK_DRAM_ADAPTIVE)) + sdram_param = &fake_sdram_param; + else + sdram_param = get_sdram_config(); mt_mem_init_run(dparam, sdram_param); } diff --git a/src/soc/mediatek/mt8186/include/soc/dramc_param.h b/src/soc/mediatek/mt8186/include/soc/dramc_param.h index 2d6212b169..29380c2127 100644 --- a/src/soc/mediatek/mt8186/include/soc/dramc_param.h +++ b/src/soc/mediatek/mt8186/include/soc/dramc_param.h @@ -78,7 +78,6 @@ struct dramc_param { struct dramc_data dramc_datas; }; -const struct sdram_info *get_sdram_config(void); struct dramc_param *get_dramc_param_from_blob(void *blob); void dump_param_header(const void *blob); int initialize_dramc_param(void *blob); diff --git a/src/soc/mediatek/mt8188/include/soc/dramc_param.h b/src/soc/mediatek/mt8188/include/soc/dramc_param.h index 88e2a90e61..740e27b6f7 100644 --- a/src/soc/mediatek/mt8188/include/soc/dramc_param.h +++ b/src/soc/mediatek/mt8188/include/soc/dramc_param.h @@ -98,7 +98,6 @@ struct dramc_param { struct dramc_data dramc_datas; }; -const struct sdram_info *get_sdram_config(void); struct dramc_param *get_dramc_param_from_blob(void *blob); void dump_param_header(const void *blob); int validate_dramc_param(const void *blob); diff --git a/src/soc/mediatek/mt8192/include/soc/dramc_param.h b/src/soc/mediatek/mt8192/include/soc/dramc_param.h index c4f1293479..fca82bee62 100644 --- a/src/soc/mediatek/mt8192/include/soc/dramc_param.h +++ b/src/soc/mediatek/mt8192/include/soc/dramc_param.h @@ -73,7 +73,6 @@ struct dramc_param { struct dramc_data dramc_datas; }; -const struct sdram_info *get_sdram_config(void); struct dramc_param *get_dramc_param_from_blob(void *blob); void dump_param_header(const void *blob); int validate_dramc_param(const void *blob); diff --git a/src/soc/mediatek/mt8195/include/soc/dramc_param.h b/src/soc/mediatek/mt8195/include/soc/dramc_param.h index 7c66b70246..0885ee0651 100644 --- a/src/soc/mediatek/mt8195/include/soc/dramc_param.h +++ b/src/soc/mediatek/mt8195/include/soc/dramc_param.h @@ -73,7 +73,6 @@ struct dramc_param { struct dramc_data dramc_datas; }; -const struct sdram_info *get_sdram_config(void); struct dramc_param *get_dramc_param_from_blob(void *blob); void dump_param_header(const void *blob); int validate_dramc_param(const void *blob); |