mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-05-04 09:58:40 +00:00
Merge changes I58637b8d,I4bb1a50a,Iadac6549,I758e933f into integration
* changes: feat(mt8196): turn on APU smpu protection feat(mt8196): enable APU spmi operation feat(mt8196): add Mediatek MMinfra stub implementation feat(mt8196): enable cirq for MediaTek MT8196
This commit is contained in:
commit
6ef685a913
9 changed files with 66 additions and 15 deletions
|
@ -1,16 +1,12 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2024, MediaTek Inc. All rights reserved.
|
* Copyright (c) 2024-2025, MediaTek Inc. All rights reserved.
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: BSD-3-Clause
|
* SPDX-License-Identifier: BSD-3-Clause
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <inttypes.h>
|
#include <inttypes.h>
|
||||||
|
|
||||||
#define SPMI_ENABLE (0)
|
|
||||||
|
|
||||||
#if SPMI_ENABLE
|
|
||||||
#include <include/drivers/spmi_api.h>
|
#include <include/drivers/spmi_api.h>
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <common/debug.h>
|
#include <common/debug.h>
|
||||||
#include <drivers/delay_timer.h>
|
#include <drivers/delay_timer.h>
|
||||||
|
@ -259,16 +255,13 @@ static int apu_pcu_init(void)
|
||||||
uint32_t en_set_offset = BUCK_VAPU_PMIC_REG_EN_SET_ADDR;
|
uint32_t en_set_offset = BUCK_VAPU_PMIC_REG_EN_SET_ADDR;
|
||||||
uint32_t en_clr_offset = BUCK_VAPU_PMIC_REG_EN_CLR_ADDR;
|
uint32_t en_clr_offset = BUCK_VAPU_PMIC_REG_EN_CLR_ADDR;
|
||||||
uint32_t en_shift = BUCK_VAPU_PMIC_REG_EN_SHIFT;
|
uint32_t en_shift = BUCK_VAPU_PMIC_REG_EN_SHIFT;
|
||||||
#if SPMI_ENABLE
|
|
||||||
struct spmi_device *vsram_sdev;
|
struct spmi_device *vsram_sdev;
|
||||||
#endif
|
|
||||||
unsigned char vsram = 0;
|
unsigned char vsram = 0;
|
||||||
|
|
||||||
mmio_write_32(APUSYS_PCU + APU_PCUTOP_CTRL_SET, AUTO_BUCK_EN);
|
mmio_write_32(APUSYS_PCU + APU_PCUTOP_CTRL_SET, AUTO_BUCK_EN);
|
||||||
|
|
||||||
mmio_write_32((APUSYS_PCU + APU_PCU_BUCK_STEP_SEL), BUCK_STEP_SEL_VAL);
|
mmio_write_32((APUSYS_PCU + APU_PCU_BUCK_STEP_SEL), BUCK_STEP_SEL_VAL);
|
||||||
|
|
||||||
#if SPMI_ENABLE
|
|
||||||
vsram_sdev = get_spmi_device(SPMI_MASTER_1, SPMI_SLAVE_4);
|
vsram_sdev = get_spmi_device(SPMI_MASTER_1, SPMI_SLAVE_4);
|
||||||
if (!vsram_sdev) {
|
if (!vsram_sdev) {
|
||||||
ERROR("[APUPW] VSRAM BUCK4 get device fail\n");
|
ERROR("[APUPW] VSRAM BUCK4 get device fail\n");
|
||||||
|
@ -279,7 +272,6 @@ static int apu_pcu_init(void)
|
||||||
ERROR("[APUPW] VSRAM BUCK4 read fail\n");
|
ERROR("[APUPW] VSRAM BUCK4 read fail\n");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
mmio_write_32(APUSYS_PCU + APU_PCU_BUCK_ON_DAT0_L,
|
mmio_write_32(APUSYS_PCU + APU_PCU_BUCK_ON_DAT0_L,
|
||||||
(BUCK_VAPU_PMIC_REG_VOSEL_ADDR << PMIC_OFF_ADDR_OFF) | vsram);
|
(BUCK_VAPU_PMIC_REG_VOSEL_ADDR << PMIC_OFF_ADDR_OFF) | vsram);
|
||||||
|
|
|
@ -1,14 +1,13 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2024, MediaTek Inc. All rights reserved.
|
* Copyright (c) 2024-2025, MediaTek Inc. All rights reserved.
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: BSD-3-Clause
|
* SPDX-License-Identifier: BSD-3-Clause
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define ENABLE_SMPU_PROTECT (0)
|
#define ENABLE_SMPU_PROTECT (1)
|
||||||
|
|
||||||
#if ENABLE_SMPU_PROTECT
|
#if ENABLE_SMPU_PROTECT
|
||||||
#include "emi.h"
|
#include "emi.h"
|
||||||
#include "mt_emi.h"
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <common/debug.h>
|
#include <common/debug.h>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#
|
#
|
||||||
# Copyright (c) 2024, MediaTek Inc. All rights reserved.
|
# Copyright (c) 2024-2025, MediaTek Inc. All rights reserved.
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: BSD-3-Clause
|
# SPDX-License-Identifier: BSD-3-Clause
|
||||||
#
|
#
|
||||||
|
@ -10,7 +10,6 @@ MODULE := apusys_${MTK_SOC}
|
||||||
|
|
||||||
ifeq (${CONFIG_MTK_APUSYS_EMI_SUPPORT}, y)
|
ifeq (${CONFIG_MTK_APUSYS_EMI_SUPPORT}, y)
|
||||||
PLAT_INCLUDES += -I${MTK_PLAT}/drivers/emi/common
|
PLAT_INCLUDES += -I${MTK_PLAT}/drivers/emi/common
|
||||||
PLAT_INCLUDES += -I${MTK_PLAT}/drivers/emi/${MTK_SOC}
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
LOCAL_SRCS-y := ${LOCAL_DIR}/apusys_ammu.c
|
LOCAL_SRCS-y := ${LOCAL_DIR}/apusys_ammu.c
|
||||||
|
|
17
plat/mediatek/drivers/mminfra/mminfra_stub.c
Normal file
17
plat/mediatek/drivers/mminfra/mminfra_stub.c
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2025, MediaTek Inc. All rights reserved.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: BSD-3-Clause
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <drivers/mminfra_public.h>
|
||||||
|
|
||||||
|
int mminfra_get_if_in_use(void)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int mminfra_put(void)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
17
plat/mediatek/drivers/mminfra/rules.mk
Normal file
17
plat/mediatek/drivers/mminfra/rules.mk
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
#
|
||||||
|
# Copyright (c) 2025, MediaTek Inc. All rights reserved.
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: BSD-3-Clause
|
||||||
|
#
|
||||||
|
|
||||||
|
LOCAL_DIR := $(call GET_LOCAL_DIR)
|
||||||
|
|
||||||
|
MODULE := mminfra
|
||||||
|
|
||||||
|
PLAT_INCLUDES += -I${MTK_PLAT}/include/drivers/
|
||||||
|
|
||||||
|
ifeq ($(MTKLIB_PATH),)
|
||||||
|
LOCAL_SRCS-y := ${LOCAL_DIR}/mminfra_stub.c
|
||||||
|
endif
|
||||||
|
|
||||||
|
$(eval $(call MAKE_MODULE,$(MODULE),$(LOCAL_SRCS-y),$(MTK_BL)))
|
16
plat/mediatek/include/drivers/mminfra_public.h
Normal file
16
plat/mediatek/include/drivers/mminfra_public.h
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2025, MediaTek Inc. All rights reserved.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: BSD-3-Clause
|
||||||
|
*/
|
||||||
|
#ifndef MMINFRA_PUBLIC_H
|
||||||
|
#define MMINFRA_PUBLIC_H
|
||||||
|
|
||||||
|
#define MMINFRA_RET_ERR (-1)
|
||||||
|
#define MMINFRA_RET_POWER_OFF 0
|
||||||
|
#define MMINFRA_RET_POWER_ON 1
|
||||||
|
|
||||||
|
int mminfra_get_if_in_use(void);
|
||||||
|
int mminfra_put(void);
|
||||||
|
|
||||||
|
#endif
|
|
@ -147,6 +147,15 @@
|
||||||
INTR_PROP_DESC(DEV_IRQ_ID, GIC_HIGHEST_SEC_PRIORITY, grp, \
|
INTR_PROP_DESC(DEV_IRQ_ID, GIC_HIGHEST_SEC_PRIORITY, grp, \
|
||||||
GIC_INTR_CFG_LEVEL)
|
GIC_INTR_CFG_LEVEL)
|
||||||
|
|
||||||
|
/*******************************************************************************
|
||||||
|
* CIRQ related constants
|
||||||
|
******************************************************************************/
|
||||||
|
#define SYS_CIRQ_BASE (IO_PHYS + 0x1CB000)
|
||||||
|
#define MD_WDT_IRQ_BIT_ID (397)
|
||||||
|
#define CIRQ_REG_NUM (26)
|
||||||
|
#define CIRQ_SPI_START (128)
|
||||||
|
#define CIRQ_IRQ_NUM (831)
|
||||||
|
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* MM IOMMU & SMI related constants
|
* MM IOMMU & SMI related constants
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
|
|
|
@ -27,7 +27,7 @@ CTX_INCLUDE_AARCH32_REGS := 0
|
||||||
|
|
||||||
CONFIG_ARCH_ARM_V9 := y
|
CONFIG_ARCH_ARM_V9 := y
|
||||||
CONFIG_MTK_APUSYS_CE_SUPPORT := y
|
CONFIG_MTK_APUSYS_CE_SUPPORT := y
|
||||||
CONFIG_MTK_APUSYS_EMI_SUPPORT := n
|
CONFIG_MTK_APUSYS_EMI_SUPPORT := y
|
||||||
CONFIG_MTK_APUSYS_LOGTOP_SUPPORT := y
|
CONFIG_MTK_APUSYS_LOGTOP_SUPPORT := y
|
||||||
CONFIG_MTK_APUSYS_RV_APUMMU_SUPPORT := y
|
CONFIG_MTK_APUSYS_RV_APUMMU_SUPPORT := y
|
||||||
CONFIG_MTK_APUSYS_RV_COREDUMP_WA_SUPPORT := y
|
CONFIG_MTK_APUSYS_RV_COREDUMP_WA_SUPPORT := y
|
||||||
|
|
|
@ -29,10 +29,12 @@ MODULES-y += $(MTK_PLAT)/common/lpm_v2
|
||||||
MODULES-y += $(MTK_PLAT)/lib/mtk_init
|
MODULES-y += $(MTK_PLAT)/lib/mtk_init
|
||||||
MODULES-y += $(MTK_PLAT)/lib/pm
|
MODULES-y += $(MTK_PLAT)/lib/pm
|
||||||
MODULES-y += $(MTK_PLAT)/drivers/apusys
|
MODULES-y += $(MTK_PLAT)/drivers/apusys
|
||||||
|
MODULES-y += $(MTK_PLAT)/drivers/cirq
|
||||||
MODULES-y += $(MTK_PLAT)/drivers/dp
|
MODULES-y += $(MTK_PLAT)/drivers/dp
|
||||||
MODULES-y += $(MTK_PLAT)/drivers/emi
|
MODULES-y += $(MTK_PLAT)/drivers/emi
|
||||||
MODULES-y += $(MTK_PLAT)/drivers/gicv3
|
MODULES-y += $(MTK_PLAT)/drivers/gicv3
|
||||||
MODULES-y += $(MTK_PLAT)/drivers/mcusys
|
MODULES-y += $(MTK_PLAT)/drivers/mcusys
|
||||||
|
MODULES-y += $(MTK_PLAT)/drivers/mminfra
|
||||||
MODULES-y += $(MTK_PLAT)/drivers/spm
|
MODULES-y += $(MTK_PLAT)/drivers/spm
|
||||||
MODULES-y += $(MTK_PLAT)/drivers/timer
|
MODULES-y += $(MTK_PLAT)/drivers/timer
|
||||||
MODULES-y += $(MTK_PLAT)/drivers/vcp
|
MODULES-y += $(MTK_PLAT)/drivers/vcp
|
||||||
|
|
Loading…
Add table
Reference in a new issue