diff --git a/Makefile b/Makefile
index e699def..bd179b9 100644
--- a/Makefile
+++ b/Makefile
@@ -117,6 +117,7 @@
 include spm/cactus_mm/cactus_mm.mk
 include spm/cactus/cactus.mk
 include spm/ivy/ivy.mk
+include spm/quark/quark.mk
 
 ################################################################################
 # Include libc
@@ -256,6 +257,12 @@
 IVY_ASFLAGS		+= ${COMMON_ASFLAGS}
 IVY_LDFLAGS		+= ${COMMON_LDFLAGS}
 
+QUARK_SOURCES		+= ${LIBC_SRCS}
+QUARK_INCLUDES		+= ${PLAT_INCLUDES}
+QUARK_CFLAGS		+= ${COMMON_CFLAGS}
+QUARK_ASFLAGS		+= ${COMMON_ASFLAGS}
+QUARK_LDFLAGS		+= ${COMMON_LDFLAGS}
+
 .PHONY: locate-checkpatch
 locate-checkpatch:
 ifndef CHECKPATCH
@@ -332,6 +339,11 @@
 ivy:
 	@echo "ERROR: $@ is supported only on AArch64 FVP."
 	@exit 1
+
+.PHONY: quark
+quark:
+	@echo "ERROR: $@ is supported only on AArch64 FVP."
+	@exit 1
 endif
 
 MAKE_DEP = -Wp,-MD,$(DEP) -MT $$@
@@ -460,6 +472,7 @@
   $(eval $(call MAKE_IMG,cactus_mm))
   $(eval $(call MAKE_IMG,cactus))
   $(eval $(call MAKE_IMG,ivy))
+  $(eval $(call MAKE_IMG,quark))
 endif
 
 # The EL3 test payload is only supported in AArch64. It has an independent build
@@ -481,7 +494,7 @@
 
 .PHONY: help
 help:
-	@echo "usage: ${MAKE} PLAT=<${PLATFORMS}> <all|tftf|ns_bl1u|ns_bl2u|cactus|ivy|el3_payload|distclean|clean|checkcodebase|checkpatch>"
+	@echo "usage: ${MAKE} PLAT=<${PLATFORMS}> <all|tftf|ns_bl1u|ns_bl2u|cactus|ivy|quark|el3_payload|distclean|clean|checkcodebase|checkpatch>"
 	@echo ""
 	@echo "PLAT is used to specify which platform you wish to build."
 	@echo "If no platform is specified, PLAT defaults to: ${DEFAULT_PLAT}"
@@ -495,6 +508,7 @@
 	@echo "  cactus         Build the Cactus image (Test S-EL0 payload) and resource description."
 	@echo "  cactus_mm      Build the Cactus-MM image (Test S-EL0 payload)."
 	@echo "  ivy            Build the Ivy image (Test S-EL0 payload) and resource description."
+	@echo "  quark          Build the Quark image (Test S-EL0 payload) and resource description."
 	@echo "  el3_payload    Build the EL3 test payload"
 	@echo "  checkcodebase  Check the coding style of the entire source tree"
 	@echo "  checkpatch     Check the coding style on changes in the current"
diff --git a/docs/user-guide.rst b/docs/user-guide.rst
index 4c03ea2..ef12c90 100644
--- a/docs/user-guide.rst
+++ b/docs/user-guide.rst
@@ -103,6 +103,7 @@
       -  ``build/<platform>/<build-type>/cactus_mm.bin``
       -  ``build/<platform>/<build-type>/cactus.bin``
       -  ``build/<platform>/<build-type>/ivy.bin``
+      -  ``build/<platform>/<build-type>/quark.bin``
 
       where ``<platform>`` is the name of the chosen platform and ``<build-type>``
       is either ``debug`` or ``release``. The actual number of images might differ
diff --git a/spm/quark/aarch64/quark_entrypoint.S b/spm/quark/aarch64/quark_entrypoint.S
new file mode 100644
index 0000000..9cbed97
--- /dev/null
+++ b/spm/quark/aarch64/quark_entrypoint.S
@@ -0,0 +1,27 @@
+/*
+ * Copyright (c) 2018-2019, Arm Limited. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#include <asm_macros.S>
+#include <quark_def.h>
+#include <platform_def.h>
+
+	.globl	quark_entrypoint
+
+.section .bss.stacks
+	.balign CACHE_WRITEBACK_GRANULE
+	.fill	QUARK_STACKS_SIZE
+stacks_end:
+
+func quark_entrypoint
+
+	/* Setup the stack pointer. */
+	adr	x0, stacks_end
+	mov	sp, x0
+
+	/* And jump to the C entrypoint. */
+	b	quark_main
+
+endfunc quark_entrypoint
diff --git a/spm/quark/quark.dts b/spm/quark/quark.dts
new file mode 100644
index 0000000..a8fb4a7
--- /dev/null
+++ b/spm/quark/quark.dts
@@ -0,0 +1,62 @@
+/*
+ * Copyright (c) 2018-2019, Arm Limited. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#include <sp_res_desc_def.h>
+
+#include "quark_def.h"
+
+/* 4 KiB pages */
+#define PAGE_SIZE			U(0x1000)
+
+/dts-v1/;
+
+/ {
+	compatible = "arm,sp_rd";
+
+	attribute {
+		version = <0x00000001>;
+		sp_type = <RD_ATTR_TYPE_UP_MIGRATABLE>;
+		pe_mpidr = <0>; /* Unused */
+		runtime_el = <RD_ATTR_RUNTIME_SEL0>;
+		exec_type = <RD_ATTR_RUNTIME>;
+		panic_policy = <RD_ATTR_PANIC_ONESHOT>;
+		xlat_granule = <RD_ATTR_XLAT_GRANULE_4KB>;
+		binary_size = <QUARK_IMAGE_SIZE>;
+		load_address = <0x00000000 QUARK_IMAGE_BASE>;
+		entrypoint = <0x00000000 QUARK_IMAGE_BASE>;
+	};
+
+	memory_regions {
+		spm_buffer {
+			str = "SPM buffer";
+			base = <0x00000000 QUARK_SPM_BUF_BASE>;
+			size = <0x00000000 QUARK_SPM_BUF_SIZE>;
+			attr = <RD_MEM_NORMAL_SPM_SP_SHARED_MEM>;
+		};
+	};
+
+	notifications {
+		notification_0 {
+			attr = <0>;
+			pe = <0>;
+		};
+	};
+
+	services {
+		test_service_1 {
+			uuid = <QUARK_SERVICE1_UUID_RD>;
+
+			accessibility = <(RD_SERV_ACCESS_SECURE |
+					  RD_SERV_ACCESS_EL3 |
+					  RD_SERV_ACCESS_NORMAL)>;
+			request_type = <(RD_SERV_SUPPORT_BLOCKING |
+					 RD_SERV_SUPPORT_NON_BLOCKING)>;
+			connection_quota = <10>;
+			sec_mem_size = <0>;
+			interrupt_num = <0>;
+		};
+	};
+};
diff --git a/spm/quark/quark.h b/spm/quark/quark.h
new file mode 100644
index 0000000..2b4fd39
--- /dev/null
+++ b/spm/quark/quark.h
@@ -0,0 +1,29 @@
+/*
+ * Copyright (c) 2018-2019, Arm Limited. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#ifndef QUARK_H
+#define QUARK_H
+
+#include <stdint.h>
+
+/* Linker symbols used to figure out the memory layout of Quark. */
+extern uintptr_t __TEXT_START__, __TEXT_END__;
+#define QUARK_TEXT_START	((uintptr_t)&__TEXT_START__)
+#define QUARK_TEXT_END		((uintptr_t)&__TEXT_END__)
+
+extern uintptr_t __RODATA_START__, __RODATA_END__;
+#define QUARK_RODATA_START	((uintptr_t)&__RODATA_START__)
+#define QUARK_RODATA_END	((uintptr_t)&__RODATA_END__)
+
+extern uintptr_t __DATA_START__, __DATA_END__;
+#define QUARK_DATA_START	((uintptr_t)&__DATA_START__)
+#define QUARK_DATA_END		((uintptr_t)&__DATA_END__)
+
+extern uintptr_t __BSS_START__, __BSS_END__;
+#define QUARK_BSS_START	((uintptr_t)&__BSS_START__)
+#define QUARK_BSS_END		((uintptr_t)&__BSS_END__)
+
+#endif /* QUARK_H */
diff --git a/spm/quark/quark.ld.S b/spm/quark/quark.ld.S
new file mode 100644
index 0000000..8f51edb
--- /dev/null
+++ b/spm/quark/quark.ld.S
@@ -0,0 +1,55 @@
+/*
+ * Copyright (c) 2018-2019, Arm Limited. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#include <quark_def.h>
+#include <platform_def.h>
+#include <xlat_tables_defs.h>
+
+OUTPUT_FORMAT(PLATFORM_LINKER_FORMAT)
+OUTPUT_ARCH(PLATFORM_LINKER_ARCH)
+ENTRY(quark_entrypoint)
+
+SECTIONS
+{
+    . = QUARK_IMAGE_BASE;
+
+    ASSERT(. == ALIGN(PAGE_SIZE),
+           "TEXT_START address is not aligned to PAGE_SIZE.")
+
+    .text : {
+        __TEXT_START__ = .;
+        *quark_entrypoint.o(.text*)
+        *(.text*)
+        *(.vectors)
+        . = NEXT(PAGE_SIZE);
+        __TEXT_END__ = .;
+    }
+
+    .rodata : {
+        . = ALIGN(PAGE_SIZE);
+        __RODATA_START__ = .;
+        *(.rodata*)
+        . = NEXT(PAGE_SIZE);
+        __RODATA_END__ = .;
+    }
+
+    .data : {
+        . = ALIGN(PAGE_SIZE);
+        __DATA_START__ = .;
+        *(.data*)
+        . = NEXT(PAGE_SIZE);
+        __DATA_END__ = .;
+    }
+
+    .bss (NOLOAD) : {
+        . = ALIGN(PAGE_SIZE);
+        __BSS_START__ = .;
+        *(SORT_BY_ALIGNMENT(.bss*))
+        *(COMMON)
+        . = NEXT(PAGE_SIZE);
+        __BSS_END__ = .;
+    }
+}
diff --git a/spm/quark/quark.mk b/spm/quark/quark.mk
new file mode 100644
index 0000000..554d334
--- /dev/null
+++ b/spm/quark/quark.mk
@@ -0,0 +1,64 @@
+#
+# Copyright (c) 2018-2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+include lib/sprt/sprt_client.mk
+
+QUARK_DTB		:= $(BUILD_PLAT)/quark.dtb
+
+QUARK_INCLUDES :=					\
+	-Iinclude					\
+	-Iinclude/common				\
+	-Iinclude/common/${ARCH}			\
+	-Iinclude/lib					\
+	-Iinclude/lib/${ARCH}				\
+	-Iinclude/lib/sprt				\
+	-Iinclude/lib/utils				\
+	-Iinclude/lib/xlat_tables			\
+	-Iinclude/runtime_services			\
+	-Iinclude/runtime_services/secure_el0_payloads	\
+	-Ispm/quark					\
+	-Ispm/common					\
+	${SPRT_LIB_INCLUDES}
+
+QUARK_SOURCES	:=					\
+	$(addprefix spm/quark/,				\
+		aarch64/quark_entrypoint.S		\
+		quark_main.c				\
+	)						\
+	$(addprefix spm/common/,			\
+		aarch64/sp_arch_helpers.S		\
+		sp_helpers.c				\
+	)						\
+
+# TODO: Remove dependency on TFTF files.
+QUARK_SOURCES	+=					\
+	tftf/framework/debug.c				\
+	tftf/framework/${ARCH}/asm_debug.S
+
+QUARK_SOURCES	+= 	drivers/console/${ARCH}/dummy_console.S		\
+			lib/locks/${ARCH}/spinlock.S			\
+			lib/utils/mp_printf.c				\
+			${SPRT_LIB_SOURCES}
+
+QUARK_LINKERFILE	:=	spm/quark/quark.ld.S
+
+QUARK_DEFINES	:=
+
+$(eval $(call add_define,QUARK_DEFINES,DEBUG))
+$(eval $(call add_define,QUARK_DEFINES,ENABLE_ASSERTIONS))
+$(eval $(call add_define,QUARK_DEFINES,PLAT_${PLAT}))
+$(eval $(call add_define,QUARK_DEFINES,AARCH64))
+
+$(QUARK_DTB) : $(BUILD_PLAT)/quark $(BUILD_PLAT)/quark/quark.elf
+$(QUARK_DTB) : spm/quark/quark.dts
+	@echo "  DTBGEN  spm/quark/quark.dts"
+	${Q}tools/generate_dtb/generate_dtb.sh \
+		quark spm/quark/quark.dts $(BUILD_PLAT)
+	@echo
+	@echo "Built $@ successfully"
+	@echo
+
+quark: $(QUARK_DTB) $(AUTOGEN_DIR)/tests_list.h
diff --git a/spm/quark/quark_def.h b/spm/quark/quark_def.h
new file mode 100644
index 0000000..7a0ec15
--- /dev/null
+++ b/spm/quark/quark_def.h
@@ -0,0 +1,45 @@
+/*
+ * Copyright (c) 2018-2019, Arm Limited. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#ifndef QUARK_DEF_H
+#define QUARK_DEF_H
+
+#include <utils_def.h>
+
+/*
+ * Layout of the Secure Partition image.
+ */
+
+/* The base address is 0 to reduce the address space size */
+#define QUARK_IMAGE_BASE		ULL(0x00000000)
+#define QUARK_IMAGE_SIZE		ULL(0x10000)
+
+/* Memory reserved for stacks */
+#define QUARK_STACKS_SIZE		ULL(0x1000)
+
+/* Memory shared between EL3 and S-EL0 (64 KiB). */
+#define QUARK_SPM_BUF_BASE		(QUARK_IMAGE_BASE + QUARK_IMAGE_SIZE)
+#define QUARK_SPM_BUF_SIZE		ULL(0x10000)
+
+/*
+ * UUIDs of Secure Services provided by Quark
+ */
+
+/* Mass (MeV/c^2): Up, down, charm, strange */
+#define QUARK_SERVICE1_UUID	U(0x23), U(0x48), U(0x1275), U(0x95)
+
+#define QUARK_SERVICE1_UUID_RD	U(0x23) U(0x48) U(0x1275) U(0x95)
+
+/*
+ * Service IDs
+ */
+/* Return a magic number unique to QUARK */
+#define QUARK_GET_MAGIC		U(2002)
+
+/* Mass (MeV/c^2): Top */
+#define QUARK_MAGIC_NUMBER	U(0x173210)
+
+#endif /* QUARK_DEF_H */
diff --git a/spm/quark/quark_main.c b/spm/quark/quark_main.c
new file mode 100644
index 0000000..145560b
--- /dev/null
+++ b/spm/quark/quark_main.c
@@ -0,0 +1,78 @@
+/*
+ * Copyright (c) 2018-2019, Arm Limited. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#include <assert.h>
+#include <cdefs.h>
+#include <errno.h>
+#include <quark_def.h>
+#include <sprt_client.h>
+#include <sprt_svc.h>
+#include <utils_def.h>
+
+#include "quark.h"
+#include "quark_def.h"
+
+/* NOTE: This partition doesn't have text output capabilities */
+
+static void quark_message_handler(struct sprt_queue_entry_message *message)
+{
+	u_register_t ret0 = 0U, ret1 = 0U, ret2 = 0U, ret3 = 0U;
+
+	if (message->type == SPRT_MSG_TYPE_SERVICE_REQUEST) {
+		switch (message->args[1]) {
+
+		case QUARK_GET_MAGIC:
+			ret1 = QUARK_MAGIC_NUMBER;
+			ret0 = SPRT_SUCCESS;
+			break;
+
+		default:
+			ret0 = SPRT_NOT_SUPPORTED;
+			break;
+		}
+	} else {
+		ret0 = SPRT_NOT_SUPPORTED;
+	}
+
+	sprt_message_end(message, ret0, ret1, ret2, ret3);
+}
+
+void __dead2 quark_main(void)
+{
+	/*
+	 * Handle secure service requests.
+	 */
+	sprt_initialize_queues((void *)QUARK_SPM_BUF_BASE);
+
+	while (1) {
+		struct sprt_queue_entry_message message;
+
+		/*
+		 * Try to fetch a message from the blocking requests queue. If
+		 * it is empty, try to fetch from the non-blocking requests
+		 * queue. Repeat until both of them are empty.
+		 */
+		while (1) {
+			int err = sprt_get_next_message(&message,
+					SPRT_QUEUE_NUM_BLOCKING);
+			if (err == -ENOENT) {
+				err = sprt_get_next_message(&message,
+						SPRT_QUEUE_NUM_NON_BLOCKING);
+				if (err == -ENOENT) {
+					break;
+				} else {
+					assert(err == 0);
+					quark_message_handler(&message);
+				}
+			} else {
+				assert(err == 0);
+				quark_message_handler(&message);
+			}
+		}
+
+		sprt_wait_for_messages();
+	}
+}
diff --git a/tftf/framework/framework.mk b/tftf/framework/framework.mk
index d51a246..00bb84a 100644
--- a/tftf/framework/framework.mk
+++ b/tftf/framework/framework.mk
@@ -25,7 +25,8 @@
 	-Iinclude/runtime_services/secure_el0_payloads	\
 	-Iinclude/runtime_services/secure_el1_payloads	\
 	-Ispm/cactus					\
-	-Ispm/ivy
+	-Ispm/ivy					\
+	-Ispm/quark
 
 FRAMEWORK_SOURCES	:=	${AUTOGEN_DIR}/tests_list.c
 
diff --git a/tools/generate_dtb/generate_dtb.sh b/tools/generate_dtb/generate_dtb.sh
index efcc67e..20a08d0 100755
--- a/tools/generate_dtb/generate_dtb.sh
+++ b/tools/generate_dtb/generate_dtb.sh
@@ -71,6 +71,7 @@
 
 INCLUDES="-I spm/cactus
 	  -I spm/ivy
+	  -I spm/quark
 	  -I spm/include
 	  -I include/lib"
 
