psa arch test v1.4 release
diff --git a/api-tests/dev_apis/README.md b/api-tests/dev_apis/README.md
index 24a5820..30d7b3d 100644
--- a/api-tests/dev_apis/README.md
+++ b/api-tests/dev_apis/README.md
@@ -14,12 +14,12 @@
For more information on the architecture test suite framework and methodology to run the tests, refer to the [Validation Methodology](../docs/Arm_PSA_APIs_Arch_Test_Validation_Methodology.pdf) document.
## This release
- - Code Quality : REL v1.3
+ - Code Quality : REL v1.4
- This release contains following PSA Functional APIs tests: <br />
| Test Category | Specification Version |
|--------------------------|--------------------------------------|
-| Crypto | [PSA Crypto API 1.0.0](../../api-specs/crypto/v1.0.0/doc/) |
+| Crypto | [PSA Crypto API 1.0.1](../../api-specs/crypto/v1.0.1/doc/) |
| Storage (PS and ITS) | [PSA Storage API 1.0.0](../../api-specs/storage/v1.0/doc/) |
| Attestation | [PSA Attestation API 1.0.2](../../api-specs/attestation/v1.0.2/doc/) |
@@ -30,6 +30,7 @@
| Release version | Release tag | PSA Crypto API | PSA Storage API | PSA Attestation API |
|-----------------|---------------|----------------|-----------------|---------------------|
+| REL v1.4 | [v22.01_API1.4_ADAC_BETA](https://github.com/ARM-software/psa-arch-tests/tree/v22.01_API1.4_ADAC_BETA/api-tests/dev_apis) | 1.0.1 | 1.0.0 | 1.0.2 |
| REL v1.3 | [v21.10_API1.3_ADAC_ALPHA-1](https://github.com/ARM-software/psa-arch-tests/tree/v21.10_API1.3_ADAC_ALPHA-1/api-tests/dev_apis) | 1.0.0 | 1.0.0 | 1.0.2 |
| REL v1.2 | [v21.07_API1.2_ADAC_ALPHA](https://github.com/ARM-software/psa-arch-tests/tree/v21.07_API1.2_ADAC_ALPHA/api-tests/dev_apis) | 1.0.0 | 1.0.0 | 1.0.2 |
| REL v1.1 | [v20.11_API1.1](https://github.com/ARM-software/psa-arch-tests/tree/v20.11_API1.1/api-tests/dev_apis) | 1.0-Beta3 | 1.0.0 | 1.0.0 |
@@ -131,4 +132,4 @@
--------------
-*Copyright (c) 2018-2021, Arm Limited and Contributors. All rights reserved.*
+*Copyright (c) 2018-2022, Arm Limited and Contributors. All rights reserved.*
diff --git a/api-tests/dev_apis/crypto/test_c016/test_data.h b/api-tests/dev_apis/crypto/test_c016/test_data.h
index e6c24e0..b4044f9 100644
--- a/api-tests/dev_apis/crypto/test_c016/test_data.h
+++ b/api-tests/dev_apis/crypto/test_c016/test_data.h
@@ -1,5 +1,5 @@
/** @file
- * Copyright (c) 2019-2021, Arm Limited or its affiliates. All rights reserved.
+ * Copyright (c) 2019-2022, Arm Limited or its affiliates. All rights reserved.
* SPDX-License-Identifier : Apache-2.0
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -150,7 +150,7 @@
.expected_range = {1, BITS_TO_BYTES(MIN(PSA_EXPORT_KEY_OUTPUT_SIZE(\
PSA_KEY_TYPE_RSA_PUBLIC_KEY, 2048), \
PSA_EXPORT_PUBLIC_KEY_MAX_SIZE))},
- .expected_status = PSA_ERROR_NOT_SUPPORTED
+ .expected_status = PSA_ERROR_INVALID_ARGUMENT
},
#endif
#endif
diff --git a/api-tests/dev_apis/crypto/testsuite.db b/api-tests/dev_apis/crypto/testsuite.db
index 21a20aa..691f44a 100644
--- a/api-tests/dev_apis/crypto/testsuite.db
+++ b/api-tests/dev_apis/crypto/testsuite.db
@@ -1,5 +1,5 @@
#/** @file
-# * Copyright (c) 2019-2021, Arm Limited or its affiliates. All rights reserved.
+# * Copyright (c) 2019-2022, Arm Limited or its affiliates. All rights reserved.
# * SPDX-License-Identifier : Apache-2.0
# *
# * Licensed under the Apache License, Version 2.0 (the "License");
@@ -21,7 +21,7 @@
(START)
test_c001
-test_c002, failing_test
+test_c002
test_c003
test_c004
test_c005
@@ -35,7 +35,7 @@
test_c013
test_c014
test_c015
-test_c016
+test_c016, failing_test
test_c017
test_c018
test_c019
diff --git a/api-tests/docs/Arm_PSA-M_Functional_API_Test_Suite_Validation_Methodology.pdf b/api-tests/docs/Arm_PSA-M_Functional_API_Test_Suite_Validation_Methodology.pdf
index 76bdf24..6b45bfa 100644
--- a/api-tests/docs/Arm_PSA-M_Functional_API_Test_Suite_Validation_Methodology.pdf
+++ b/api-tests/docs/Arm_PSA-M_Functional_API_Test_Suite_Validation_Methodology.pdf
Binary files differ
diff --git a/api-tests/docs/sw_requirements.md b/api-tests/docs/sw_requirements.md
index 2809434..ab9db8c 100644
--- a/api-tests/docs/sw_requirements.md
+++ b/api-tests/docs/sw_requirements.md
@@ -26,7 +26,7 @@
## Download source
-To download the master branch of the repository, type the following command: <br />
+To download the main branch of the repository, type the following command: <br />
~~~
git clone https://github.com/ARM-software/psa-arch-tests.git
~~~
@@ -45,4 +45,4 @@
--------------
-*Copyright (c) 2018-2021, Arm Limited and Contributors. All rights reserved.*
+*Copyright (c) 2018-2022, Arm Limited and Contributors. All rights reserved.*
diff --git a/api-tests/docs/test_failure_analysis.md b/api-tests/docs/test_failure_analysis.md
index 8018152..02d310e 100644
--- a/api-tests/docs/test_failure_analysis.md
+++ b/api-tests/docs/test_failure_analysis.md
@@ -3,14 +3,14 @@
This file contains list of failures identified when testing the release
on tgt_dev_apis_tfm_an521 and tgt_dev_apis_tfm_musca_b1
-targets with TFM commit Hash - dd1fe44448db0f1750794cd9cf5596033f90f6f9 (tag: TF-Mv1.4.1).
+targets with TFM commit Hash - 6fb14a14140f94150f959c88e3b880f48372da06 (tag: TF-Mv1.5.0).
The reason for each failing test is listed here in this file.
## Known Failures
| Test | Fail description | Github issue |
|------|---------------------------------------------------------------------------------| ------------ |
-|test_c002 | reference platform implementation issue | NA |
+|test_c016 | This test will pass with the mbed TLS 3.1.0, TF-M 1.5.0 is not using mbed TLS 3.1.0. So the test is failing. | https://jira.arm.com/browse/PJ03206-534 |
|test_c026 | psa_sign_message not supported | https://jira.arm.com/browse/IOTPSW-4275 |
|test_c027 | psa_mac_update not supported | https://jira.arm.com/browse/IOTPSW-4275 |
|test_c028 | PSA_KEY_USAGE_SIGN_MESSAGE not found | https://jira.arm.com/browse/IOTPSW-4275 |
@@ -35,4 +35,4 @@
--------------
-*Copyright (c) 2021, Arm Limited and Contributors. All rights reserved.*
+*Copyright (c) 2021-2022, Arm Limited and Contributors. All rights reserved.*
diff --git a/api-tests/ff/README.md b/api-tests/ff/README.md
index c09cde6..53788e9 100644
--- a/api-tests/ff/README.md
+++ b/api-tests/ff/README.md
@@ -23,13 +23,14 @@
For more information on architecture test suite specification, refer to the [Validation Methodology](../docs/Arm_PSA_APIs_Arch_Test_Validation_Methodology.pdf) document.
## This release
- - Code Quality : REL v1.3
+ - Code Quality : REL v1.4
- This release contains the PSA-FF tests that are written for the PSA FF 1.1 Extensions specification.
## Release Tags
| Release version | Release tag | PSA FF specification version |
|-----------------|---------------|----------------|
+| REL v1.4 | [v22.01_API1.4_ADAC_BETA](https://github.com/ARM-software/psa-arch-tests/tree/v22.01_API1.4_ADAC_BETA/api-tests/ff) | 1.1-Alpha0 |
| REL v1.3 | [v21.10_API1.3_ADAC_ALPHA-1](https://github.com/ARM-software/psa-arch-tests/tree/v21.10_API1.3_ADAC_ALPHA-1/api-tests/ff) | 1.1-Alpha0 |
| REL v1.2 | [v21.07_API1.2_ADAC_ALPHA](https://github.com/ARM-software/psa-arch-tests/tree/v21.07_API1.2_ADAC_ALPHA/api-tests/ff) | 1.1-Alpha0 |
| REL v1.1 | [v20.11_API1.1](https://github.com/ARM-software/psa-arch-tests/tree/v20.11_API1.1/api-tests/ff) | 1.0 |
@@ -162,4 +163,4 @@
--------------
-*Copyright (c) 2018-2021, Arm Limited and Contributors. All rights reserved.*
+*Copyright (c) 2018-2022, Arm Limited and Contributors. All rights reserved.*
diff --git a/api-tests/ff/ipc/test_i058/test_i058.c b/api-tests/ff/ipc/test_i058/test_i058.c
index 4277a1e..012d8fb 100644
--- a/api-tests/ff/ipc/test_i058/test_i058.c
+++ b/api-tests/ff/ipc/test_i058/test_i058.c
@@ -1,5 +1,5 @@
/** @file
- * Copyright (c) 2019-2021, Arm Limited or its affiliates. All rights reserved.
+ * Copyright (c) 2019-2022, Arm Limited or its affiliates. All rights reserved.
* SPDX-License-Identifier : Apache-2.0
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -42,6 +42,7 @@
val->print(PRINT_TEST,
"[Check 1] Test PSA_DOORBELL signal\n", 0);
+ psa->call(SERVER_UNSPECIFED_VERSION_HANDLE, PSA_IPC_CALL, NULL, 0, NULL, 0);
#ifndef NONSECURE_TEST_BUILD
/* Wait for doorball notification */
@@ -79,6 +80,7 @@
}
#endif
+ psa->call(SERVER_UNSPECIFED_VERSION_HANDLE, PSA_IPC_CALL, NULL, 0, NULL, 0);
return status;
}
diff --git a/api-tests/ff/ipc/test_i058/test_supp_i058.c b/api-tests/ff/ipc/test_i058/test_supp_i058.c
index f84497d..c81c95d 100644
--- a/api-tests/ff/ipc/test_i058/test_supp_i058.c
+++ b/api-tests/ff/ipc/test_i058/test_supp_i058.c
@@ -1,5 +1,5 @@
/** @file
- * Copyright (c) 2019-2021, Arm Limited or its affiliates. All rights reserved.
+ * Copyright (c) 2019-2022, Arm Limited or its affiliates. All rights reserved.
* SPDX-License-Identifier : Apache-2.0
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -38,6 +38,10 @@
int32_t status = VAL_STATUS_SUCCESS;
psa_msg_t msg = {0};
+ status = val->process_call_request(SERVER_UNSPECIFED_VERSION_SIGNAL, &msg);
+ val->err_check_set(TEST_CHECKPOINT_NUM(201), status);
+ psa_reply(msg.handle, PSA_SUCCESS);
+
if (msg.client_id > 0)
{
/* Doorbell signal to client partititon */
@@ -49,7 +53,9 @@
val->print(PRINT_ERROR, "Caller is from non-secure\n", 0);
}
+ status = val->process_call_request(SERVER_UNSPECIFED_VERSION_SIGNAL, &msg);
val->err_check_set(TEST_CHECKPOINT_NUM(202), status);
+ psa_reply(msg.handle, PSA_SUCCESS);
return status;
}
diff --git a/api-tests/ff/ipc/test_i063/test_i063.c b/api-tests/ff/ipc/test_i063/test_i063.c
index 4a03410..f51d015 100644
--- a/api-tests/ff/ipc/test_i063/test_i063.c
+++ b/api-tests/ff/ipc/test_i063/test_i063.c
@@ -1,5 +1,5 @@
/** @file
- * Copyright (c) 2019-2021, Arm Limited or its affiliates. All rights reserved.
+ * Copyright (c) 2019-2022, Arm Limited or its affiliates. All rights reserved.
* SPDX-License-Identifier : Apache-2.0
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -35,10 +35,12 @@
int32_t client_test_psa_wait_signal_mask(caller_security_t caller __UNUSED)
{
-
-
val->print(PRINT_TEST, "[Check 1] Test psa_wait signal mask\n", 0);
+ psa->call(SERVER_UNSPECIFED_VERSION_HANDLE, PSA_IPC_CALL, NULL, 0, NULL, 0);
+
+ psa->call(SERVER_RELAX_VERSION_HANDLE, PSA_IPC_CALL, NULL, 0, NULL, 0);
+
return VAL_STATUS_SUCCESS;
}
diff --git a/api-tests/ff/ipc/test_i072/test_i072.c b/api-tests/ff/ipc/test_i072/test_i072.c
index 9f09884..96ebece 100644
--- a/api-tests/ff/ipc/test_i072/test_i072.c
+++ b/api-tests/ff/ipc/test_i072/test_i072.c
@@ -1,5 +1,5 @@
/** @file
- * Copyright (c) 2019-2021, Arm Limited or its affiliates. All rights reserved.
+ * Copyright (c) 2019-2022, Arm Limited or its affiliates. All rights reserved.
* SPDX-License-Identifier : Apache-2.0
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -98,7 +98,7 @@
return VAL_STATUS_ERROR;
/* Setting boot.state before test check */
- if (val->set_boot_flag(BOOT_EXPECTED_NS))
+ if (val->set_boot_flag(BOOT_EXPECTED_ON_SECOND_CHECK))
{
val->print(PRINT_ERROR, "\tFailed to set boot flag before check\n", 0);
return VAL_STATUS_ERROR;
@@ -196,7 +196,7 @@
return VAL_STATUS_ERROR;
/* Setting boot.state before test check */
- if (val->set_boot_flag(BOOT_EXPECTED_NS))
+ if (val->set_boot_flag(BOOT_EXPECTED_ON_SECOND_CHECK))
{
val->print(PRINT_ERROR, "\tFailed to set boot flag before check\n", 0);
return VAL_STATUS_ERROR;
diff --git a/api-tests/ff/ipc/test_i073/test_i073.c b/api-tests/ff/ipc/test_i073/test_i073.c
index b3891b5..886a52c 100644
--- a/api-tests/ff/ipc/test_i073/test_i073.c
+++ b/api-tests/ff/ipc/test_i073/test_i073.c
@@ -1,5 +1,5 @@
/** @file
- * Copyright (c) 2019-2021, Arm Limited or its affiliates. All rights reserved.
+ * Copyright (c) 2019-2022, Arm Limited or its affiliates. All rights reserved.
* SPDX-License-Identifier : Apache-2.0
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -98,7 +98,7 @@
return VAL_STATUS_ERROR;
/* Setting boot.state before test check */
- if (val->set_boot_flag(BOOT_EXPECTED_NS))
+ if (val->set_boot_flag(BOOT_EXPECTED_ON_SECOND_CHECK))
{
val->print(PRINT_ERROR, "\tFailed to set boot flag before check\n", 0);
return VAL_STATUS_ERROR;
@@ -196,7 +196,7 @@
return VAL_STATUS_ERROR;
/* Setting boot.state before test check */
- if (val->set_boot_flag(BOOT_EXPECTED_NS))
+ if (val->set_boot_flag(BOOT_EXPECTED_ON_SECOND_CHECK))
{
val->print(PRINT_ERROR, "\tFailed to set boot flag before check\n", 0);
return VAL_STATUS_ERROR;
diff --git a/api-tests/ff/ipc/test_i074/test_i074.c b/api-tests/ff/ipc/test_i074/test_i074.c
index 6042bb6..66d52a2 100644
--- a/api-tests/ff/ipc/test_i074/test_i074.c
+++ b/api-tests/ff/ipc/test_i074/test_i074.c
@@ -1,5 +1,5 @@
/** @file
- * Copyright (c) 2019-2021, Arm Limited or its affiliates. All rights reserved.
+ * Copyright (c) 2019-2022, Arm Limited or its affiliates. All rights reserved.
* SPDX-License-Identifier : Apache-2.0
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -104,7 +104,7 @@
return VAL_STATUS_ERROR;
/* Setting boot.state before test check */
- if (val->set_boot_flag(BOOT_EXPECTED_NS))
+ if (val->set_boot_flag(BOOT_EXPECTED_ON_SECOND_CHECK))
{
val->print(PRINT_ERROR, "\tFailed to set boot flag before check\n", 0);
return VAL_STATUS_ERROR;
@@ -218,7 +218,7 @@
return VAL_STATUS_ERROR;
/* Setting boot.state before test check */
- if (val->set_boot_flag(BOOT_EXPECTED_NS))
+ if (val->set_boot_flag(BOOT_EXPECTED_ON_SECOND_CHECK))
{
val->print(PRINT_ERROR, "\tFailed to set boot flag before check\n", 0);
return VAL_STATUS_ERROR;
diff --git a/api-tests/ff/ipc/test_i075/test_i075.c b/api-tests/ff/ipc/test_i075/test_i075.c
index 5c7f4d0..fa48863 100644
--- a/api-tests/ff/ipc/test_i075/test_i075.c
+++ b/api-tests/ff/ipc/test_i075/test_i075.c
@@ -1,5 +1,5 @@
/** @file
- * Copyright (c) 2019-2021, Arm Limited or its affiliates. All rights reserved.
+ * Copyright (c) 2019-2022, Arm Limited or its affiliates. All rights reserved.
* SPDX-License-Identifier : Apache-2.0
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -98,7 +98,7 @@
return VAL_STATUS_ERROR;
/* Setting boot.state before test check */
- if (val->set_boot_flag(BOOT_EXPECTED_NS))
+ if (val->set_boot_flag(BOOT_EXPECTED_ON_SECOND_CHECK))
{
val->print(PRINT_ERROR, "\tFailed to set boot flag before check\n", 0);
return VAL_STATUS_ERROR;
@@ -196,7 +196,7 @@
return VAL_STATUS_ERROR;
/* Setting boot.state before test check */
- if (val->set_boot_flag(BOOT_EXPECTED_NS))
+ if (val->set_boot_flag(BOOT_EXPECTED_ON_SECOND_CHECK))
{
val->print(PRINT_ERROR, "\tFailed to set boot flag before check\n", 0);
return VAL_STATUS_ERROR;
diff --git a/api-tests/ff/ipc/test_i076/test_i076.c b/api-tests/ff/ipc/test_i076/test_i076.c
index b4e9a0a..6a722be 100644
--- a/api-tests/ff/ipc/test_i076/test_i076.c
+++ b/api-tests/ff/ipc/test_i076/test_i076.c
@@ -1,5 +1,5 @@
/** @file
- * Copyright (c) 2019-2021, Arm Limited or its affiliates. All rights reserved.
+ * Copyright (c) 2019-2022, Arm Limited or its affiliates. All rights reserved.
* SPDX-License-Identifier : Apache-2.0
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -136,7 +136,7 @@
NULL,
};
-static int32_t get_secure_partition_address(__attribute__((unused)) psa_handle_t *handle,
+static int32_t get_secure_partition_address(psa_handle_t *handle,
addr_t *addr,
driver_test_fn_id_t test_fn_id)
{
diff --git a/api-tests/ff/ipc/test_i083/test_i083.c b/api-tests/ff/ipc/test_i083/test_i083.c
index 8c1bd7f..2ba5073 100644
--- a/api-tests/ff/ipc/test_i083/test_i083.c
+++ b/api-tests/ff/ipc/test_i083/test_i083.c
@@ -1,5 +1,5 @@
/** @file
- * Copyright (c) 2019-2021, Arm Limited or its affiliates. All rights reserved.
+ * Copyright (c) 2019-2022, Arm Limited or its affiliates. All rights reserved.
* SPDX-License-Identifier : Apache-2.0
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -240,13 +240,6 @@
TEST_ISOLATION_PSA_ROT_MMIO_WR)))
return VAL_STATUS_ERROR;
- /* Setting boot.state before test check */
- if (val->set_boot_flag(BOOT_EXPECTED_S))
- {
- val->print(PRINT_ERROR, "\tFailed to set boot flag before check\n", 0);
- return VAL_STATUS_ERROR;
- }
-
/* Write PSA RoT mmio address.
* This should generate internal fault or ignore the write.
*/
diff --git a/api-tests/ff/ipc/test_i084/test_i084.c b/api-tests/ff/ipc/test_i084/test_i084.c
index 023b88c..1b84d7c 100644
--- a/api-tests/ff/ipc/test_i084/test_i084.c
+++ b/api-tests/ff/ipc/test_i084/test_i084.c
@@ -1,5 +1,5 @@
/** @file
- * Copyright (c) 2019-2021, Arm Limited or its affiliates. All rights reserved.
+ * Copyright (c) 2019-2022, Arm Limited or its affiliates. All rights reserved.
* SPDX-License-Identifier : Apache-2.0
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -98,7 +98,7 @@
return VAL_STATUS_ERROR;
/* Setting boot.state before test check */
- if (val->set_boot_flag(BOOT_EXPECTED_NS))
+ if (val->set_boot_flag(BOOT_EXPECTED_ON_SECOND_CHECK))
{
val->print(PRINT_ERROR, "\tFailed to set boot flag before check\n", 0);
return VAL_STATUS_ERROR;
@@ -195,7 +195,7 @@
return VAL_STATUS_ERROR;
/* Setting boot.state before test check */
- if (val->set_boot_flag(BOOT_EXPECTED_NS))
+ if (val->set_boot_flag(BOOT_EXPECTED_ON_SECOND_CHECK))
{
val->print(PRINT_ERROR, "\tFailed to set boot flag before check\n", 0);
return VAL_STATUS_ERROR;
diff --git a/api-tests/ff/ipc/test_i085/test_i085.c b/api-tests/ff/ipc/test_i085/test_i085.c
index f672fdd..476b461 100644
--- a/api-tests/ff/ipc/test_i085/test_i085.c
+++ b/api-tests/ff/ipc/test_i085/test_i085.c
@@ -1,5 +1,5 @@
/** @file
- * Copyright (c) 2019-2021, Arm Limited or its affiliates. All rights reserved.
+ * Copyright (c) 2019-2022, Arm Limited or its affiliates. All rights reserved.
* SPDX-License-Identifier : Apache-2.0
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -99,7 +99,7 @@
return VAL_STATUS_ERROR;
/* Setting boot.state before test check */
- if (val->set_boot_flag(BOOT_EXPECTED_NS))
+ if (val->set_boot_flag(BOOT_EXPECTED_ON_SECOND_CHECK))
{
val->print(PRINT_ERROR, "\tFailed to set boot flag before check\n", 0);
return VAL_STATUS_ERROR;
@@ -196,7 +196,7 @@
return VAL_STATUS_ERROR;
/* Setting boot.state before test check */
- if (val->set_boot_flag(BOOT_EXPECTED_NS))
+ if (val->set_boot_flag(BOOT_EXPECTED_ON_SECOND_CHECK))
{
val->print(PRINT_ERROR, "\tFailed to set boot flag before check\n", 0);
return VAL_STATUS_ERROR;
diff --git a/api-tests/ff/ipc/test_i086/test_i086.c b/api-tests/ff/ipc/test_i086/test_i086.c
index 2c2fcaa..d4577d8 100644
--- a/api-tests/ff/ipc/test_i086/test_i086.c
+++ b/api-tests/ff/ipc/test_i086/test_i086.c
@@ -1,5 +1,5 @@
/** @file
- * Copyright (c) 2019-2021, Arm Limited or its affiliates. All rights reserved.
+ * Copyright (c) 2019-2022, Arm Limited or its affiliates. All rights reserved.
* SPDX-License-Identifier : Apache-2.0
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -102,7 +102,7 @@
return VAL_STATUS_ERROR;
/* Setting boot.state before test check */
- if (val->set_boot_flag(BOOT_EXPECTED_NS))
+ if (val->set_boot_flag(BOOT_EXPECTED_ON_SECOND_CHECK))
{
val->print(PRINT_ERROR, "\tFailed to set boot flag before check\n", 0);
return VAL_STATUS_ERROR;
@@ -215,7 +215,7 @@
return VAL_STATUS_ERROR;
/* Setting boot.state before test check */
- if (val->set_boot_flag(BOOT_EXPECTED_NS))
+ if (val->set_boot_flag(BOOT_EXPECTED_ON_SECOND_CHECK))
{
val->print(PRINT_ERROR, "\tFailed to set boot flag before check\n", 0);
return VAL_STATUS_ERROR;
diff --git a/api-tests/ff/ipc/test_i087/test_i087.c b/api-tests/ff/ipc/test_i087/test_i087.c
index 864d444..1debbc0 100644
--- a/api-tests/ff/ipc/test_i087/test_i087.c
+++ b/api-tests/ff/ipc/test_i087/test_i087.c
@@ -1,5 +1,5 @@
/** @file
- * Copyright (c) 2019-2021, Arm Limited or its affiliates. All rights reserved.
+ * Copyright (c) 2019-2022, Arm Limited or its affiliates. All rights reserved.
* SPDX-License-Identifier : Apache-2.0
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -101,7 +101,7 @@
return VAL_STATUS_ERROR;
/* Setting boot.state before test check */
- if (val->set_boot_flag(BOOT_EXPECTED_NS))
+ if (val->set_boot_flag(BOOT_EXPECTED_ON_SECOND_CHECK))
{
val->print(PRINT_ERROR, "\tFailed to set boot flag before check\n", 0);
return VAL_STATUS_ERROR;
@@ -201,7 +201,7 @@
return VAL_STATUS_ERROR;
/* Setting boot.state before test check */
- if (val->set_boot_flag(BOOT_EXPECTED_NS))
+ if (val->set_boot_flag(BOOT_EXPECTED_ON_SECOND_CHECK))
{
val->print(PRINT_ERROR, "\tFailed to set boot flag before check\n", 0);
return VAL_STATUS_ERROR;
diff --git a/api-tests/ff/partition/client_partition.c b/api-tests/ff/partition/client_partition.c
index ae6b40f..3cb4c51 100644
--- a/api-tests/ff/partition/client_partition.c
+++ b/api-tests/ff/partition/client_partition.c
@@ -1,5 +1,5 @@
/** @file
- * Copyright (c) 2018-2021, Arm Limited or its affiliates. All rights reserved.
+ * Copyright (c) 2018-2022, Arm Limited or its affiliates. All rights reserved.
* SPDX-License-Identifier : Apache-2.0
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -97,7 +97,9 @@
/* Server_partition requests client to connect to SERVER_SECURE_CONNECT_ONLY_SID */
else if (signals & PSA_DOORBELL)
{
-#if STATELESS_ROT != 1
+#if STATELESS_ROT == 1
+ psa_call(SERVER_SECURE_CONNECT_ONLY_HANDLE, PSA_IPC_CALL, NULL, 0, NULL, 0);
+#else
if (psa_connect(SERVER_SECURE_CONNECT_ONLY_SID, SERVER_SECURE_CONNECT_ONLY_VERSION)
!= PSA_ERROR_CONNECTION_REFUSED)
{
diff --git a/api-tests/ff/partition/driver_partition.c b/api-tests/ff/partition/driver_partition.c
index 8823fc2..433392a 100644
--- a/api-tests/ff/partition/driver_partition.c
+++ b/api-tests/ff/partition/driver_partition.c
@@ -1,5 +1,5 @@
/** @file
- * Copyright (c) 2018-2021, Arm Limited or its affiliates. All rights reserved.
+ * Copyright (c) 2018-2022, Arm Limited or its affiliates. All rights reserved.
* SPDX-License-Identifier : Apache-2.0
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -497,7 +497,7 @@
psa_write(msg->handle, 0, (void *) &addr, sizeof(addr_t));
/* Setting boot.state before test check */
- if (val_driver_private_set_boot_flag_fn(BOOT_EXPECTED_S))
+ if (val_driver_private_set_boot_flag_fn(BOOT_EXPECTED_ON_SECOND_CHECK))
{
val_print_sf("\tFailed to set boot flag before check\n", 0);
psa_reply(msg->handle, -2);
@@ -553,7 +553,7 @@
psa_write(msg->handle, 0, (void *) &addr, sizeof(addr_t));
/* Setting boot.state before test check */
- if (val_driver_private_set_boot_flag_fn(BOOT_EXPECTED_S))
+ if (val_driver_private_set_boot_flag_fn(BOOT_EXPECTED_ON_SECOND_CHECK))
{
val_print_sf("\tFailed to set boot flag before check\n", 0);
psa_reply(msg->handle, -2);
@@ -614,14 +614,14 @@
/* Send PSA RoT heap address */
psa_write(msg->handle, 0, (void *) &buffer, BUFFER_SIZE);
- psa_reply(msg->handle, PSA_SUCCESS);
/* Setting boot.state before test check */
- if (val_driver_private_set_boot_flag_fn(BOOT_EXPECTED_S))
+ if (val_driver_private_set_boot_flag_fn(BOOT_EXPECTED_ON_SECOND_CHECK))
{
val_print_sf("\tFailed to set boot flag before check\n", 0);
psa_reply(msg->handle, -2);
}
+ psa_reply(msg->handle, PSA_SUCCESS);
/* Process second call request */
if (VAL_ERROR(process_call_request(DRIVER_TEST_SIGNAL, msg)))
@@ -683,14 +683,14 @@
/* Send PSA RoT mmio address */
memset((uint8_t *)&psa_rot_mmio_addr, (uint8_t)DATA_VALUE, sizeof(addr_t));
psa_write(msg->handle, 0, (void *) &psa_rot_mmio_addr, sizeof(addr_t));
- psa_reply(msg->handle, PSA_SUCCESS);
/* Setting boot.state before test check */
- if (val_driver_private_set_boot_flag_fn(BOOT_EXPECTED_S))
+ if (val_driver_private_set_boot_flag_fn(BOOT_EXPECTED_ON_SECOND_CHECK))
{
- val_print_sf("\tFailed to set boot flag before check\n", 0);
- psa_reply(msg->handle, -2);
+ val_print_sf("\tFailed to set boot flag before check\n", 0);
+ psa_reply(msg->handle, -2);
}
+ psa_reply(msg->handle, PSA_SUCCESS);
/* Process second call request */
if (VAL_ERROR(process_call_request(DRIVER_TEST_SIGNAL, msg)))
diff --git a/api-tests/platform/drivers/watchdog/nrf/nrf9160_wdt.c b/api-tests/platform/drivers/watchdog/nrf/nrf9160_wdt.c
index f48318f..1d6f8dd 100644
--- a/api-tests/platform/drivers/watchdog/nrf/nrf9160_wdt.c
+++ b/api-tests/platform/drivers/watchdog/nrf/nrf9160_wdt.c
@@ -25,27 +25,28 @@
/**
* @brief Watchdog Timer
*/
-struct NRF_WDT_Type { /*!< (@ 0x40018000) WDT_NS Structure */
- __OM uint32_t TASKS_START; /*!< (@ 0x00000000) Start the watchdog */
+struct NRF_WDT_Type { /*!< (@ 0x40018000) WDT_NS Structure */
+ __OM uint32_t TASKS_START; /*!< (@ 0x00000000) Start the watchdog */
__IM uint32_t RESERVED[31];
- __IOM uint32_t SUBSCRIBE_START; /*!< (@ 0x00000080) Subscribe configuration for task START */
+ __IOM uint32_t SUBSCRIBE_START; /*!< (@ 0x00000080) Subscribe configuration for task START */
__IM uint32_t RESERVED1[31];
- __IOM uint32_t EVENTS_TIMEOUT; /*!< (@ 0x00000100) Watchdog timeout */
+ __IOM uint32_t EVENTS_TIMEOUT; /*!< (@ 0x00000100) Watchdog timeout */
__IM uint32_t RESERVED2[31];
- __IOM uint32_t PUBLISH_TIMEOUT; /*!< (@ 0x00000180) Publish configuration for event TIMEOUT */
+ __IOM uint32_t PUBLISH_TIMEOUT; /*!< (@ 0x00000180) Publish configuration for event TIMEOUT */
__IM uint32_t RESERVED3[96];
- __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */
- __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */
+ __IOM uint32_t INTENSET; /*!< (@ 0x00000304) Enable interrupt */
+ __IOM uint32_t INTENCLR; /*!< (@ 0x00000308) Disable interrupt */
__IM uint32_t RESERVED4[61];
- __IM uint32_t RUNSTATUS; /*!< (@ 0x00000400) Run status */
- __IM uint32_t REQSTATUS; /*!< (@ 0x00000404) Request status */
+ __IM uint32_t RUNSTATUS; /*!< (@ 0x00000400) Run status */
+ __IM uint32_t REQSTATUS; /*!< (@ 0x00000404) Request status */
__IM uint32_t RESERVED5[63];
- __IOM uint32_t CRV; /*!< (@ 0x00000504) Counter reload value */
- __IOM uint32_t RREN; /*!< (@ 0x00000508) Enable register for reload request registers */
- __IOM uint32_t CONFIG; /*!< (@ 0x0000050C) Configuration register */
+ __IOM uint32_t CRV; /*!< (@ 0x00000504) Counter reload value */
+ __IOM uint32_t RREN; /*!< (@ 0x00000508) Enable register for reload request registers */
+ __IOM uint32_t CONFIG; /*!< (@ 0x0000050C) Configuration register */
__IM uint32_t RESERVED6[60];
- __OM uint32_t RR[8]; /*!< (@ 0x00000600) Description collection: Reload request n */
-};
+ __OM uint32_t RR[8]; /*!< (@ 0x00000600) Description collection: Reload request n */
+};
+
/* Register: WDT_CONFIG */
/* Description: Configuration register */
@@ -56,7 +57,8 @@
/* Register: WDT_RUNSTATUS */
/* Description: Run status */
#define WDT_RUNSTATUS_RUNSTATUSWDT_Pos (0UL) /*!< Position of RUNSTATUSWDT field. */
-#define WDT_RUNSTATUS_RUNSTATUSWDT_Msk (0x1UL << WDT_RUNSTATUS_RUNSTATUSWDT_Pos) /*!< Bit mask of RUNSTATUSWDT field. */
+ /*!< Bit mask of RUNSTATUSWDT field. */
+#define WDT_RUNSTATUS_RUNSTATUSWDT_Msk (0x1UL << WDT_RUNSTATUS_RUNSTATUSWDT_Pos)
#define WDT_RUNSTATUS_RUNSTATUSWDT_NotRunning (0UL) /*!< Watchdog is not running */
#define WDT_RUNSTATUS_RUNSTATUSWDT_Running (1UL) /*!< Watchdog is running */
@@ -68,7 +70,7 @@
**/
int nrf_wdt_init(addr_t base_addr, uint32_t time_us)
{
- struct NRF_WDT_Type *nrf_wdt = (struct NRF_WDT_Type*)base_addr;
+ struct NRF_WDT_Type *nrf_wdt = (struct NRF_WDT_Type *)base_addr;
/* The FF framework is written with the assumption that the watchdog timer
* can be stopped and reconfigured, but this is not possible on the nRF91.
@@ -108,8 +110,7 @@
**/
int nrf_wdt_enable(addr_t base_addr)
{
- struct NRF_WDT_Type *nrf_wdt = (struct NRF_WDT_Type*)base_addr;
-
+ struct NRF_WDT_Type *nrf_wdt = (struct NRF_WDT_Type *)base_addr;
if (!nrf_wdt_is_enabled(base_addr)) {
nrf_wdt->TASKS_START = 0x01UL; // Trigger start task
} else {
@@ -130,7 +131,7 @@
**/
int nrf_wdt_disable(addr_t base_addr)
{
- struct NRF_WDT_Type *nrf_wdt = (struct NRF_WDT_Type*)base_addr;
+ struct NRF_WDT_Type *nrf_wdt = (struct NRF_WDT_Type *)base_addr;
/* As the nRF91 WDT cannot be stopped, the timer will be reloaded to the
* value in the CRV register. This should work in all cases, as the timer
@@ -152,6 +153,6 @@
**/
int nrf_wdt_is_enabled(addr_t base_addr)
{
- struct NRF_WDT_Type *nrf_wdt = (struct NRF_WDT_Type*)base_addr;
+ struct NRF_WDT_Type *nrf_wdt = (struct NRF_WDT_Type *)base_addr;
return (nrf_wdt->RUNSTATUS & WDT_RUNSTATUS_RUNSTATUSWDT_Msk);
}
diff --git a/api-tests/val/common/val.h b/api-tests/val/common/val.h
index 88bab7b..d93c649 100644
--- a/api-tests/val/common/val.h
+++ b/api-tests/val/common/val.h
@@ -1,5 +1,5 @@
/** @file
- * Copyright (c) 2018-2021, Arm Limited or its affiliates. All rights reserved.
+ * Copyright (c) 2018-2022, Arm Limited or its affiliates. All rights reserved.
* SPDX-License-Identifier : Apache-2.0
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -213,6 +213,10 @@
* re-enter the same test and continue executing the same check function
*/
BOOT_EXPECTED_CONT_TEST_EXEC = 0x7,
+ /* Test expects reboot for secure/non-secure on second check of test . If reboot happens,
+ * re-enter the same test and execute the next check function
+ */
+ BOOT_EXPECTED_ON_SECOND_CHECK = 0x8,
} boot_state_t;
typedef enum {
diff --git a/api-tests/val/nspe/val_entry.h b/api-tests/val/nspe/val_entry.h
index 79646b9..c04c4d1 100644
--- a/api-tests/val/nspe/val_entry.h
+++ b/api-tests/val/nspe/val_entry.h
@@ -1,5 +1,5 @@
/** @file
- * Copyright (c) 2018-2021, Arm Limited or its affiliates. All rights reserved.
+ * Copyright (c) 2018-2022, Arm Limited or its affiliates. All rights reserved.
* SPDX-License-Identifier : Apache-2.0
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -21,7 +21,7 @@
#include "val_framework.h"
#define PSA_ACS_MAJOR_VER 1
-#define PSA_ACS_MINOR_VER 3
+#define PSA_ACS_MINOR_VER 4
/**
@brief - PSA Test Suite C main function, does VAL init and calls test dispatcher
diff --git a/api-tests/val/nspe/val_framework.c b/api-tests/val/nspe/val_framework.c
index ec6b1cc..54e5dbd 100644
--- a/api-tests/val/nspe/val_framework.c
+++ b/api-tests/val/nspe/val_framework.c
@@ -1,5 +1,5 @@
/** @file
- * Copyright (c) 2018-2021, Arm Limited or its affiliates. All rights reserved.
+ * Copyright (c) 2018-2022, Arm Limited or its affiliates. All rights reserved.
* SPDX-License-Identifier : Apache-2.0
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -122,7 +122,8 @@
}
if (boot.state == BOOT_NOT_EXPECTED || boot.state == BOOT_EXPECTED_REENTER_TEST
- || boot.state == BOOT_EXPECTED_CONT_TEST_EXEC)
+ || boot.state == BOOT_EXPECTED_CONT_TEST_EXEC
+ || boot.state == BOOT_EXPECTED_ON_SECOND_CHECK)
{
while (tests_list[i] != NULL)
{
@@ -131,6 +132,7 @@
* consider previous run pass and jump to second test function
* of the same test if available.
*/
+
if ((boot.state == BOOT_EXPECTED_REENTER_TEST) && (i == 1))
{
val_print(PRINT_DEBUG, "[Check 1] PASSED\n", 0);
@@ -138,6 +140,13 @@
continue;
}
+ if ((boot.state == BOOT_EXPECTED_ON_SECOND_CHECK) && (i == 1))
+ {
+ val_print(PRINT_DEBUG, "[Check 2] PASSED\n", 0);
+ i = i + 2 ;
+ continue;
+ }
+
if (boot.state != BOOT_EXPECTED_CONT_TEST_EXEC)
{
status = val_set_boot_flag(BOOT_NOT_EXPECTED);
@@ -257,6 +266,12 @@
val_print(PRINT_DEBUG, "[Check 1] PASSED\n", 0);
}
+ if (boot.state == BOOT_EXPECTED_ON_SECOND_CHECK)
+ {
+ test_info.block_num = test_info.block_num + 2;
+ val_print(PRINT_DEBUG, "[Check 2] PASSED\n", 0);
+ }
+
status = val_set_boot_flag(BOOT_NOT_EXPECTED);
if (VAL_ERROR(status))
{
@@ -589,7 +604,8 @@
BOOT_EXPECTED_S,
BOOT_EXPECTED_BUT_FAILED,
BOOT_EXPECTED_REENTER_TEST,
- BOOT_EXPECTED_CONT_TEST_EXEC
+ BOOT_EXPECTED_CONT_TEST_EXEC,
+ BOOT_EXPECTED_ON_SECOND_CHECK
};
status = val_get_boot_flag(&boot.state);