Add fwu standalone service context
To support service level of the fwu service, a standalone service
context is added that presents a service endpoint for fwu. This
is incorprated into the linux-pc deployment of libts. This allows
clients to discover and connect to the fwu service for the purpose
of testing. To allow different firmware configurations to be tested,
fwu components are configured outside of the fwu service context.
Signed-off-by: Julian Hall <julian.hall@arm.com>
Change-Id: I4f3aa89590eab514a509172a96220b431382263d
diff --git a/deployments/component-test/component-test.cmake b/deployments/component-test/component-test.cmake
index b23c778..7f8806c 100644
--- a/deployments/component-test/component-test.cmake
+++ b/deployments/component-test/component-test.cmake
@@ -67,6 +67,7 @@
"components/service/locator/standalone/services/test-runner"
"components/service/locator/standalone/services/attestation"
"components/service/locator/standalone/services/block-storage"
+ "components/service/locator/standalone/services/fwu"
"components/service/locator/standalone/services/smm-variable"
"components/service/discovery/client"
"components/service/discovery/provider"
diff --git a/deployments/libts/linux-pc/CMakeLists.txt b/deployments/libts/linux-pc/CMakeLists.txt
index 44b3b9a..573669f 100644
--- a/deployments/libts/linux-pc/CMakeLists.txt
+++ b/deployments/libts/linux-pc/CMakeLists.txt
@@ -29,6 +29,17 @@
add_tfa_dependency(TARGET "ts")
#-------------------------------------------------------------------------------
+# Define public interfaces for library
+#
+#-------------------------------------------------------------------------------
+
+# Extend libts public interface for linux-pc to allow for alternative fwu
+# device configurations. This is intended for test.
+target_compile_definitions(ts PRIVATE
+ EXPORT_PUBLIC_INTERFACE_FWU_SERVICE_CONTEXT
+)
+
+#-------------------------------------------------------------------------------
# Components that are specific to deployment in the linux-pc environment.
#
#-------------------------------------------------------------------------------
@@ -37,6 +48,7 @@
BASE_DIR ${TS_ROOT}
COMPONENTS
"components/rpc/direct"
+ "components/rpc/common/demux"
"components/common/tlv"
"components/common/uuid"
"components/common/endian"
@@ -57,6 +69,7 @@
"components/service/locator/standalone/services/test-runner"
"components/service/locator/standalone/services/attestation"
"components/service/locator/standalone/services/block-storage"
+ "components/service/locator/standalone/services/fwu"
"components/service/locator/standalone/services/smm-variable"
"components/service/attestation/include"
"components/service/attestation/claims"
diff --git a/deployments/ts-service-test/linux-pc/CMakeLists.txt b/deployments/ts-service-test/linux-pc/CMakeLists.txt
index 99c1db2..00f9480 100644
--- a/deployments/ts-service-test/linux-pc/CMakeLists.txt
+++ b/deployments/ts-service-test/linux-pc/CMakeLists.txt
@@ -71,6 +71,13 @@
target_include_directories(ts-service-test PRIVATE "${TOP_LEVEL_INCLUDE_DIRS}")
#-------------------------------------------------------------------------------
+# External project source-level dependencies
+#
+#-------------------------------------------------------------------------------
+include(${TS_ROOT}/external/tf_a/tf-a.cmake)
+add_tfa_dependency(TARGET "ts-service-test")
+
+#-------------------------------------------------------------------------------
# Components that are specific to deployment in the linux-pc environment.
#
#-------------------------------------------------------------------------------
@@ -78,15 +85,44 @@
TARGET "ts-service-test"
BASE_DIR ${TS_ROOT}
COMPONENTS
+ "components/common/endian"
+ "components/common/uuid"
+ "components/common/crc32/native"
"components/service/test_runner/client/cpp"
"components/service/test_runner/test/service"
"components/service/smm_variable/client/cpp"
"components/service/smm_variable/test/service"
"components/service/block_storage/block_store"
"components/service/block_storage/block_store/client"
+ "components/service/block_storage/block_store/partitioned"
+ "components/service/block_storage/block_store/device"
+ "components/service/block_storage/block_store/device/ram"
"components/service/block_storage/factory/client"
"components/service/block_storage/test/service"
- "components/common/uuid"
+ "components/service/common/provider"
+ "components/service/discovery/provider"
+ "components/service/discovery/provider/serializer/packed-c"
+ "components/service/fwu/agent"
+ "components/service/fwu/fw_store/banked"
+ "components/service/fwu/fw_store/banked/metadata_serializer/v1"
+ "components/service/fwu/installer"
+ "components/service/fwu/installer/raw"
+ "components/service/fwu/installer/copy"
+ "components/service/fwu/inspector/direct"
+ "components/service/fwu/provider"
+ "components/service/fwu/provider/serializer/packed-c"
+ "components/service/fwu/test/fwu_client/direct"
+ "components/service/fwu/test/fwu_dut"
+ "components/service/fwu/test/fwu_dut/sim"
+ "components/service/fwu/test/fwu_dut/proxy"
+ "components/service/fwu/test/fwu_dut_factory/remote_sim"
+ "components/service/fwu/test/image_directory_checker"
+ "components/service/fwu/test/metadata_checker"
+ "components/service/fwu/test/metadata_fetcher/volume"
+ "components/media/volume"
+ "components/media/volume/index"
+ "components/media/volume/base_io_dev"
+ "components/media/volume/block_volume"
)
#-------------------------------------------------------------------------------