diff --git a/common/runtime_svc.c b/common/runtime_svc.c
index 09ce787..a2c0c09 100644
--- a/common/runtime_svc.c
+++ b/common/runtime_svc.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2018, ARM Limited and Contributors. All rights reserved.
+ * Copyright (c) 2013-2019, ARM Limited and Contributors. All rights reserved.
  *
  * SPDX-License-Identifier: BSD-3-Clause
  */
@@ -29,7 +29,6 @@
  * Function to invoke the registered `handle` corresponding to the smc_fid in
  * AArch32 mode.
  ******************************************************************************/
-#if SMCCC_MAJOR_VERSION == 1
 uintptr_t handle_runtime_svc(uint32_t smc_fid,
 			     void *cookie,
 			     void *handle,
@@ -55,7 +54,6 @@
 	return rt_svc_descs[index].handle(smc_fid, x1, x2, x3, x4, cookie,
 						handle, flags);
 }
-#endif /* SMCCC_MAJOR_VERSION */
 
 /*******************************************************************************
  * Simple routine to sanity check a runtime service descriptor before using it
@@ -71,14 +69,9 @@
 	if (desc->end_oen >= OEN_LIMIT)
 		return -EINVAL;
 
-#if SMCCC_MAJOR_VERSION == 1
 	if ((desc->call_type != SMC_TYPE_FAST) &&
 	    (desc->call_type != SMC_TYPE_YIELD))
 		return -EINVAL;
-#elif SMCCC_MAJOR_VERSION == 2
-	if (desc->is_vendor > 1U)
-		return -EINVAL;
-#endif /* SMCCC_MAJOR_VERSION */
 
 	/* A runtime service having no init or handle function doesn't make sense */
 	if ((desc->init == NULL) && (desc->handle == NULL))
@@ -149,17 +142,10 @@
 		 * descriptor which will handle the SMCs for this owning
 		 * entity range.
 		 */
-#if SMCCC_MAJOR_VERSION == 1
 		start_idx = (uint8_t)get_unique_oen(service->start_oen,
 						    service->call_type);
 		end_idx = (uint8_t)get_unique_oen(service->end_oen,
 						  service->call_type);
-#elif SMCCC_MAJOR_VERSION == 2
-		start_idx = (uint8_t)get_rt_desc_idx(service->start_oen,
-						     service->is_vendor);
-		end_idx = (uint8_t)get_rt_desc_idx(service->end_oen,
-						   service->is_vendor);
-#endif
 		assert(start_idx <= end_idx);
 		assert(end_idx < MAX_RT_SVCS);
 		for (; start_idx <= end_idx; start_idx++)
