diff --git a/src/soc/mediatek/common/include/soc/pi_image_common.h b/src/soc/mediatek/common/include/soc/pi_image_common.h new file mode 100644 index 0000000000..b00ff67b56 --- /dev/null +++ b/src/soc/mediatek/common/include/soc/pi_image_common.h @@ -0,0 +1,8 @@ +/* SPDX-License-Identifier: GPL-2.0-only OR MIT */ + +#ifndef __SOC_MEDIATEK_COMMON_PI_IMAGE_COMMON_H__ +#define __SOC_MEDIATEK_COMMON_PI_IMAGE_COMMON_H__ + +void pi_image_add_mtk_fsp_params(void); + +#endif /* __SOC_MEDIATEK_COMMON_PI_IMAGE_COMMON_H__ */ diff --git a/src/soc/mediatek/mt8196/pi_image.c b/src/soc/mediatek/common/pi_image.c similarity index 53% rename from src/soc/mediatek/mt8196/pi_image.c rename to src/soc/mediatek/common/pi_image.c index d1e60e084f..32ffa12029 100644 --- a/src/soc/mediatek/mt8196/pi_image.c +++ b/src/soc/mediatek/common/pi_image.c @@ -1,18 +1,16 @@ /* SPDX-License-Identifier: GPL-2.0-only OR MIT */ -#include #include #include +#include #include #include -#include -#include static struct mtk_mcu pi_image = { .firmware_name = CONFIG_PI_IMG_FIRMWARE }; -size_t pi_image_load(void **buffer) +static size_t pi_image_load(void **buffer) { *buffer = NULL; pi_image.load_buffer = _dram_dma; @@ -24,3 +22,16 @@ size_t pi_image_load(void **buffer) *buffer = pi_image.load_buffer; return pi_image.run_size; } + +void pi_image_add_mtk_fsp_params(void) +{ + void *pi_img; + size_t pi_image_size; + pi_image_size = pi_image_load(&pi_img); + + void *csram = (void *)PI_IMAGE_CSRAM; + size_t csram_size = PI_IMAGE_CSRAM_SIZE; + + mtk_fsp_add_param(FSP_PARAM_TYPE_PI_IMG, pi_image_size, pi_img); + mtk_fsp_add_param(FSP_PARAM_TYPE_PI_IMG_CSRAM, csram_size, csram); +} diff --git a/src/soc/mediatek/mt8196/Makefile.mk b/src/soc/mediatek/mt8196/Makefile.mk index ea691e391b..c69f67c2b7 100644 --- a/src/soc/mediatek/mt8196/Makefile.mk +++ b/src/soc/mediatek/mt8196/Makefile.mk @@ -79,7 +79,7 @@ ramstage-y += ../common/mt6685.c mt6685.c ramstage-y += mt6685_rtc.c ramstage-y += mtcmos.c ramstage-y += ../common/mtk_fsp.c -ramstage-y += pi_image.c +ramstage-y += ../common/pi_image.c ramstage-y += soc.c ramstage-y += ../common/spm.c ../common/spm_v2.c spm.c ramstage-y += ../common/sspm.c ../common/sspm_sram.c diff --git a/src/soc/mediatek/mt8196/include/soc/pi_image.h b/src/soc/mediatek/mt8196/include/soc/pi_image.h index 74f8ebe893..d30d925985 100644 --- a/src/soc/mediatek/mt8196/include/soc/pi_image.h +++ b/src/soc/mediatek/mt8196/include/soc/pi_image.h @@ -3,12 +3,9 @@ #ifndef __SOC_MEDIATEK_MT8196_PI_IMAGE_H__ #define __SOC_MEDIATEK_MT8196_PI_IMAGE_H__ -#include -#include +#include #define PI_IMAGE_CSRAM 0x00120000 #define PI_IMAGE_CSRAM_SIZE (16 * KiB) -size_t pi_image_load(void **buffer); - #endif /* __SOC_MEDIATEK_MT8196_PI_IMAGE_H__ */ diff --git a/src/soc/mediatek/mt8196/soc.c b/src/soc/mediatek/mt8196/soc.c index c5a83d0c73..16271643ea 100644 --- a/src/soc/mediatek/mt8196/soc.c +++ b/src/soc/mediatek/mt8196/soc.c @@ -36,19 +36,6 @@ static void soc_read_resources(struct device *dev) ram_range(dev, 0, (uintptr_t)_dram, sdram_size()); } -static void add_pi_image_params(void) -{ - void *pi_image; - size_t pi_image_size; - pi_image_size = pi_image_load(&pi_image); - - void *csram = (void *)PI_IMAGE_CSRAM; - size_t csram_size = PI_IMAGE_CSRAM_SIZE; - - mtk_fsp_add_param(FSP_PARAM_TYPE_PI_IMG, pi_image_size, pi_image); - mtk_fsp_add_param(FSP_PARAM_TYPE_PI_IMG_CSRAM, csram_size, csram); -} - static void soc_init(struct device *dev) { uint32_t storage_type = mainboard_get_storage_type(); @@ -56,7 +43,7 @@ static void soc_init(struct device *dev) dcc_init(); mtk_fsp_init(RAMSTAGE_SOC_INIT); mtk_fsp_add_param(FSP_PARAM_TYPE_STORAGE, sizeof(storage_type), &storage_type); - add_pi_image_params(); + pi_image_add_mtk_fsp_params(); mtk_fsp_load_and_run(); mtk_mmu_disable_l2c_sram();