Deploy logging SP inside SPs

Make SPs use logging SP. For this the log_client instance
needs to be initialized inside the SPs, using the provided
factory method.

Signed-off-by: Gabor Toth <gabor.toth2@arm.com>
Signed-off-by: Gabor Ambrus <gabor.ambrus@arm.com>
Change-Id: If4d41d15a1488943ceb00d9453b5c38d2bad10c1
diff --git a/deployments/attestation/env/commonsp/attestation_sp.c b/deployments/attestation/env/commonsp/attestation_sp.c
index 0ed3f65..53b8f8e 100644
--- a/deployments/attestation/env/commonsp/attestation_sp.c
+++ b/deployments/attestation/env/commonsp/attestation_sp.c
@@ -20,6 +20,7 @@
 #include "service/attestation/claims/sources/implementation_id/implementation_id_claim_source.h"
 #include "service/attestation/key_mngr/local/local_attest_key_mngr.h"
 #include "service/crypto/client/psa/psa_crypto_client.h"
+#include "service/log/factory/log_factory.h"
 #include "service_locator.h"
 #include "psa/crypto.h"
 #include "sp_api.h"
@@ -190,6 +191,13 @@
 		return false;
 	}
 
+	IMSG("Start discovering logging service");
+	if (log_factory_create()) {
+		IMSG("Logging service discovery successful");
+	} else {
+		EMSG("Logging service discovery failed, falling back to console log");
+	}
+
 	sp_res = sp_discovery_own_id_get(own_id);
 	if (sp_res != SP_RESULT_OK) {
 		EMSG("Failed to query own ID: %d", sp_res);
diff --git a/deployments/attestation/env/commonsp/attestation_sp.cmake b/deployments/attestation/env/commonsp/attestation_sp.cmake
index fcef307..eb7cae9 100644
--- a/deployments/attestation/env/commonsp/attestation_sp.cmake
+++ b/deployments/attestation/env/commonsp/attestation_sp.cmake
@@ -24,6 +24,8 @@
 		"components/rpc/common/endpoint"
 		"components/rpc/ts_rpc/common"
 		"components/rpc/ts_rpc/endpoint/sp"
+		"components/service/log/factory"
+		"components/service/log/client"
 )
 
 target_sources(attestation PRIVATE
diff --git a/deployments/block-storage/block-storage.cmake b/deployments/block-storage/block-storage.cmake
index 22760f5..dea3778 100644
--- a/deployments/block-storage/block-storage.cmake
+++ b/deployments/block-storage/block-storage.cmake
@@ -13,6 +13,8 @@
 		"components/common/tlv"
 		"components/common/uuid"
 		"components/common/endian"
+		"components/rpc/common/caller"
+		"components/service/common/client"
 		"components/service/common/include"
 		"components/service/common/provider"
 		"components/service/block_storage/block_store"
diff --git a/deployments/block-storage/env/commonsp/block_storage_sp.c b/deployments/block-storage/env/commonsp/block_storage_sp.c
index 10ede2d..8b0c1fd 100644
--- a/deployments/block-storage/env/commonsp/block_storage_sp.c
+++ b/deployments/block-storage/env/commonsp/block_storage_sp.c
@@ -11,6 +11,7 @@
 #include "service/block_storage/provider/block_storage_provider.h"
 #include "service/block_storage/provider/serializer/packed-c/packedc_block_storage_serializer.h"
 #include "service/block_storage/factory/block_store_factory.h"
+#include "service/log/factory/log_factory.h"
 #include "sp_api.h"
 #include "sp_discovery.h"
 #include "sp_messaging.h"
@@ -122,6 +123,13 @@
 		return false;
 	}
 
+	IMSG("Start discovering logging service");
+	if (log_factory_create()) {
+		IMSG("Logging service discovery successful");
+	} else {
+		EMSG("Logging service discovery failed, falling back to console log");
+	}
+
 	sp_res = sp_discovery_own_id_get(own_id);
 	if (sp_res != SP_RESULT_OK) {
 		EMSG("Failed to query own ID: %d", sp_res);
diff --git a/deployments/block-storage/env/commonsp/block_storage_sp.cmake b/deployments/block-storage/env/commonsp/block_storage_sp.cmake
index 78da5d7..75aace9 100644
--- a/deployments/block-storage/env/commonsp/block_storage_sp.cmake
+++ b/deployments/block-storage/env/commonsp/block_storage_sp.cmake
@@ -25,6 +25,9 @@
 		"components/rpc/common/endpoint"
 		"components/rpc/ts_rpc/common"
 		"components/rpc/ts_rpc/endpoint/sp"
+		"components/rpc/ts_rpc/caller/sp"
+		"components/service/log/factory"
+		"components/service/log/client"
 )
 
 target_sources(block-storage PRIVATE
diff --git a/deployments/crypto/crypto.cmake b/deployments/crypto/crypto.cmake
index 155099c..098861c 100644
--- a/deployments/crypto/crypto.cmake
+++ b/deployments/crypto/crypto.cmake
@@ -12,6 +12,7 @@
 		"components/rpc/common/interface"
 		"components/rpc/common/endpoint"
 		"components/service/common/include"
+		"components/service/common/client"
 		"components/service/common/serializer/protobuf"
 		"components/service/common/provider"
 		"components/service/crypto/provider"
diff --git a/deployments/crypto/env/commonsp/crypto_sp.c b/deployments/crypto/env/commonsp/crypto_sp.c
index e671954..7c84147 100644
--- a/deployments/crypto/env/commonsp/crypto_sp.c
+++ b/deployments/crypto/env/commonsp/crypto_sp.c
@@ -8,6 +8,7 @@
 #include "service/secure_storage/factory/storage_factory.h"
 #include "service/crypto/factory/crypto_provider_factory.h"
 #include "service/crypto/backend/mbedcrypto/mbedcrypto_backend.h"
+#include "service/log/factory/log_factory.h"
 #include "protocols/rpc/common/packed-c/status.h"
 #include "config/ramstore/config_ramstore.h"
 #include "config/loader/sp/sp_config_loader.h"
@@ -148,6 +149,13 @@
 		return false;
 	}
 
+	IMSG("Start discovering logging service");
+	if (log_factory_create()) {
+		IMSG("Logging service discovery successful");
+	} else {
+		EMSG("Logging service discovery failed, falling back to console log");
+	}
+
 	sp_res = sp_discovery_own_id_get(own_id);
 	if (sp_res != SP_RESULT_OK) {
 		EMSG("Failed to query own ID: %d", sp_res);
diff --git a/deployments/crypto/env/commonsp/crypto_sp.cmake b/deployments/crypto/env/commonsp/crypto_sp.cmake
index 5888b6a..a67087f 100644
--- a/deployments/crypto/env/commonsp/crypto_sp.cmake
+++ b/deployments/crypto/env/commonsp/crypto_sp.cmake
@@ -23,6 +23,8 @@
 		"components/rpc/common/endpoint"
 		"components/rpc/ts_rpc/common"
 		"components/rpc/ts_rpc/endpoint/sp"
+		"components/service/log/factory"
+		"components/service/log/client"
 )
 
 target_sources(crypto PRIVATE
diff --git a/deployments/internal-trusted-storage/env/commonsp/its_sp.c b/deployments/internal-trusted-storage/env/commonsp/its_sp.c
index 03c98ff..7bcae85 100644
--- a/deployments/internal-trusted-storage/env/commonsp/its_sp.c
+++ b/deployments/internal-trusted-storage/env/commonsp/its_sp.c
@@ -9,6 +9,7 @@
 #include "components/service/secure_storage/factory/storage_factory.h"
 #include "components/service/secure_storage/frontend/secure_storage_provider/secure_storage_provider.h"
 #include "components/service/secure_storage/frontend/secure_storage_provider/secure_storage_uuid.h"
+#include "components/service/log/factory/log_factory.h"
 #include "sp_api.h"
 #include "sp_discovery.h"
 #include "sp_messaging.h"
@@ -40,6 +41,13 @@
 		goto fatal_error;
 	}
 
+	IMSG("Start discovering logging service");
+	if (log_factory_create()) {
+		IMSG("Logging service discovery successful");
+	} else {
+		EMSG("Logging service discovery failed, falling back to console log");
+	}
+
 	result = sp_discovery_own_id_get(&own_id);
 	if (result != SP_RESULT_OK) {
 		EMSG("Failed to query own ID: %d", result);
diff --git a/deployments/internal-trusted-storage/env/commonsp/its_sp.cmake b/deployments/internal-trusted-storage/env/commonsp/its_sp.cmake
index a24dac7..600b427 100644
--- a/deployments/internal-trusted-storage/env/commonsp/its_sp.cmake
+++ b/deployments/internal-trusted-storage/env/commonsp/its_sp.cmake
@@ -24,6 +24,9 @@
 		"components/rpc/common/interface"
 		"components/rpc/ts_rpc/common"
 		"components/rpc/ts_rpc/endpoint/sp"
+		"components/rpc/ts_rpc/caller/sp"
+		"components/service/log/factory"
+		"components/service/log/client"
 )
 
 target_sources(internal-trusted-storage PRIVATE
diff --git a/deployments/internal-trusted-storage/internal-trusted-storage.cmake b/deployments/internal-trusted-storage/internal-trusted-storage.cmake
index 3da2a0b..a754a2a 100644
--- a/deployments/internal-trusted-storage/internal-trusted-storage.cmake
+++ b/deployments/internal-trusted-storage/internal-trusted-storage.cmake
@@ -9,8 +9,11 @@
 	BASE_DIR ${TS_ROOT}
 	COMPONENTS
 		components/common/tlv
+		components/common/trace
+		components/rpc/common/caller
 		components/service/common/include
 		components/service/common/provider
+		components/service/common/client
 		components/service/secure_storage/include
 		components/service/secure_storage/frontend/secure_storage_provider
 		protocols/rpc/common/packed-c
diff --git a/deployments/protected-storage/env/commonsp/ps_sp.c b/deployments/protected-storage/env/commonsp/ps_sp.c
index c77d9fd..c43bccb 100644
--- a/deployments/protected-storage/env/commonsp/ps_sp.c
+++ b/deployments/protected-storage/env/commonsp/ps_sp.c
@@ -9,6 +9,7 @@
 #include "components/service/secure_storage/factory/storage_factory.h"
 #include "components/service/secure_storage/frontend/secure_storage_provider/secure_storage_provider.h"
 #include "components/service/secure_storage/frontend/secure_storage_provider/secure_storage_uuid.h"
+#include "components/service/log/factory/log_factory.h"
 #include "sp_api.h"
 #include "sp_discovery.h"
 #include "sp_messaging.h"
@@ -40,6 +41,13 @@
 		goto fatal_error;
 	}
 
+	IMSG("Start discovering logging service");
+	if (log_factory_create()) {
+		IMSG("Logging service discovery successful");
+	} else {
+		EMSG("Logging service discovery failed, falling back to console log");
+	}
+
 	result = sp_discovery_own_id_get(&own_id);
 	if (result != SP_RESULT_OK) {
 		EMSG("Failed to query own ID: %d", result);
diff --git a/deployments/protected-storage/env/commonsp/ps_sp.cmake b/deployments/protected-storage/env/commonsp/ps_sp.cmake
index c613f22..b6777e9 100644
--- a/deployments/protected-storage/env/commonsp/ps_sp.cmake
+++ b/deployments/protected-storage/env/commonsp/ps_sp.cmake
@@ -24,6 +24,9 @@
 		"components/rpc/common/interface"
 		"components/rpc/ts_rpc/common"
 		"components/rpc/ts_rpc/endpoint/sp"
+		"components/rpc/ts_rpc/caller/sp"
+		"components/service/log/factory"
+		"components/service/log/client"
 )
 
 target_sources(protected-storage PRIVATE
diff --git a/deployments/protected-storage/protected-storage.cmake b/deployments/protected-storage/protected-storage.cmake
index b08fbb0..c98e947 100644
--- a/deployments/protected-storage/protected-storage.cmake
+++ b/deployments/protected-storage/protected-storage.cmake
@@ -11,8 +11,10 @@
 		components/common/tlv
 		components/service/common/include
 		components/service/common/provider
+		components/service/common/client
 		components/service/secure_storage/include
 		components/service/secure_storage/frontend/secure_storage_provider
+		components/rpc/common/caller
 		protocols/rpc/common/packed-c
 		protocols/service/secure_storage/packed-c
 )
diff --git a/deployments/smm-gateway/env/commonsp/smm_gateway_sp.c b/deployments/smm-gateway/env/commonsp/smm_gateway_sp.c
index c87e73e..bb2d0c3 100644
--- a/deployments/smm-gateway/env/commonsp/smm_gateway_sp.c
+++ b/deployments/smm-gateway/env/commonsp/smm_gateway_sp.c
@@ -9,6 +9,7 @@
 #include "config/loader/sp/sp_config_loader.h"
 #include "components/rpc/mm_communicate/endpoint/sp/mm_communicate_call_ep.h"
 #include "components/service/uefi/smm_variable/frontend/mm_communicate/smm_variable_mm_service.h"
+#include "service/log/factory/log_factory.h"
 #include "platform/interface/memory_region.h"
 #include "protocols/common/mm/mm_smc.h"
 #include "ffa_api.h"
@@ -138,6 +139,13 @@
 		return false;
 	}
 
+	IMSG("Start discovering logging service");
+	if (log_factory_create()) {
+		IMSG("Logging service discovery successful");
+	} else {
+		EMSG("Logging service discovery failed, falling back to console log");
+	}
+
 	sp_res = sp_discovery_own_id_get(own_id);
 	if (sp_res != SP_RESULT_OK) {
 		EMSG("Failed to query own ID: %d", sp_res);
diff --git a/deployments/smm-gateway/env/commonsp/smm_gateway_sp.cmake b/deployments/smm-gateway/env/commonsp/smm_gateway_sp.cmake
index 0dc7549..71e0b3d 100644
--- a/deployments/smm-gateway/env/commonsp/smm_gateway_sp.cmake
+++ b/deployments/smm-gateway/env/commonsp/smm_gateway_sp.cmake
@@ -26,6 +26,8 @@
 		"components/rpc/mm_communicate/endpoint/sp"
 		"components/service/locator/sp"
 		"components/service/locator/sp/ffa"
+		"components/service/log/factory"
+		"components/service/log/client"
 		"components/service/uefi/smm_variable/frontend/mm_communicate"
 )