diff --git a/Makefile b/Makefile
index 4e606a2..0169f3f 100644
--- a/Makefile
+++ b/Makefile
@@ -432,16 +432,6 @@
 $(error "BL2_IN_XIP_MEM is only supported when BL2_AT_EL3 is enabled")
 endif
 
-# SMC Calling Convention checks
-ifneq (${SMCCC_MAJOR_VERSION},1)
-    ifneq (${SPD},none)
-        $(error "SMC Calling Convention 1.X must be used with SPDs")
-    endif
-    ifeq (${ARCH},aarch32)
-        $(error "Only SMCCC 1.X is supported in AArch32 mode.")
-    endif
-endif
-
 # For RAS_EXTENSION, require that EAs are handled in EL3 first
 ifeq ($(RAS_EXTENSION),1)
     ifneq ($(HANDLE_EA_EL3_FIRST),1)
@@ -624,7 +614,6 @@
 
 $(eval $(call assert_numeric,ARM_ARCH_MAJOR))
 $(eval $(call assert_numeric,ARM_ARCH_MINOR))
-$(eval $(call assert_numeric,SMCCC_MAJOR_VERSION))
 
 ################################################################################
 # Add definitions to the cpp preprocessor based on the current build options.
@@ -664,7 +653,6 @@
 $(eval $(call add_define,RESET_TO_BL31))
 $(eval $(call add_define,SEPARATE_CODE_AND_RODATA))
 $(eval $(call add_define,RECLAIM_INIT_CODE))
-$(eval $(call add_define,SMCCC_MAJOR_VERSION))
 $(eval $(call add_define,SPD_${SPD}))
 $(eval $(call add_define,SPIN_ON_BL1_EXIT))
 $(eval $(call add_define,SPM_MM))
diff --git a/bl31/aarch64/runtime_exceptions.S b/bl31/aarch64/runtime_exceptions.S
index e7abd50..4f53b8e 100644
--- a/bl31/aarch64/runtime_exceptions.S
+++ b/bl31/aarch64/runtime_exceptions.S
@@ -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
  */
@@ -303,38 +303,6 @@
 	b	enter_lower_el_async_ea
 end_vector_entry serror_aarch32
 
-
-	/* ---------------------------------------------------------------------
-	 * This macro takes an argument in x16 that is the index in the
-	 * 'rt_svc_descs_indices' array, checks that the value in the array is
-	 * valid, and loads in x15 the pointer to the handler of that service.
-	 * ---------------------------------------------------------------------
-	 */
-	.macro	load_rt_svc_desc_pointer
-	/* Load descriptor index from array of indices */
-	adr	x14, rt_svc_descs_indices
-	ldrb	w15, [x14, x16]
-
-#if SMCCC_MAJOR_VERSION == 1
-	/* Any index greater than 127 is invalid. Check bit 7. */
-	tbnz	w15, 7, smc_unknown
-#elif SMCCC_MAJOR_VERSION == 2
-	/* Verify that the top 3 bits of the loaded index are 0 (w15 <= 31) */
-	cmp	w15, #31
-	b.hi	smc_unknown
-#endif /* SMCCC_MAJOR_VERSION */
-
-	/*
-	 * Get the descriptor using the index
-	 * x11 = (base + off), w15 = index
-	 *
-	 * handler = (base + off) + (index << log2(size))
-	 */
-	adr	x11, (__RT_SVC_DESCS_START__ + RT_SVC_DESC_HANDLE)
-	lsl	w10, w15, #RT_SVC_SIZE_LOG2
-	ldr	x15, [x11, w10, uxtw]
-	.endm
-
 	/* ---------------------------------------------------------------------
 	 * The following code handles secure monitor calls.
 	 * Depending upon the execution state from where the SMC has been
@@ -363,56 +331,27 @@
 	mov	x5, xzr
 	mov	x6, sp
 
-#if SMCCC_MAJOR_VERSION == 1
-
 	/* Get the unique owning entity number */
 	ubfx	x16, x0, #FUNCID_OEN_SHIFT, #FUNCID_OEN_WIDTH
 	ubfx	x15, x0, #FUNCID_TYPE_SHIFT, #FUNCID_TYPE_WIDTH
 	orr	x16, x16, x15, lsl #FUNCID_OEN_WIDTH
 
-	load_rt_svc_desc_pointer
-
-#elif SMCCC_MAJOR_VERSION == 2
-
-	/* Bit 31 must be set */
-	tbz	x0, #FUNCID_TYPE_SHIFT, smc_unknown
-
-	/*
-	 * Check MSB of namespace to decide between compatibility/vendor and
-	 * SPCI/SPRT
-	 */
-	tbz	x0, #(FUNCID_NAMESPACE_SHIFT + 1), compat_or_vendor
-
-	/* Namespace is b'10 (SPRT) or b'11 (SPCI) */
-#if ENABLE_SPM
-	tst	x0, #(1 << FUNCID_NAMESPACE_SHIFT)
-	adr	x15, spci_smc_handler
-	adr	x16, sprt_smc_handler
-	csel	x15, x15, x16, ne
-	b	prepare_enter_handler
-#else
-	b	smc_unknown
-#endif
-
-compat_or_vendor:
+	/* Load descriptor index from array of indices */
+	adr	x14, rt_svc_descs_indices
+	ldrb	w15, [x14, x16]
 
-	/* Namespace is b'00 (compatibility) or b'01 (vendor) */
+	/* Any index greater than 127 is invalid. Check bit 7. */
+	tbnz	w15, 7, smc_unknown
 
 	/*
-	 * Add the LSB of the namespace (bit [28]) to the OEN [27:24] to create
-	 * a 5-bit index into the rt_svc_descs_indices array.
+	 * Get the descriptor using the index
+	 * x11 = (base + off), w15 = index
 	 *
-	 * The low 16 entries of the rt_svc_descs_indices array correspond to
-	 * OENs of the compatibility namespace and the top 16 entries of the
-	 * array are assigned to the vendor namespace descriptor.
+	 * handler = (base + off) + (index << log2(size))
 	 */
-	ubfx	x16, x0, #FUNCID_OEN_SHIFT, #(FUNCID_OEN_WIDTH + 1)
-
-	load_rt_svc_desc_pointer
-
-prepare_enter_handler:
-
-#endif /* SMCCC_MAJOR_VERSION */
+	adr	x11, (__RT_SVC_DESCS_START__ + RT_SVC_DESC_HANDLE)
+	lsl	w10, w15, #RT_SVC_SIZE_LOG2
+	ldr	x15, [x11, w10, uxtw]
 
 	/*
 	 * Restore the saved C runtime stack value which will become the new
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++)
diff --git a/docs/user-guide.rst b/docs/user-guide.rst
index e22733e..3828eaf 100644
--- a/docs/user-guide.rst
+++ b/docs/user-guide.rst
@@ -668,11 +668,6 @@
    pages" section in `Firmware Design`_. This flag is disabled by default and
    affects all BL images.
 
--  ``SMCCC_MAJOR_VERSION``: Numeric value that indicates the major version of
-   the SMC Calling Convention that the Trusted Firmware supports. The only two
-   allowed values are 1 and 2, and it defaults to 1. The minor version is
-   determined using this value.
-
 -  ``SPD``: Choose a Secure Payload Dispatcher component to be built into TF-A.
    This build option is only valid if ``ARCH=aarch64``. The value should be
    the path to the directory containing the SPD source, relative to
@@ -2057,7 +2052,7 @@
 
 --------------
 
-*Copyright (c) 2013-2018, Arm Limited and Contributors. All rights reserved.*
+*Copyright (c) 2013-2019, Arm Limited and Contributors. All rights reserved.*
 
 .. _Linaro: `Linaro Release Notes`_
 .. _Linaro Release: `Linaro Release Notes`_
diff --git a/include/common/runtime_svc.h b/include/common/runtime_svc.h
index 59bf158..e5e36c7 100644
--- a/include/common/runtime_svc.h
+++ b/include/common/runtime_svc.h
@@ -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
  */
@@ -36,17 +36,8 @@
  * In SMCCC 1.X, the function identifier has 6 bits for the owning entity number
  * and a single bit for the type of smc call. When taken together, those values
  * limit the maximum number of runtime services to 128.
- *
- * In SMCCC 2.X the type bit is always 1 and there are only 4 OEN bits in the
- * compatibility namespace, so the total number of services is 16. The LSB of
- * namespace is also added to these 4 bits to make space for the vendor service
- * handler and so the total number of runtime services is 32.
  */
-#if SMCCC_MAJOR_VERSION == 1
 #define MAX_RT_SVCS		U(128)
-#elif SMCCC_MAJOR_VERSION == 2
-#define MAX_RT_SVCS		U(32)
-#endif
 
 #ifndef __ASSEMBLY__
 
@@ -70,11 +61,7 @@
 typedef struct rt_svc_desc {
 	uint8_t start_oen;
 	uint8_t end_oen;
-#if SMCCC_MAJOR_VERSION == 1
 	uint8_t call_type;
-#elif SMCCC_MAJOR_VERSION == 2
-	uint8_t is_vendor;
-#endif
 	const char *name;
 	rt_svc_init_t init;
 	rt_svc_handle_t handle;
@@ -83,8 +70,6 @@
 /*
  * Convenience macros to declare a service descriptor
  */
-#if SMCCC_MAJOR_VERSION == 1
-
 #define DECLARE_RT_SVC(_name, _start, _end, _type, _setup, _smch)	\
 	static const rt_svc_desc_t __svc_desc_ ## _name			\
 		__section("rt_svc_descs") __used = {			\
@@ -96,37 +81,6 @@
 			.handle = (_smch)				\
 		}
 
-#elif SMCCC_MAJOR_VERSION == 2
-
-#define DECLARE_RT_SVC(_name, _start, _end, _type, _setup, _smch)	\
-	static const rt_svc_desc_t __svc_desc_ ## _name			\
-		__section("rt_svc_descs") __used = {			\
-			.start_oen = (_start),				\
-			.end_oen = (_end),				\
-			.is_vendor = 0,					\
-			.name = #_name,					\
-			.init = (_setup),				\
-			.handle = (_smch),				\
-		};							\
-	CASSERT((_type) == SMC_TYPE_FAST, rt_svc_type_check_ ## _name)
-
-/*
- * The higher 16 entries of the runtime services are used for the vendor
- * specific descriptor.
- */
-#define DECLARE_RT_SVC_VENDOR(_setup, _smch)				\
-	static const rt_svc_desc_t __svc_desc_vendor			\
-		__section("rt_svc_descs") __used = {			\
-			.start_oen = 0,					\
-			.end_oen = 15,					\
-			.is_vendor = 1,					\
-			.name = "vendor_rt_svc",			\
-			.init = _setup,					\
-			.handle = _smch,				\
-		}
-
-#endif /* SMCCC_MAJOR_VERSION */
-
 /*
  * Compile time assertions related to the 'rt_svc_desc' structure to:
  * 1. ensure that the assembler and the compiler view of the size
@@ -144,7 +98,6 @@
 	assert_rt_svc_desc_handle_offset_mismatch);
 
 
-#if SMCCC_MAJOR_VERSION == 1
 /*
  * This function combines the call type and the owning entity number
  * corresponding to a runtime service to generate a unique owning entity number.
@@ -169,22 +122,6 @@
 	return get_unique_oen(GET_SMC_OEN(fid), GET_SMC_TYPE(fid));
 }
 
-#elif SMCCC_MAJOR_VERSION == 2
-
-/*
- * This function combines the owning entity number corresponding to a runtime
- * service with one extra bit for the vendor namespace to generate an index into
- * the 'rt_svc_descs_indices' array. The entry contains the index of the service
- * descriptor in the 'rt_svc_descs' array.
- */
-static inline uint32_t get_rt_desc_idx(uint32_t oen, uint32_t is_vendor)
-{
-	return ((is_vendor & 1U) << FUNCID_OEN_WIDTH) |
-		(oen & FUNCID_OEN_MASK);
-}
-
-#endif
-
 /*******************************************************************************
  * Function & variable prototypes
  ******************************************************************************/
diff --git a/include/lib/smccc.h b/include/lib/smccc.h
index b10c52c..94c39d2 100644
--- a/include/lib/smccc.h
+++ b/include/lib/smccc.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016-2018, ARM Limited and Contributors. All rights reserved.
+ * Copyright (c) 2016-2019, ARM Limited and Contributors. All rights reserved.
  *
  * SPDX-License-Identifier: BSD-3-Clause
  */
@@ -19,15 +19,69 @@
 	| (((uint32_t)(_minor) & SMCCC_VERSION_MINOR_MASK) << \
 						SMCCC_VERSION_MINOR_SHIFT))
 
-#if SMCCC_MAJOR_VERSION == 1
-# define SMCCC_MINOR_VERSION U(1)
-# include <lib/smccc_v1.h>
-#elif SMCCC_MAJOR_VERSION == 2
-# define SMCCC_MINOR_VERSION U(0)
-# include <lib/smccc_v2.h>
-#else
-# error "Unsupported version of SMCCC."
-#endif
+#define SMCCC_MAJOR_VERSION U(1)
+#define SMCCC_MINOR_VERSION U(1)
+
+/*******************************************************************************
+ * Bit definitions inside the function id as per the SMC calling convention
+ ******************************************************************************/
+#define FUNCID_TYPE_SHIFT		U(31)
+#define FUNCID_TYPE_MASK		U(0x1)
+#define FUNCID_TYPE_WIDTH		U(1)
+
+#define FUNCID_CC_SHIFT			U(30)
+#define FUNCID_CC_MASK			U(0x1)
+#define FUNCID_CC_WIDTH			U(1)
+
+#define FUNCID_OEN_SHIFT		U(24)
+#define FUNCID_OEN_MASK			U(0x3f)
+#define FUNCID_OEN_WIDTH		U(6)
+
+#define FUNCID_NUM_SHIFT		U(0)
+#define FUNCID_NUM_MASK			U(0xffff)
+#define FUNCID_NUM_WIDTH		U(16)
+
+#define GET_SMC_TYPE(id)		(((id) >> FUNCID_TYPE_SHIFT) & \
+					 FUNCID_TYPE_MASK)
+#define GET_SMC_CC(id)			(((id) >> FUNCID_CC_SHIFT) & \
+					 FUNCID_CC_MASK)
+#define GET_SMC_OEN(id)			(((id) >> FUNCID_OEN_SHIFT) & \
+					 FUNCID_OEN_MASK)
+
+/*******************************************************************************
+ * Owning entity number definitions inside the function id as per the SMC
+ * calling convention
+ ******************************************************************************/
+#define OEN_ARM_START			U(0)
+#define OEN_ARM_END			U(0)
+#define OEN_CPU_START			U(1)
+#define OEN_CPU_END			U(1)
+#define OEN_SIP_START			U(2)
+#define OEN_SIP_END			U(2)
+#define OEN_OEM_START			U(3)
+#define OEN_OEM_END			U(3)
+#define OEN_STD_START			U(4)	/* Standard Service Calls */
+#define OEN_STD_END			U(4)
+#define OEN_STD_HYP_START		U(5)	/* Standard Hypervisor Service calls */
+#define OEN_STD_HYP_END			U(5)
+#define OEN_VEN_HYP_START		U(6)	/* Vendor Hypervisor Service calls */
+#define OEN_VEN_HYP_END			U(6)
+#define OEN_TAP_START			U(48)	/* Trusted Applications */
+#define OEN_TAP_END			U(49)
+#define OEN_TOS_START			U(50)	/* Trusted OS */
+#define OEN_TOS_END			U(63)
+#define OEN_LIMIT			U(64)
+
+/* Flags and error codes */
+#define SMC_64				U(1)
+#define SMC_32				U(0)
+
+#define SMC_TYPE_FAST			ULL(1)
+#define SMC_TYPE_YIELD			ULL(0)
+
+#define SMC_OK				ULL(0)
+#define SMC_UNK				-1
+#define SMC_PREEMPTED			-2	/* Not defined by the SMCCC */
 
 /* Various flags passed to SMC handlers */
 #define SMC_FROM_SECURE		(U(0) << 0)
diff --git a/include/lib/smccc_v1.h b/include/lib/smccc_v1.h
deleted file mode 100644
index 2b8bd8b..0000000
--- a/include/lib/smccc_v1.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright (c) 2016-2018, ARM Limited and Contributors. All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- */
-
-#ifndef SMCCC_V1_H
-#define SMCCC_V1_H
-
-#ifndef SMCCC_H
-#error "This file must only be included from smccc.h"
-#endif
-
-/*******************************************************************************
- * Bit definitions inside the function id as per the SMC calling convention
- ******************************************************************************/
-#define FUNCID_TYPE_SHIFT		U(31)
-#define FUNCID_TYPE_MASK		U(0x1)
-#define FUNCID_TYPE_WIDTH		U(1)
-
-#define FUNCID_CC_SHIFT			U(30)
-#define FUNCID_CC_MASK			U(0x1)
-#define FUNCID_CC_WIDTH			U(1)
-
-#define FUNCID_OEN_SHIFT		U(24)
-#define FUNCID_OEN_MASK			U(0x3f)
-#define FUNCID_OEN_WIDTH		U(6)
-
-#define FUNCID_NUM_SHIFT		U(0)
-#define FUNCID_NUM_MASK			U(0xffff)
-#define FUNCID_NUM_WIDTH		U(16)
-
-#define GET_SMC_TYPE(id)		(((id) >> FUNCID_TYPE_SHIFT) & \
-					 FUNCID_TYPE_MASK)
-#define GET_SMC_CC(id)			(((id) >> FUNCID_CC_SHIFT) & \
-					 FUNCID_CC_MASK)
-#define GET_SMC_OEN(id)			(((id) >> FUNCID_OEN_SHIFT) & \
-					 FUNCID_OEN_MASK)
-
-/*******************************************************************************
- * Owning entity number definitions inside the function id as per the SMC
- * calling convention
- ******************************************************************************/
-#define OEN_ARM_START			U(0)
-#define OEN_ARM_END			U(0)
-#define OEN_CPU_START			U(1)
-#define OEN_CPU_END			U(1)
-#define OEN_SIP_START			U(2)
-#define OEN_SIP_END			U(2)
-#define OEN_OEM_START			U(3)
-#define OEN_OEM_END			U(3)
-#define OEN_STD_START			U(4)	/* Standard Service Calls */
-#define OEN_STD_END			U(4)
-#define OEN_STD_HYP_START		U(5)	/* Standard Hypervisor Service calls */
-#define OEN_STD_HYP_END			U(5)
-#define OEN_VEN_HYP_START		U(6)	/* Vendor Hypervisor Service calls */
-#define OEN_VEN_HYP_END			U(6)
-#define OEN_TAP_START			U(48)	/* Trusted Applications */
-#define OEN_TAP_END			U(49)
-#define OEN_TOS_START			U(50)	/* Trusted OS */
-#define OEN_TOS_END			U(63)
-#define OEN_LIMIT			U(64)
-
-/* Flags and error codes */
-#define SMC_64				U(1)
-#define SMC_32				U(0)
-
-#define SMC_TYPE_FAST			ULL(1)
-#define SMC_TYPE_YIELD			ULL(0)
-
-#define SMC_OK				ULL(0)
-#define SMC_UNK				-1
-#define SMC_PREEMPTED			-2	/* Not defined by the SMCCC */
-
-#endif /* SMCCC_V1_H */
diff --git a/include/lib/smccc_v2.h b/include/lib/smccc_v2.h
deleted file mode 100644
index 22bf458..0000000
--- a/include/lib/smccc_v2.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * Copyright (c) 2016-2018, ARM Limited and Contributors. All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- */
-
-#ifndef SMCCC_V2_H
-#define SMCCC_V2_H
-
-#ifndef SMCCC_H
-#error "This file must only be included from smccc.h"
-#endif
-
-/*******************************************************************************
- * Bit definitions inside the function id as per the SMC calling convention
- ******************************************************************************/
-#define FUNCID_TYPE_SHIFT		U(31)
-#define FUNCID_TYPE_MASK		U(0x1)
-#define FUNCID_TYPE_WIDTH		U(1)
-
-#define FUNCID_CC_SHIFT			U(30)
-#define FUNCID_CC_MASK			U(0x1)
-#define FUNCID_CC_WIDTH			U(1)
-
-#define FUNCID_NAMESPACE_SHIFT		U(28)
-#define FUNCID_NAMESPACE_MASK		U(0x3)
-#define FUNCID_NAMESPACE_WIDTH		U(2)
-
-#define FUNCID_OEN_SHIFT		U(24)
-#define FUNCID_OEN_MASK			U(0xf)
-#define FUNCID_OEN_WIDTH		U(4)
-
-#define FUNCID_NUM_SHIFT		U(0)
-#define FUNCID_NUM_MASK			U(0xffff)
-#define FUNCID_NUM_WIDTH		U(16)
-
-#define GET_SMC_TYPE(id)		(((id) >> FUNCID_TYPE_SHIFT) & \
-					 FUNCID_TYPE_MASK)
-#define GET_SMC_CC(id)			(((id) >> FUNCID_CC_SHIFT) & \
-					 FUNCID_CC_MASK)
-#define GET_SMC_NAMESPACE(id)		(((id) >> FUNCID_NAMESPACE_SHIFT) & \
-					 FUNCID_NAMESPACE_MASK)
-#define GET_SMC_OEN(id)			(((id) >> FUNCID_OEN_SHIFT) & \
-					 FUNCID_OEN_MASK)
-
-/*******************************************************************************
- * Owning entity number definitions inside the function id as per the SMC
- * calling convention
- ******************************************************************************/
-#define OEN_ARM_START			U(0)
-#define OEN_ARM_END			U(0)
-#define OEN_CPU_START			U(1)
-#define OEN_CPU_END			U(1)
-#define OEN_SIP_START			U(2)
-#define OEN_SIP_END			U(2)
-#define OEN_OEM_START			U(3)
-#define OEN_OEM_END			U(3)
-#define OEN_STD_START			U(4)	/* Standard Service Calls */
-#define OEN_STD_END			U(4)
-#define OEN_STD_HYP_START		U(5)	/* Standard Hypervisor Service calls */
-#define OEN_STD_HYP_END			U(5)
-#define OEN_VEN_HYP_START		U(6)	/* Vendor Hypervisor Service calls */
-#define OEN_VEN_HYP_END			U(6)
-#define OEN_LIMIT			U(16)
-
-/*******************************************************************************
- * Service namespaces as per the SMC Calling Convention v2.X
- ******************************************************************************/
-#define FUNCID_NAMESPACE_START		U(0)
-#define FUNCID_NAMESPACE_COMPAT		U(0)
-#define FUNCID_NAMESPACE_VENDOR		U(1)
-#define FUNCID_NAMESPACE_SPRT		U(2)
-#define FUNCID_NAMESPACE_SPCI		U(3)
-#define FUNCID_NAMESPACE_LIMIT		U(4)
-
-/* Flags and error codes */
-#define SMC_64				U(1)
-#define SMC_32				U(0)
-
-#define SMC_TYPE_FAST			ULL(1)
-
-#define SMC_OK				ULL(0)
-#define SMC_UNK				-1
-
-#endif /* SMCCC_V2_H */
diff --git a/include/services/spci_svc.h b/include/services/spci_svc.h
index b82cf1e..1d02bfa 100644
--- a/include/services/spci_svc.h
+++ b/include/services/spci_svc.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Arm Limited. All rights reserved.
+ * Copyright (c) 2018-2019, Arm Limited. All rights reserved.
  *
  * SPDX-License-Identifier: BSD-3-Clause
  */
@@ -34,7 +34,10 @@
 #define SPCI_FID_TUN_SHIFT		U(24)
 #define SPCI_FID_TUN_MASK		U(0x7)
 
-#define SPCI_SMC(spci_fid)	((FUNCID_NAMESPACE_SPCI << FUNCID_NAMESPACE_SHIFT) | \
+#define OEN_SPCI_START			U(0x30)
+#define OEN_SPCI_END			U(0x3F)
+
+#define SPCI_SMC(spci_fid)	((OEN_SPCI_START << FUNCID_OEN_SHIFT) | \
 				 (U(1) << 31) | (spci_fid))
 #define SPCI_MISC_32(misc_fid)	((SMC_32 << FUNCID_CC_SHIFT) |	\
 				 SPCI_FID_MISC_FLAG |		\
diff --git a/include/services/sprt_svc.h b/include/services/sprt_svc.h
index bd695e5..2421ea2 100644
--- a/include/services/sprt_svc.h
+++ b/include/services/sprt_svc.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Arm Limited. All rights reserved.
+ * Copyright (c) 2018-2019, Arm Limited. All rights reserved.
  *
  * SPDX-License-Identifier: BSD-3-Clause
  */
@@ -37,10 +37,13 @@
 
 /* Definitions to build the complete SMC ID */
 
-#define SPRT_SMC_64(sprt_fid)	((FUNCID_NAMESPACE_SPRT << FUNCID_NAMESPACE_SHIFT) | \
+#define OEN_SPRT_START			U(0x20)
+#define OEN_SPRT_END			U(0x2F)
+
+#define SPRT_SMC_64(sprt_fid)	((OEN_SPRT_START << FUNCID_OEN_SHIFT) | \
 				 (U(1) << 31) | ((sprt_fid) & SPRT_FID_MASK) | \
 				 (SMC_64 << FUNCID_CC_SHIFT))
-#define SPRT_SMC_32(sprt_fid)	((FUNCID_NAMESPACE_SPRT << FUNCID_NAMESPACE_SHIFT) | \
+#define SPRT_SMC_32(sprt_fid)	((OEN_SPRT_START << FUNCID_OEN_SHIFT) | \
 				 (U(1) << 31) | ((sprt_fid) & SPRT_FID_MASK) | \
 				 (SMC_32 << FUNCID_CC_SHIFT))
 
diff --git a/make_helpers/defaults.mk b/make_helpers/defaults.mk
index 8ef1bb9..c1aa320 100644
--- a/make_helpers/defaults.mk
+++ b/make_helpers/defaults.mk
@@ -153,9 +153,6 @@
 # cores stack
 RECLAIM_INIT_CODE		:= 0
 
-# Default to SMCCC Version 1.X
-SMCCC_MAJOR_VERSION		:= 1
-
 # SPD choice
 SPD				:= none
 
diff --git a/services/std_svc/spm/spci.c b/services/std_svc/spm/spci.c
index 44a0acd..1ee986a 100644
--- a/services/std_svc/spm/spci.c
+++ b/services/std_svc/spm/spci.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Arm Limited. All rights reserved.
+ * Copyright (c) 2018-2019, Arm Limited. All rights reserved.
  *
  * SPDX-License-Identifier: BSD-3-Clause
  */
@@ -9,6 +9,7 @@
 #include <string.h>
 
 #include <common/debug.h>
+#include <common/runtime_svc.h>
 #include <lib/el3_runtime/context_mgmt.h>
 #include <lib/smccc.h>
 #include <lib/spinlock.h>
@@ -679,9 +680,10 @@
 /*******************************************************************************
  * This function handles all SMCs in the range reserved for SPCI.
  ******************************************************************************/
-uint64_t spci_smc_handler(uint32_t smc_fid, uint64_t x1, uint64_t x2,
-			  uint64_t x3, uint64_t x4, void *cookie, void *handle,
-			  uint64_t flags)
+static uintptr_t spci_smc_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)
 {
 	uint32_t spci_fid;
 
@@ -773,3 +775,12 @@
 	WARN("SPCI: Unsupported call 0x%08x\n", smc_fid);
 	SMC_RET1(handle, SPCI_NOT_SUPPORTED);
 }
+
+DECLARE_RT_SVC(
+	spci_handler,
+	OEN_SPCI_START,
+	OEN_SPCI_END,
+	SMC_TYPE_FAST,
+	NULL,
+	spci_smc_handler
+);
diff --git a/services/std_svc/spm/spm.mk b/services/std_svc/spm/spm.mk
index 4ba9feb..448aba4 100644
--- a/services/std_svc/spm/spm.mk
+++ b/services/std_svc/spm/spm.mk
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2017-2018, ARM Limited and Contributors. All rights reserved.
+# Copyright (c) 2017-2019, ARM Limited and Contributors. All rights reserved.
 #
 # SPDX-License-Identifier: BSD-3-Clause
 #
@@ -26,8 +26,5 @@
 
 INCLUDES	+=	${SPRT_LIB_INCLUDES}
 
-# Force SMC Calling Convention 2 when using SPM
-SMCCC_MAJOR_VERSION	:=	2
-
 # Let the top-level Makefile know that we intend to include a BL32 image
 NEED_BL32		:=	yes
diff --git a/services/std_svc/spm/sprt.c b/services/std_svc/spm/sprt.c
index f6af49f..8aa2a88 100644
--- a/services/std_svc/spm/sprt.c
+++ b/services/std_svc/spm/sprt.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Arm Limited. All rights reserved.
+ * Copyright (c) 2018-2019, Arm Limited. All rights reserved.
  *
  * SPDX-License-Identifier: BSD-3-Clause
  */
@@ -10,6 +10,7 @@
 
 #include <arch_helpers.h>
 #include <common/debug.h>
+#include <common/runtime_svc.h>
 #include <lib/el3_runtime/context_mgmt.h>
 #include <lib/smccc.h>
 #include <lib/utils.h>
@@ -154,9 +155,10 @@
 /*******************************************************************************
  * This function handles all SMCs in the range reserved for SPRT.
  ******************************************************************************/
-uint64_t sprt_smc_handler(uint32_t smc_fid, uint64_t x1, uint64_t x2,
-			  uint64_t x3, uint64_t x4, void *cookie, void *handle,
-			  uint64_t flags)
+static uintptr_t sprt_smc_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)
 {
 	/* SPRT only supported from the Secure world */
 	if (is_caller_non_secure(flags) == SMC_FROM_NON_SECURE) {
@@ -214,3 +216,12 @@
 	WARN("SPRT: Unsupported call 0x%08x\n", smc_fid);
 	SMC_RET1(handle, SPRT_NOT_SUPPORTED);
 }
+
+DECLARE_RT_SVC(
+	sprt_handler,
+	OEN_SPRT_START,
+	OEN_SPRT_END,
+	SMC_TYPE_FAST,
+	NULL,
+	sprt_smc_handler
+);
