summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRex-BC Chen <rex-bc.chen@mediatek.com>2021-05-03 20:44:09 +0800
committerHung-Te Lin <hungte@chromium.org>2021-06-03 01:58:13 +0000
commitab2cbf79b5d2508ccc81b64d23215e3abfd3987c (patch)
tree423463a3f3d3cbbf5df1f0fbc280a9bb08fc15cf
parentaea59401d053690ce06a5f89be272865e7905682 (diff)
soc/mediatek: Initialize SSPM
Load SSPM firmware and boot up SSPM in ramstage. This adds 23ms to the boot time. TEST=Load SSPM blob ok, and we can see some logs of SSPM from AP. Signed-off-by: Rex-BC Chen <rex-bc.chen@mediatek.com> Change-Id: Ia227ea9f7d58129068cb36ec2de7d9feb677006b Reviewed-on: https://review.coreboot.org/c/coreboot/+/55051 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Yu-Ping Wu <yupingso@google.com>
-rw-r--r--src/soc/mediatek/mt8195/Kconfig6
-rw-r--r--src/soc/mediatek/mt8195/Makefile.inc4
-rw-r--r--src/soc/mediatek/mt8195/soc.c2
3 files changed, 11 insertions, 1 deletions
diff --git a/src/soc/mediatek/mt8195/Kconfig b/src/soc/mediatek/mt8195/Kconfig
index f9bf8466b6..02f7c5ab48 100644
--- a/src/soc/mediatek/mt8195/Kconfig
+++ b/src/soc/mediatek/mt8195/Kconfig
@@ -25,6 +25,12 @@ config MCUPM_FIRMWARE
help
The file name of the MediaTek MCUPM firmware.
+config SSPM_FIRMWARE
+ string
+ default "sspm.bin"
+ help
+ The file name of the MediaTek SSPM firmware.
+
config FLASH_DUAL_READ
bool
default y
diff --git a/src/soc/mediatek/mt8195/Makefile.inc b/src/soc/mediatek/mt8195/Makefile.inc
index 1f89a587c5..ae325d59fc 100644
--- a/src/soc/mediatek/mt8195/Makefile.inc
+++ b/src/soc/mediatek/mt8195/Makefile.inc
@@ -54,6 +54,7 @@ ramstage-y += ../common/mmu_operations.c mmu_operations.c
ramstage-y += ../common/mtcmos.c mtcmos.c
ramstage-$(CONFIG_SPI_FLASH) += ../common/spi.c spi.c
ramstage-y += soc.c
+ramstage-y += ../common/sspm.c
ramstage-y += ../common/timer.c timer.c
ramstage-y += ../common/uart.c
ramstage-y += ../common/ufs.c
@@ -66,7 +67,8 @@ BL31_MAKEARGS += PLAT=mt8195
MT8195_BLOB_DIR := 3rdparty/blobs/soc/mediatek/mt8195
mcu-firmware-files := \
- $(CONFIG_MCUPM_FIRMWARE)
+ $(CONFIG_MCUPM_FIRMWARE) \
+ $(CONFIG_SSPM_FIRMWARE)
$(foreach fw, $(call strip_quotes,$(mcu-firmware-files)), \
$(eval $(fw)-file := $(MT8195_BLOB_DIR)/$(fw)) \
diff --git a/src/soc/mediatek/mt8195/soc.c b/src/soc/mediatek/mt8195/soc.c
index 3ebf23d77f..f9f4f99f57 100644
--- a/src/soc/mediatek/mt8195/soc.c
+++ b/src/soc/mediatek/mt8195/soc.c
@@ -4,6 +4,7 @@
#include <soc/emi.h>
#include <soc/mcupm.h>
#include <soc/mmu_operations.h>
+#include <soc/sspm.h>
#include <soc/ufs.h>
#include <symbols.h>
@@ -16,6 +17,7 @@ static void soc_init(struct device *dev)
{
mtk_mmu_disable_l2c_sram();
mcupm_init();
+ sspm_init();
ufs_disable_refclk();
}