From 35aee24ef56f6aed4e0703c1986eba3bb80e393f Mon Sep 17 00:00:00 2001
From: Carlo Caione <ccaione@baylibre.com>
Date: Sat, 24 Aug 2019 17:52:40 +0100
Subject: [PATCH] amlogic: Move the SIP SVC code to common directory

The code is the same between GXBB and GXL. Move it to the common source
directory.

Signed-off-by: Carlo Caione <ccaione@baylibre.com>
Change-Id: I875689a6fd029971aa755fc2725217e90ed06b6c
---
 .../gxl_sip_svc.c => common/aml_sip_svc.c}    |  2 +-
 plat/amlogic/gxbb/gxbb_sip_svc.c              | 68 -------------------
 plat/amlogic/gxbb/platform.mk                 |  2 +-
 plat/amlogic/gxl/platform.mk                  |  2 +-
 4 files changed, 3 insertions(+), 71 deletions(-)
 rename plat/amlogic/{gxl/gxl_sip_svc.c => common/aml_sip_svc.c} (100%)
 delete mode 100644 plat/amlogic/gxbb/gxbb_sip_svc.c

diff --git a/plat/amlogic/gxl/gxl_sip_svc.c b/plat/amlogic/common/aml_sip_svc.c
similarity index 100%
rename from plat/amlogic/gxl/gxl_sip_svc.c
rename to plat/amlogic/common/aml_sip_svc.c
index eb832eea1..a212e6324 100644
--- a/plat/amlogic/gxl/gxl_sip_svc.c
+++ b/plat/amlogic/common/aml_sip_svc.c
@@ -5,9 +5,9 @@
  */
 
 #include <common/debug.h>
+#include <common/runtime_svc.h>
 #include <lib/mmio.h>
 #include <platform_def.h>
-#include <common/runtime_svc.h>
 #include <stdint.h>
 
 #include "aml_private.h"
diff --git a/plat/amlogic/gxbb/gxbb_sip_svc.c b/plat/amlogic/gxbb/gxbb_sip_svc.c
deleted file mode 100644
index f8f471915..000000000
--- a/plat/amlogic/gxbb/gxbb_sip_svc.c
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Copyright (c) 2018-2019, ARM Limited and Contributors. All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- */
-
-#include <stdint.h>
-
-#include <platform_def.h>
-
-#include <common/debug.h>
-#include <common/runtime_svc.h>
-#include <lib/mmio.h>
-
-#include "aml_private.h"
-
-/*******************************************************************************
- * This function is responsible for handling all SiP calls
- ******************************************************************************/
-static uintptr_t gxbb_sip_handler(uint32_t smc_fid,
-				  u_register_t x1, u_register_t x2,
-				  u_register_t x3, u_register_t x4,
-				  void *cookie, void *handle,
-				  u_register_t flags)
-{
-	switch (smc_fid) {
-
-	case GXBB_SM_GET_SHARE_MEM_INPUT_BASE:
-		SMC_RET1(handle, GXBB_SHARE_MEM_INPUT_BASE);
-
-	case GXBB_SM_GET_SHARE_MEM_OUTPUT_BASE:
-		SMC_RET1(handle, GXBB_SHARE_MEM_OUTPUT_BASE);
-
-	case GXBB_SM_EFUSE_READ:
-	{
-		void *dst = (void *)GXBB_SHARE_MEM_OUTPUT_BASE;
-		uint64_t ret = gxbb_efuse_read(dst, (uint32_t)x1, x2);
-
-		SMC_RET1(handle, ret);
-	}
-	case GXBB_SM_EFUSE_USER_MAX:
-		SMC_RET1(handle,  gxbb_efuse_user_max());
-
-	case GXBB_SM_JTAG_ON:
-		scpi_jtag_set_state(GXBB_JTAG_STATE_ON, x1);
-		SMC_RET1(handle, 0);
-
-	case GXBB_SM_JTAG_OFF:
-		scpi_jtag_set_state(GXBB_JTAG_STATE_OFF, x1);
-		SMC_RET1(handle, 0);
-
-	default:
-		ERROR("BL31: Unhandled SIP SMC: 0x%08x\n", smc_fid);
-		break;
-	}
-
-	SMC_RET1(handle, SMC_UNK);
-}
-
-DECLARE_RT_SVC(
-	gxbb_sip_handler,
-
-	OEN_SIP_START,
-	OEN_SIP_END,
-	SMC_TYPE_FAST,
-	NULL,
-	gxbb_sip_handler
-);
diff --git a/plat/amlogic/gxbb/platform.mk b/plat/amlogic/gxbb/platform.mk
index e27519050..27f3c4239 100644
--- a/plat/amlogic/gxbb/platform.mk
+++ b/plat/amlogic/gxbb/platform.mk
@@ -32,7 +32,7 @@ BL31_SOURCES		+=	lib/cpus/aarch64/cortex_a53.S		\
 				${AML_PLAT_COMMON}/aml_mhu.c		\
 				${AML_PLAT_SOC}/gxbb_pm.c		\
 				${AML_PLAT_COMMON}/aml_scpi.c		\
-				${AML_PLAT_SOC}/gxbb_sip_svc.c		\
+				${AML_PLAT_COMMON}/aml_sip_svc.c	\
 				${AML_PLAT_COMMON}/aml_thermal.c	\
 				${GIC_SOURCES}
 
diff --git a/plat/amlogic/gxl/platform.mk b/plat/amlogic/gxl/platform.mk
index 1c41cd5ad..f4d323550 100644
--- a/plat/amlogic/gxl/platform.mk
+++ b/plat/amlogic/gxl/platform.mk
@@ -35,7 +35,7 @@ BL31_SOURCES		+=	lib/cpus/aarch64/cortex_a53.S		\
 				${AML_PLAT_COMMON}/aml_mhu.c		\
 				${AML_PLAT_SOC}/gxl_pm.c		\
 				${AML_PLAT_COMMON}/aml_scpi.c		\
-				${AML_PLAT_SOC}/gxl_sip_svc.c		\
+				${AML_PLAT_COMMON}/aml_sip_svc.c	\
 				${AML_PLAT_COMMON}/aml_thermal.c	\
 				drivers/amlogic/crypto/sha_dma.c	\
 				${GIC_SOURCES}
-- 
GitLab