soc/mediatek/mt8195: Initialize MCUPM
Load MCUPM firmware and boot up MCUPM in ramstage. TEST=can see MCUPM log from AP console Signed-off-by: alex.miao <alex.miao@mediatek.corp-partner.google.com> Signed-off-by: Rex-BC Chen <rex-bc.chen@mediatek.com> Change-Id: I9e8c45ce7166644b94319ec2e7836d3d3c8008dc Reviewed-on: https://review.coreboot.org/c/coreboot/+/54899 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Yu-Ping Wu <yupingso@google.com>
This commit is contained in:
parent
9cf07f0cb9
commit
4a2887f381
|
@ -19,6 +19,12 @@ config VBOOT
|
||||||
select VBOOT_SEPARATE_VERSTAGE
|
select VBOOT_SEPARATE_VERSTAGE
|
||||||
select VBOOT_RETURN_FROM_VERSTAGE
|
select VBOOT_RETURN_FROM_VERSTAGE
|
||||||
|
|
||||||
|
config MCUPM_FIRMWARE
|
||||||
|
string
|
||||||
|
default "mcupm.bin"
|
||||||
|
help
|
||||||
|
The file name of the MediaTek MCUPM firmware.
|
||||||
|
|
||||||
config FLASH_DUAL_READ
|
config FLASH_DUAL_READ
|
||||||
bool
|
bool
|
||||||
default y
|
default y
|
||||||
|
|
|
@ -48,6 +48,8 @@ ramstage-y += emi.c
|
||||||
ramstage-y += ../common/flash_controller.c
|
ramstage-y += ../common/flash_controller.c
|
||||||
ramstage-y += ../common/gpio.c gpio.c
|
ramstage-y += ../common/gpio.c gpio.c
|
||||||
ramstage-y += ../common/i2c.c i2c.c
|
ramstage-y += ../common/i2c.c i2c.c
|
||||||
|
ramstage-y += ../common/mcu.c
|
||||||
|
ramstage-y += ../common/mcupm.c
|
||||||
ramstage-y += ../common/mmu_operations.c mmu_operations.c
|
ramstage-y += ../common/mmu_operations.c mmu_operations.c
|
||||||
ramstage-y += ../common/mtcmos.c mtcmos.c
|
ramstage-y += ../common/mtcmos.c mtcmos.c
|
||||||
ramstage-$(CONFIG_SPI_FLASH) += ../common/spi.c spi.c
|
ramstage-$(CONFIG_SPI_FLASH) += ../common/spi.c spi.c
|
||||||
|
@ -63,6 +65,16 @@ BL31_MAKEARGS += PLAT=mt8195
|
||||||
|
|
||||||
MT8195_BLOB_DIR := 3rdparty/blobs/soc/mediatek/mt8195
|
MT8195_BLOB_DIR := 3rdparty/blobs/soc/mediatek/mt8195
|
||||||
|
|
||||||
|
mcu-firmware-files := \
|
||||||
|
$(CONFIG_MCUPM_FIRMWARE)
|
||||||
|
|
||||||
|
$(foreach fw, $(call strip_quotes,$(mcu-firmware-files)), \
|
||||||
|
$(eval $(fw)-file := $(MT8195_BLOB_DIR)/$(fw)) \
|
||||||
|
$(eval $(fw)-type := raw) \
|
||||||
|
$(eval $(fw)-compression := LZ4) \
|
||||||
|
$(if $(wildcard $($(fw)-file)), $(eval cbfs-files-y += $(fw)), ) \
|
||||||
|
)
|
||||||
|
|
||||||
DRAM_CBFS := $(CONFIG_CBFS_PREFIX)/dram
|
DRAM_CBFS := $(CONFIG_CBFS_PREFIX)/dram
|
||||||
$(DRAM_CBFS)-file := $(MT8195_BLOB_DIR)/dram.elf
|
$(DRAM_CBFS)-file := $(MT8195_BLOB_DIR)/dram.elf
|
||||||
$(DRAM_CBFS)-type := stage
|
$(DRAM_CBFS)-type := stage
|
||||||
|
|
|
@ -5,6 +5,8 @@
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
MCUSYS_BASE = 0x0C530000,
|
MCUSYS_BASE = 0x0C530000,
|
||||||
|
MCUPM_SRAM_BASE = 0x0C540000,
|
||||||
|
MCUPM_CFG_BASE = 0x0C560000,
|
||||||
IO_PHYS = 0x10000000,
|
IO_PHYS = 0x10000000,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
#include <device/device.h>
|
#include <device/device.h>
|
||||||
#include <soc/emi.h>
|
#include <soc/emi.h>
|
||||||
|
#include <soc/mcupm.h>
|
||||||
#include <soc/mmu_operations.h>
|
#include <soc/mmu_operations.h>
|
||||||
#include <soc/ufs.h>
|
#include <soc/ufs.h>
|
||||||
#include <symbols.h>
|
#include <symbols.h>
|
||||||
|
@ -14,6 +15,7 @@ static void soc_read_resources(struct device *dev)
|
||||||
static void soc_init(struct device *dev)
|
static void soc_init(struct device *dev)
|
||||||
{
|
{
|
||||||
mtk_mmu_disable_l2c_sram();
|
mtk_mmu_disable_l2c_sram();
|
||||||
|
mcupm_init();
|
||||||
ufs_disable_refclk();
|
ufs_disable_refclk();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue