Add GPT based partition configurator

Adds the capability to configure a partitioned_block_store from
a GUID partition table read from the backend storage device. The
block_storage standalone service context (used in PC based testing)
has been modified to use GPT based configuration using the
reference disk image that defines a set of partitions expected by
test cases.

Signed-off-by: Julian Hall <julian.hall@arm.com>
Change-Id: Idcb677c348468bcd5e435aa3ef72750ca8ccbf38
diff --git a/deployments/component-test/component-test.cmake b/deployments/component-test/component-test.cmake
index 7b888af..f8ffe9f 100644
--- a/deployments/component-test/component-test.cmake
+++ b/deployments/component-test/component-test.cmake
@@ -102,7 +102,9 @@
 		"components/service/block_storage/provider"
 		"components/service/block_storage/provider/serializer/packed-c"
 		"components/service/block_storage/config/ref"
+		"components/service/block_storage/config/gpt"
 		"components/service/block_storage/factory/ref_ram"
+		"components/service/block_storage/factory/ref_ram_gpt"
 		"components/service/block_storage/factory/client"
 		"components/service/crypto/client/cpp"
 		"components/service/crypto/client/cpp/protocol/protobuf"
diff --git a/deployments/libts/linux-pc/CMakeLists.txt b/deployments/libts/linux-pc/CMakeLists.txt
index 54ec44e..ecc72ef 100644
--- a/deployments/libts/linux-pc/CMakeLists.txt
+++ b/deployments/libts/linux-pc/CMakeLists.txt
@@ -22,6 +22,13 @@
 target_include_directories(ts PRIVATE "${TOP_LEVEL_INCLUDE_DIRS}")
 
 #-------------------------------------------------------------------------------
+#  External project source-level dependencies
+#
+#-------------------------------------------------------------------------------
+include(${TS_ROOT}/external/tf_a/tf-a.cmake)
+add_tfa_dependency(TARGET "ts")
+
+#-------------------------------------------------------------------------------
 #  Components that are specific to deployment in the linux-pc environment.
 #
 #-------------------------------------------------------------------------------
@@ -35,6 +42,7 @@
 		"components/common/endian"
 		"components/common/utils"
 		"components/common/trace"
+		"components/common/crc32/native"
 		"components/config/ramstore"
 		"components/service/common/include"
 		"components/service/common/client"
@@ -70,8 +78,9 @@
 		"components/service/block_storage/block_store/client"
 		"components/service/block_storage/provider"
 		"components/service/block_storage/provider/serializer/packed-c"
+		"components/service/block_storage/config/gpt"
 		"components/service/block_storage/config/ref"
-		"components/service/block_storage/factory/ref_ram"
+		"components/service/block_storage/factory/ref_ram_gpt"
 		"components/service/block_storage/factory/client"
 		"components/service/crypto/provider"
 		"components/service/crypto/provider/serializer/protobuf"
@@ -105,6 +114,12 @@
 		"components/service/test_runner/provider/backend/simple_c"
 		"components/service/smm_variable/backend"
 		"components/service/smm_variable/provider"
+		"components/media/disk"
+		"components/media/disk/disk_images"
+		"components/media/disk/formatter"
+		"components/media/volume/index"
+		"components/media/volume/base_io_dev"
+		"components/media/volume/block_io_dev"
 		"protocols/rpc/common/packed-c"
 		"protocols/service/crypto/packed-c"
 		"protocols/service/crypto/protobuf"