Tegra194: mce: remove unsupported functionality
This patch cleans up the mce driver files to remove all the unsupported
functionality. The MCE/NVG interface is not restricted to the EL3 space,
so clients can issue commands to the MCE firmware directly.
Change-Id: Idcebc42f31805f9c1abe1c1edc17850151aca11d
Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
diff --git a/plat/nvidia/tegra/soc/t194/plat_sip_calls.c b/plat/nvidia/tegra/soc/t194/plat_sip_calls.c
index 3880284..04602f0 100644
--- a/plat/nvidia/tegra/soc/t194/plat_sip_calls.c
+++ b/plat/nvidia/tegra/soc/t194/plat_sip_calls.c
@@ -21,35 +21,9 @@
extern bool tegra_fake_system_suspend;
/*******************************************************************************
- * Offset to read the ref_clk counter value
- ******************************************************************************/
-#define REF_CLK_OFFSET 4ULL
-
-/*******************************************************************************
* Tegra186 SiP SMCs
******************************************************************************/
-#define TEGRA_SIP_SYSTEM_SHUTDOWN_STATE 0xC2FFFE01
-#define TEGRA_SIP_GET_ACTMON_CLK_COUNTERS 0xC2FFFE02
#define TEGRA_SIP_ENABLE_FAKE_SYSTEM_SUSPEND 0xC2FFFE03
-#define TEGRA_SIP_MCE_CMD_ENTER_CSTATE 0xC2FFFF00
-#define TEGRA_SIP_MCE_CMD_UPDATE_CSTATE_INFO 0xC2FFFF01
-#define TEGRA_SIP_MCE_CMD_UPDATE_CROSSOVER_TIME 0xC2FFFF02
-#define TEGRA_SIP_MCE_CMD_READ_CSTATE_STATS 0xC2FFFF03
-#define TEGRA_SIP_MCE_CMD_WRITE_CSTATE_STATS 0xC2FFFF04
-#define TEGRA_SIP_MCE_CMD_IS_SC7_ALLOWED 0xC2FFFF05
-#define TEGRA_SIP_MCE_CMD_ONLINE_CORE 0xC2FFFF06
-#define TEGRA_SIP_MCE_CMD_CC3_CTRL 0xC2FFFF07
-#define TEGRA_SIP_MCE_CMD_ECHO_DATA 0xC2FFFF08
-#define TEGRA_SIP_MCE_CMD_READ_VERSIONS 0xC2FFFF09
-#define TEGRA_SIP_MCE_CMD_ENUM_FEATURES 0xC2FFFF0A
-#define TEGRA_SIP_MCE_CMD_ROC_FLUSH_CACHE_TRBITS 0xC2FFFF0B
-#define TEGRA_SIP_MCE_CMD_ENUM_READ_MCA 0xC2FFFF0C
-#define TEGRA_SIP_MCE_CMD_ENUM_WRITE_MCA 0xC2FFFF0D
-#define TEGRA_SIP_MCE_CMD_ROC_FLUSH_CACHE 0xC2FFFF0E
-#define TEGRA_SIP_MCE_CMD_ROC_CLEAN_CACHE 0xC2FFFF0F
-#define TEGRA_SIP_MCE_CMD_ENABLE_LATIC 0xC2FFFF10
-#define TEGRA_SIP_MCE_CMD_UNCORE_PERFMON_REQ 0xC2FFFF11
-#define TEGRA_SIP_MCE_CMD_MISC_CCPLEX 0xC2FFFF12
/*******************************************************************************
* This function is responsible for handling all T186 SiP calls
@@ -63,88 +37,26 @@
void *handle,
uint64_t flags)
{
- int32_t mce_ret, ret = -ENOTSUP;
- uint32_t local_smc_fid = smc_fid;
- uint64_t local_x1 = x1;
+ int32_t ret = -ENOTSUP;
+ (void)x1;
(void)x4;
(void)cookie;
(void)flags;
- /*
- * Convert SMC FID to SMC64 until the linux driver uses
- * SMC64 encoding.
- */
- local_smc_fid |= (SMC_64 << FUNCID_CC_SHIFT);
-
- switch (local_smc_fid) {
-
- /*
- * Micro Coded Engine (MCE) commands reside in the 0x82FFFF00 -
- * 0x82FFFFFF SiP SMC space
- */
- case TEGRA_SIP_MCE_CMD_ENTER_CSTATE:
- case TEGRA_SIP_MCE_CMD_UPDATE_CSTATE_INFO:
- case TEGRA_SIP_MCE_CMD_UPDATE_CROSSOVER_TIME:
- case TEGRA_SIP_MCE_CMD_READ_CSTATE_STATS:
- case TEGRA_SIP_MCE_CMD_WRITE_CSTATE_STATS:
- case TEGRA_SIP_MCE_CMD_IS_SC7_ALLOWED:
- case TEGRA_SIP_MCE_CMD_CC3_CTRL:
- case TEGRA_SIP_MCE_CMD_ECHO_DATA:
- case TEGRA_SIP_MCE_CMD_READ_VERSIONS:
- case TEGRA_SIP_MCE_CMD_ENUM_FEATURES:
- case TEGRA_SIP_MCE_CMD_ROC_FLUSH_CACHE_TRBITS:
- case TEGRA_SIP_MCE_CMD_ENUM_READ_MCA:
- case TEGRA_SIP_MCE_CMD_ENUM_WRITE_MCA:
- case TEGRA_SIP_MCE_CMD_ROC_FLUSH_CACHE:
- case TEGRA_SIP_MCE_CMD_ROC_CLEAN_CACHE:
- case TEGRA_SIP_MCE_CMD_ENABLE_LATIC:
- case TEGRA_SIP_MCE_CMD_UNCORE_PERFMON_REQ:
- case TEGRA_SIP_MCE_CMD_MISC_CCPLEX:
-
- /* clean up the high bits */
- local_smc_fid &= MCE_CMD_MASK;
-
- /* execute the command and store the result */
- mce_ret = mce_command_handler(smc_fid, x1, x2, x3);
- write_ctx_reg(get_gpregs_ctx(handle), CTX_GPREG_X0, (uint64_t)mce_ret);
-
- ret = 0;
- break;
-
- case TEGRA_SIP_SYSTEM_SHUTDOWN_STATE:
-
- /* clean up the high bits */
- local_x1 = (uint32_t)x1;
- (void)local_x1;
-
+ if (smc_fid == TEGRA_SIP_ENABLE_FAKE_SYSTEM_SUSPEND) {
/*
- * SC8 is a special Tegra186 system state where the CPUs and
- * DRAM are powered down but the other subsystem is still
- * alive.
- */
-
- ret = 0;
- break;
-
- case TEGRA_SIP_ENABLE_FAKE_SYSTEM_SUSPEND:
- /*
- * System suspend mode is set if the platform ATF is running is
- * VDK and there is a debug SIP call. This mode ensures that the
- * debug path is excercied, instead of regular code path to suit
- * the pre-silicon platform needs. These include replacing the
- * the call to WFI with calls to system suspend exit procedures.
+ * System suspend mode is set if the platform ATF is
+ * running on VDK and there is a debug SIP call. This mode
+ * ensures that the debug path is exercised, instead of
+ * regular code path to suit the pre-silicon platform needs.
+ * This includes replacing the call to WFI, with calls to
+ * system suspend exit procedures.
*/
if (tegra_platform_is_virt_dev_kit()) {
-
tegra_fake_system_suspend = true;
ret = 0;
}
-
- break;
-
- default:
- break;
}
return ret;