FWU: Align FWU to FF 1.1

Ailgn FWU service to FF1.1 and convert it into a stateless service.

Signed-off-by: Sherry Zhang <sherry.zhang2@arm.com>
Change-Id: I5719b52e30ba839ab36094005c6e9fc56ad26962
diff --git a/interface/src/tfm_firmware_update_ipc_api.c b/interface/src/tfm_firmware_update_ipc_api.c
index 60d4b2e..3cba758 100644
--- a/interface/src/tfm_firmware_update_ipc_api.c
+++ b/interface/src/tfm_firmware_update_ipc_api.c
@@ -15,39 +15,20 @@
                            const void *block,
                            size_t block_size)
 {
-    psa_status_t status;
-    psa_handle_t handle;
-
     psa_invec in_vec[] = {
         { .base = &image_id, .len = sizeof(image_id) },
         { .base = &block_offset, .len = sizeof(block_offset) },
         { .base = block, .len = block_size }
     };
 
-    handle = psa_connect(TFM_FWU_WRITE_SID, TFM_FWU_WRITE_VERSION);
-    if (!PSA_HANDLE_IS_VALID(handle)) {
-        return PSA_ERROR_GENERIC_ERROR;
-    }
-
-    status = psa_call(handle, PSA_IPC_CALL, in_vec, IOVEC_LEN(in_vec), NULL,
-                      0);
-
-    psa_close(handle);
-
-    if (status == (psa_status_t)TFM_ERROR_INVALID_PARAMETER) {
-        return PSA_ERROR_INVALID_ARGUMENT;
-    }
-
-    return status;
+    return psa_call(TFM_FIRMWARE_UPDATE_SERVICE_HANDLE, TFM_FWU_WRITE,
+                    in_vec, IOVEC_LEN(in_vec), NULL, 0);
 }
 
 psa_status_t psa_fwu_install(const psa_image_id_t image_id,
                              psa_image_id_t *dependency_uuid,
                              psa_image_version_t *dependency_version)
 {
-    psa_status_t status;
-    psa_handle_t handle;
-
     psa_invec in_vec[] = {
         { .base = &image_id, .len = sizeof(image_id) }
     };
@@ -61,54 +42,22 @@
         return PSA_ERROR_INVALID_ARGUMENT;
     }
 
-    handle = psa_connect(TFM_FWU_INSTALL_SID, TFM_FWU_INSTALL_VERSION);
-    if (!PSA_HANDLE_IS_VALID(handle)) {
-        return PSA_ERROR_GENERIC_ERROR;
-    }
-
-    status = psa_call(handle, PSA_IPC_CALL, in_vec, IOVEC_LEN(in_vec),
-                      out_vec, IOVEC_LEN(out_vec));
-
-    psa_close(handle);
-
-    if (status == (psa_status_t)TFM_ERROR_INVALID_PARAMETER) {
-        return PSA_ERROR_INVALID_ARGUMENT;
-    }
-
-    return status;
+    return psa_call(TFM_FIRMWARE_UPDATE_SERVICE_HANDLE, TFM_FWU_INSTALL,
+                    in_vec, IOVEC_LEN(in_vec), out_vec, IOVEC_LEN(out_vec));
 }
 
 psa_status_t psa_fwu_abort(const psa_image_id_t image_id)
 {
-    psa_status_t status;
-    psa_handle_t handle;
-
     psa_invec in_vec[] = {
         { .base = &image_id, .len = sizeof(image_id) }
     };
 
-    handle = psa_connect(TFM_FWU_ABORT_SID, TFM_FWU_ABORT_VERSION);
-    if (!PSA_HANDLE_IS_VALID(handle)) {
-        return PSA_ERROR_GENERIC_ERROR;
-    }
-
-    status = psa_call(handle, PSA_IPC_CALL, in_vec, IOVEC_LEN(in_vec), NULL,
-                      0);
-
-    psa_close(handle);
-
-    if (status == (psa_status_t)TFM_ERROR_INVALID_PARAMETER) {
-        return PSA_ERROR_INVALID_ARGUMENT;
-    }
-
-    return status;
+    return psa_call(TFM_FIRMWARE_UPDATE_SERVICE_HANDLE, TFM_FWU_ABORT,
+                    in_vec, IOVEC_LEN(in_vec), NULL, 0);
 }
 
 psa_status_t psa_fwu_query(const psa_image_id_t image_id, psa_image_info_t *info)
 {
-    psa_status_t status;
-    psa_handle_t handle;
-
     psa_invec in_vec[] = {
         { .base = &image_id, .len = sizeof(image_id) }
     };
@@ -116,68 +65,24 @@
         { .base = info, .len = sizeof(*info)}
     };
 
-    handle = psa_connect(TFM_FWU_QUERY_SID, TFM_FWU_QUERY_VERSION);
-    if (!PSA_HANDLE_IS_VALID(handle)) {
-        return PSA_ERROR_GENERIC_ERROR;
-    }
-
-    status = psa_call(handle, PSA_IPC_CALL, in_vec, IOVEC_LEN(in_vec), out_vec,
-                      IOVEC_LEN(out_vec));
-
-    psa_close(handle);
-
-    if (status == (psa_status_t)TFM_ERROR_INVALID_PARAMETER) {
-        return PSA_ERROR_INVALID_ARGUMENT;
-    }
-
-    return status;
+    return psa_call(TFM_FIRMWARE_UPDATE_SERVICE_HANDLE, TFM_FWU_QUERY,
+                    in_vec, IOVEC_LEN(in_vec), out_vec, IOVEC_LEN(out_vec));
 }
 
 psa_status_t psa_fwu_request_reboot(void)
 {
-    psa_handle_t handle;
-    psa_status_t status;
-
-    handle = psa_connect(TFM_FWU_REQUEST_REBOOT_SID,
-                         TFM_FWU_REQUEST_REBOOT_VERSION);
-    if (!PSA_HANDLE_IS_VALID(handle)) {
-        return PSA_ERROR_GENERIC_ERROR;
-    }
-
-    status = psa_call(handle, PSA_IPC_CALL, NULL, 0, NULL, 0);
-
-    psa_close(handle);
-
-    if (status == (psa_status_t)TFM_ERROR_INVALID_PARAMETER) {
-        return PSA_ERROR_INVALID_ARGUMENT;
-    }
-
-    return status;
+    return psa_call(TFM_FIRMWARE_UPDATE_SERVICE_HANDLE, TFM_FWU_REQUEST_REBOOT,
+                    NULL, 0, NULL, 0);
 }
 
 psa_status_t psa_fwu_accept(psa_image_id_t image_id)
 {
-    psa_handle_t handle;
-    psa_status_t status;
     psa_invec in_vec[] = {
         { .base = &image_id, .len = sizeof(image_id) }
     };
 
-    handle = psa_connect(TFM_FWU_ACCEPT_SID,
-                         TFM_FWU_ACCEPT_VERSION);
-    if (!PSA_HANDLE_IS_VALID(handle)) {
-        return PSA_ERROR_GENERIC_ERROR;
-    }
-
-    status = psa_call(handle, PSA_IPC_CALL, in_vec, IOVEC_LEN(in_vec), NULL, 0);
-
-    psa_close(handle);
-
-    if (status == (psa_status_t)TFM_ERROR_INVALID_PARAMETER) {
-        return PSA_ERROR_INVALID_ARGUMENT;
-    }
-
-    return status;
+    return psa_call(TFM_FIRMWARE_UPDATE_SERVICE_HANDLE, TFM_FWU_ACCEPT,
+                    in_vec, IOVEC_LEN(in_vec), NULL, 0);
 }
 
 psa_status_t psa_fwu_set_manifest(psa_image_id_t image_id,