diff --git a/deployments/attestation/opteesp/attestation_sp.c b/deployments/attestation/opteesp/attestation_sp.c
index ce45516..f597e7e 100644
--- a/deployments/attestation/opteesp/attestation_sp.c
+++ b/deployments/attestation/opteesp/attestation_sp.c
@@ -23,7 +23,6 @@
 
 
 /* Temporary dependencies */
-#include <service/attestation/claims/sources/event_log/mock/mock_event_log.h>
 #include <psa/crypto.h>
 
 
@@ -43,9 +42,9 @@
 	/* Claim source objects */
 	struct claim_source *claim_source;
 	struct event_log_claim_source event_log_claim_source;
-    struct boot_seed_generator boot_seed_claim_source;
-    struct null_lifecycle_claim_source lifecycle_claim_source;
-    struct instance_id_claim_source instance_id_claim_source;
+	struct boot_seed_generator boot_seed_claim_source;
+	struct null_lifecycle_claim_source lifecycle_claim_source;
+	struct instance_id_claim_source instance_id_claim_source;
 
 	/*********************************************************
 	 * Boot phase
@@ -57,35 +56,34 @@
 
 	/**
 	 * Register claim sources for deployment
-     */
+	 */
 	claims_register_init();
 
-    /* Boot measurement claim source - uses mock event log */
-    claim_source = event_log_claim_source_init(&event_log_claim_source,
-        mock_event_log_start(), mock_event_log_size());
-    claims_register_add_claim_source(CLAIM_CATEGORY_BOOT_MEASUREMENT, claim_source);
+	/* Boot measurement claim source */
+	claim_source = event_log_claim_source_init_from_config(&event_log_claim_source);
+	claims_register_add_claim_source(CLAIM_CATEGORY_BOOT_MEASUREMENT, claim_source);
 
-    /* Boot seed claim source */
-    claim_source = boot_seed_generator_init(&boot_seed_claim_source);
-    claims_register_add_claim_source(CLAIM_CATEGORY_DEVICE, claim_source);
+	/* Boot seed claim source */
+	claim_source = boot_seed_generator_init(&boot_seed_claim_source);
+	claims_register_add_claim_source(CLAIM_CATEGORY_DEVICE, claim_source);
 
-    /* Lifecycle state claim source */
-    claim_source = null_lifecycle_claim_source_init(&lifecycle_claim_source);
-    claims_register_add_claim_source(CLAIM_CATEGORY_DEVICE, claim_source);
+	/* Lifecycle state claim source */
+	claim_source = null_lifecycle_claim_source_init(&lifecycle_claim_source);
+	claims_register_add_claim_source(CLAIM_CATEGORY_DEVICE, claim_source);
 
-    /* Instance ID claim source */
-    claim_source = instance_id_claim_source_init(&instance_id_claim_source);
-    claims_register_add_claim_source(CLAIM_CATEGORY_DEVICE, claim_source);
+	/* Instance ID claim source */
+	claim_source = instance_id_claim_source_init(&instance_id_claim_source);
+	claims_register_add_claim_source(CLAIM_CATEGORY_DEVICE, claim_source);
 
 	/**
 	 * Initialize the service provider
-     */
+	 */
  	psa_crypto_init(); /* temporary */
 
-    attest_iface = attest_provider_init(&attest_provider, ATTEST_KEY_MNGR_VOLATILE_IAK);
+	attest_iface = attest_provider_init(&attest_provider, ATTEST_KEY_MNGR_VOLATILE_IAK);
 
-    attest_provider_register_serializer(&attest_provider,
-        TS_RPC_ENCODING_PACKED_C, packedc_attest_provider_serializer_instance());
+	attest_provider_register_serializer(&attest_provider,
+		TS_RPC_ENCODING_PACKED_C, packedc_attest_provider_serializer_instance());
 
 	ffa_call_ep_init(&ffarpc_call_ep, attest_iface);
 
diff --git a/deployments/attestation/opteesp/default_attestation.dts.in b/deployments/attestation/opteesp/default_attestation.dts.in
index a184164..1a74397 100644
--- a/deployments/attestation/opteesp/default_attestation.dts.in
+++ b/deployments/attestation/opteesp/default_attestation.dts.in
@@ -16,4 +16,13 @@
 	execution-state = <0>; /* AArch64 */
 	xlat-granule = <0>; /* 4KiB */
 	messaging-method = <0>; /* Direct messaging only */
+
+	boot-params {
+		compatible = "arm,ffa-manifest-boot-params";
+
+		event-log {
+			param = "EVENT_LOG";		/* The init parameter name */
+			tag = "arm,event-log";		/* Object identifier */
+		};
+	};
 };
diff --git a/deployments/crypto/opteesp/default_crypto.dts.in b/deployments/crypto/opteesp/default_crypto.dts.in
index 92b709b..2646239 100644
--- a/deployments/crypto/opteesp/default_crypto.dts.in
+++ b/deployments/crypto/opteesp/default_crypto.dts.in
@@ -16,4 +16,15 @@
 	execution-state = <0>; /* AArch64 */
 	xlat-granule = <0>; /* 4KiB */
 	messaging-method = <0>; /* Direct messaging only */
+
+	device-regions {
+		compatible = "arm,ffa-manifest-device-regions";
+
+		trng {
+			/* Armv8 A Foundation Platform values */
+			base-address = <0x00000000 0x7fe60000>;
+			pages-count = <1>;
+			attributes = <0x3>; /* read-write */
+		};
+	};
 };
diff --git a/deployments/env-test/env_test.cmake b/deployments/env-test/env_test.cmake
index 12089a1..9c0926b 100644
--- a/deployments/env-test/env_test.cmake
+++ b/deployments/env-test/env_test.cmake
@@ -16,7 +16,7 @@
 #
 #-------------------------------------------------------------------------------
 add_components(
-	TARGET "env_test"
+	TARGET "env-test"
 	BASE_DIR ${TS_ROOT}
 	COMPONENTS
 	"components/common/tlv"
@@ -45,4 +45,4 @@
 
 # Mbed TLS provides libmbedcrypto
 include(${TS_ROOT}/external/MbedTLS/MbedTLS.cmake)
-target_link_libraries(env_test PRIVATE mbedcrypto)
+target_link_libraries(env-test PRIVATE mbedcrypto)
diff --git a/deployments/env-test/opteesp/CMakeLists.txt b/deployments/env-test/opteesp/CMakeLists.txt
index 3149ecd..044fae0 100644
--- a/deployments/env-test/opteesp/CMakeLists.txt
+++ b/deployments/env-test/opteesp/CMakeLists.txt
@@ -16,8 +16,8 @@
 #-------------------------------------------------------------------------------
 include(${TS_ROOT}/environments/opteesp/env.cmake)
 project(trusted-services LANGUAGES C ASM)
-add_executable(env_test)
-target_include_directories(env_test PRIVATE "${TOP_LEVEL_INCLUDE_DIRS}")
+add_executable(env-test)
+target_include_directories(env-test PRIVATE "${TOP_LEVEL_INCLUDE_DIRS}")
 set(SP_UUID "33c75baf-ac6a-4fe4-8ac7-e9909bee2d17")
 
 
@@ -25,14 +25,14 @@
 set(SP_DEV_KIT_INC_DIR ${CMAKE_CURRENT_LIST_DIR})
 list(APPEND CMAKE_MODULE_PATH "${TS_ROOT}/external/Spdevkit")
 find_package(Spdevkit REQUIRED)
-sp_dev_kit_configure_linking(TARGET env_test DEFINES ARM64=1)
-target_link_libraries(env_test PRIVATE ${SP_DEV_KIT_LIBRARIES})
+sp_dev_kit_configure_linking(TARGET env-test DEFINES ARM64=1)
+target_link_libraries(env-test PRIVATE ${SP_DEV_KIT_LIBRARIES})
 
 #-------------------------------------------------------------------------------
-#  Components that are env_testecific to deployment in the opteesp
+#  Components that are env-test specific to deployment in the opteesp
 #  environment.
 #-------------------------------------------------------------------------------
-add_components(TARGET "env_test"
+add_components(TARGET "env-test"
 	BASE_DIR ${TS_ROOT}
 	COMPONENTS
 		"components/config/loader/sp"
@@ -44,7 +44,7 @@
 
 #-------------------------------------------------------------------------------
 #  Extend with components that are common across all deployments of
-#  env_test
+#  env-test
 #
 #-------------------------------------------------------------------------------
 include(../env_test.cmake REQUIRED)
@@ -52,7 +52,7 @@
 #-------------------------------------------------------------------------------
 #  Deployment specific source files
 #-------------------------------------------------------------------------------
-target_sources(env_test PRIVATE
+target_sources(env-test PRIVATE
 	env_test.c
 	env_test_tests.c
 )
@@ -64,26 +64,26 @@
 # temporarily force platform - remove when external builder updated
 set(TS_PLATFORM "arm/fvp/fvp_base_revc-2xaemv8a" CACHE STRING "Overridden" FORCE)
 
-add_platform(TARGET "env_test")
+add_platform(TARGET "env-test")
 
 if(CMAKE_CROSSCOMPILING)
-	target_link_libraries(env_test PRIVATE stdc++ gcc m)
+	target_link_libraries(env-test PRIVATE stdc++ gcc m)
 endif()
 
 #################################################################
 
-target_compile_definitions(env_test PRIVATE
+target_compile_definitions(env-test PRIVATE
 	ARM64=1
 )
 
-target_include_directories(env_test PRIVATE
+target_include_directories(env-test PRIVATE
 	${TS_ROOT}
 	${TS_ROOT}/components
 	${TS_ROOT}/deployments/env-test/opteesp
 )
 
 if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
-	target_compile_options(env_test PRIVATE
+	target_compile_options(env-test PRIVATE
 		-fdiagnostics-show-option
 		-fpic
 		-gdwarf-2
@@ -94,7 +94,7 @@
 	)
 
 	# Options for GCC that control linking
-	target_link_options(env_test PRIVATE
+	target_link_options(env-test PRIVATE
 		-e __sp_entry
 		-fno-lto
 		-nostdlib
@@ -102,25 +102,30 @@
 		-zmax-page-size=4096
 	)
 	# Options directly for LD, these are not understood by GCC
-	target_link_options(env_test PRIVATE
+	target_link_options(env-test PRIVATE
 		-Wl,--as-needed
 		-Wl,--sort-section=alignment
 		# -Wl,--dynamic-list ${CMAKE_CURRENT_LIST_DIR}/dyn_list
 	)
 endif()
 
-compiler_generate_stripped_elf(TARGET env_test NAME "${SP_UUID}.stripped.elf" RES STRIPPED_ELF)
+compiler_generate_stripped_elf(TARGET env-test NAME "${SP_UUID}.stripped.elf" RES STRIPPED_ELF)
 
 ######################################## install
 if (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
 	set(CMAKE_INSTALL_PREFIX ${CMAKE_BINARY_DIR}/install CACHE PATH "location to install build output to." FORCE)
 endif()
 #TODO: api headers
-install(TARGETS env_test
-			PUBLIC_HEADER DESTINATION include
-			RUNTIME DESTINATION bin
+
+install(TARGETS env-test
+			PUBLIC_HEADER DESTINATION ${TS_ENV}/include
+			RUNTIME DESTINATION ${TS_ENV}/bin
 		)
-install(FILES ${STRIPPED_ELF} DESTINATION bin)
+install(FILES ${STRIPPED_ELF} DESTINATION ${TS_ENV}/bin)
+
+get_property(_PROTO_FILES TARGET env-test PROPERTY PROTOBUF_FILES)
+install(FILES ${_PROTO_FILES} DESTINATION ${TS_ENV}/lib/protobuf)
+
 
 set(EXPORT_SP_NAME "env-test")
 set(EXPORT_SP_UUID ${SP_UUID})
diff --git a/deployments/env-test/opteesp/default_env-test.dts.in b/deployments/env-test/opteesp/default_env-test.dts.in
new file mode 100644
index 0000000..f64a5fa
--- /dev/null
+++ b/deployments/env-test/opteesp/default_env-test.dts.in
@@ -0,0 +1,50 @@
+/*
+ * Copyright (c) 2021, Arm Limited and Contributors. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+@DTS_TAG@
+
+@DTS_NODE@ {
+	compatible = "arm,ffa-manifest-1.0";
+	ffa-version = <0x00010000>; /* 31:16 - Major, 15:0 - Minor */
+	uuid = <@EXPORT_SP_UUID_DT@>;
+	description = "EnvTest";
+	execution-ctx-count = <1>;
+	exception-level = <1>; /* S-EL0 */
+	execution-state = <0>; /* AArch64 */
+	xlat-granule = <0>; /* 4KiB */
+	messaging-method = <0>; /* Direct messaging only */
+
+	memory-regions {
+		compatible = "arm,ffa-manifest-memory-regions";
+
+		/* Without optional base-address */
+		test-memory {
+			description = "test-memory";
+			pages-count = <4>;
+			attributes = <0x7>; /* read-write-execute */
+		};
+	};
+
+	device-regions {
+		compatible = "arm,ffa-manifest-device-regions";
+
+		trng {
+			/* Armv8 A Foundation Platform values */
+			base-address = <0x00000000 0x7fe60000>;
+			pages-count = <1>;
+			attributes = <0x3>; /* read-write */
+		};
+	};
+
+	boot-params {
+		compatible = "arm,ffa-manifest-boot-params";
+
+		event-log {
+			param = "EVENT_LOG";		/* The init parameter name */
+			tag = "arm,event-log";		/* Object identifier */
+		};
+	};
+};
diff --git a/deployments/env-test/opteesp/env_test.c b/deployments/env-test/opteesp/env_test.c
index 3df4c1a..ff2f8df 100644
--- a/deployments/env-test/opteesp/env_test.c
+++ b/deployments/env-test/opteesp/env_test.c
@@ -31,8 +31,6 @@
 	struct ffa_direct_msg req_msg;
 
 	/* Boot */
-	(void) init_info;
-
 	if (sp_init(&own_id) != 0) goto fatal_error;
 
 	config_ramstore_init();
@@ -42,7 +40,7 @@
 	test_runner_iface = test_runner_provider_init(&test_runner_provider);
 
 	test_runner_provider_register_serializer(&test_runner_provider,
-            TS_RPC_ENCODING_PACKED_C, packedc_test_runner_provider_serializer_instance());
+			TS_RPC_ENCODING_PACKED_C, packedc_test_runner_provider_serializer_instance());
 
 	env_test_register_tests(&test_runner_provider);
 
diff --git a/deployments/libts/linux-pc/CMakeLists.txt b/deployments/libts/linux-pc/CMakeLists.txt
index 842f702..779e2d6 100644
--- a/deployments/libts/linux-pc/CMakeLists.txt
+++ b/deployments/libts/linux-pc/CMakeLists.txt
@@ -32,6 +32,7 @@
 		"components/rpc/direct"
 		"components/common/tlv"
 		"components/common/endian"
+		"components/config/ramstore"
 		"components/service/common/include"
 		"components/service/common/serializer/protobuf"
 		"components/service/common/provider"
