[PATCH v2 0/5] TEE: minor cleanup

- Address some spelling errors and typos - Support CMD_OPTEE_RPMB for SANDBOX configurations and add python tests - Remove common.h inclusion for drivers/tee
Changes in v2: - Fixed chimp_optee.c:37:9: error: implicit declaration of function 'memset' - Applied R-b and T-b tags
Igor Opaniuk (5): tee: optee: fix description in Kconfig tee: sandbox: fix spelling errors cmd: optee_rpmb: build cmd for sandbox test: py: add optee_rpmb tests tee: remove common.h inclusion
cmd/Kconfig | 4 +++- drivers/tee/broadcom/chimp_optee.c | 3 ++- drivers/tee/optee/Kconfig | 2 +- drivers/tee/optee/core.c | 1 - drivers/tee/optee/i2c.c | 1 - drivers/tee/optee/rpmb.c | 1 - drivers/tee/optee/supplicant.c | 2 +- drivers/tee/sandbox.c | 10 +++++----- drivers/tee/tee-uclass.c | 1 - test/py/tests/test_optee_rpmb.py | 20 ++++++++++++++++++++ 10 files changed, 32 insertions(+), 13 deletions(-) create mode 100644 test/py/tests/test_optee_rpmb.py

Fix OPTEE_TA_AVB symbol description in Kconfig: s/"write"rb"/"write_rb"/g
Reviewed-by: Heinrich Schuchardt xypron.glpk@gmx.de Reviewed-by: Ilias Apalodimas ilias.apalodimas@linaro.org Signed-off-by: Igor Opaniuk igor.opaniuk@gmail.com ---
Changes in v2: - Applied R-b tags
drivers/tee/optee/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/tee/optee/Kconfig b/drivers/tee/optee/Kconfig index 9dc65b0501e..db0bcfa6f15 100644 --- a/drivers/tee/optee/Kconfig +++ b/drivers/tee/optee/Kconfig @@ -19,7 +19,7 @@ config OPTEE_TA_AVB default y help Enables support for the AVB Trusted Application (TA) in OP-TEE. - The TA can support the "avb" subcommands "read_rb", "write"rb" + The TA can support the "avb" subcommands "read_rb", "write_rb" and "is_unlocked".
config OPTEE_TA_RPC_TEST

Fix spelling errors in comments.
Reviewed-by: Heinrich Schuchardt xypron.glpk@gmx.de Reviewed-by: Ilias Apalodimas ilias.apalodimas@linaro.org Signed-off-by: Igor Opaniuk igor.opaniuk@gmail.com ---
Changes in v2: - Applied R-b tags
drivers/tee/sandbox.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/tee/sandbox.c b/drivers/tee/sandbox.c index 86219a9bb1a..ec66401878c 100644 --- a/drivers/tee/sandbox.c +++ b/drivers/tee/sandbox.c @@ -14,7 +14,7 @@ #include "optee/optee_private.h"
/* - * The sandbox tee driver tries to emulate a generic Trusted Exectution + * The sandbox tee driver tries to emulate a generic Trusted Execution * Environment (TEE) with the Trusted Applications (TA) OPTEE_TA_AVB and * OPTEE_TA_RPC_TEST available. */ @@ -23,7 +23,7 @@ static const u32 pstorage_max = 16; /** * struct ta_entry - TA entries * @uuid: UUID of an emulated TA - * @open_session Called when a session is openened to the TA + * @open_session Called when a session is opened to the TA * @invoke_func Called when a function in the TA is to be invoked * * This struct is used to register TAs in this sandbox emulation of a TEE. @@ -140,8 +140,8 @@ static u32 pta_scp03_invoke_func(struct udevice *dev, u32 func, uint num_params, provisioned = true;
/* - * Either way, we asume both operations succeeded and that - * the communication channel has now been stablished + * Either way, we assume both operations succeeded and that + * the communication channel has now been established */
return TEE_SUCCESS;

Support CMD_OPTEE_RPMB for SANDBOX configurations. Test:
$ ./u-boot -d arch/sandbox/dts/test.dtb ... => optee_rpmb write_pvalue test_variable test_value Wrote 11 bytes => optee_rpmb read_pvalue test_variable 11 Read 11 bytes, value = test_value
Reviewed-by: Mattijs Korpershoek mkorpershoek@baylibre.com Tested-by: Mattijs Korpershoek mkorpershoek@baylibre.com Signed-off-by: Igor Opaniuk igor.opaniuk@gmail.com ---
Changes in v2: - Applied R-b and T-b tags
cmd/Kconfig | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/cmd/Kconfig b/cmd/Kconfig index a86b5705174..8ad8c0c542c 100644 --- a/cmd/Kconfig +++ b/cmd/Kconfig @@ -1370,7 +1370,9 @@ config CMD_CLONE
config CMD_OPTEE_RPMB bool "Enable read/write support on RPMB via OPTEE" - depends on SUPPORT_EMMC_RPMB && OPTEE + depends on (SUPPORT_EMMC_RPMB && OPTEE) || SANDBOX_TEE + default y if SANDBOX_TEE + select OPTEE_TA_AVB if SANDBOX_TEE help Enable the commands for reading, writing persistent named values in the Replay Protection Memory Block partition in eMMC by

Add read/write tests for optee_rpmb cmd.
Signed-off-by: Igor Opaniuk igor.opaniuk@gmail.com ---
(no changes since v1)
test/py/tests/test_optee_rpmb.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 test/py/tests/test_optee_rpmb.py
diff --git a/test/py/tests/test_optee_rpmb.py b/test/py/tests/test_optee_rpmb.py new file mode 100644 index 00000000000..8a081b5c494 --- /dev/null +++ b/test/py/tests/test_optee_rpmb.py @@ -0,0 +1,20 @@ +# SPDX-License-Identifier: GPL-2.0+ +# +# Tests for OP-TEE RPMB read/write support + +""" +This tests optee_rpmb cmd in U-Boot +""" + +import pytest +import u_boot_utils as util + +@pytest.mark.buildconfigspec('cmd_optee_rpmb') +def test_optee_rpmb_read_write(u_boot_console): + """Test OP-TEE RPMB cmd read/write + """ + response = u_boot_console.run_command('optee_rpmb write_pvalue test_variable test_value') + assert response == 'Wrote 11 bytes' + + response = u_boot_console.run_command('optee_rpmb read_pvalue test_variable 11') + assert response == 'Read 11 bytes, value = test_value' \ No newline at end of file

The usage of the common.h include file is deprecated [1], and has already been removed from several files. Get rid of all inclusions in the "drivers/tee" directory, and replace it with required include files directly where needed.
[1] doc/develop/codingstyle.rst
Signed-off-by: Igor Opaniuk igor.opaniuk@gmail.com ---
Changes in v2: - Fixed chimp_optee.c:37:9: error: implicit declaration of function 'memset'
drivers/tee/broadcom/chimp_optee.c | 3 ++- drivers/tee/optee/core.c | 1 - drivers/tee/optee/i2c.c | 1 - drivers/tee/optee/rpmb.c | 1 - drivers/tee/optee/supplicant.c | 2 +- drivers/tee/sandbox.c | 2 +- drivers/tee/tee-uclass.c | 1 - 7 files changed, 4 insertions(+), 7 deletions(-)
diff --git a/drivers/tee/broadcom/chimp_optee.c b/drivers/tee/broadcom/chimp_optee.c index 37f9b094f76..bd146ef2899 100644 --- a/drivers/tee/broadcom/chimp_optee.c +++ b/drivers/tee/broadcom/chimp_optee.c @@ -3,9 +3,10 @@ * Copyright 2020 Broadcom. */
-#include <common.h> #include <tee.h> #include <broadcom/chimp.h> +#include <linux/errno.h> +#include <string.h>
#ifdef CONFIG_CHIMP_OPTEE
diff --git a/drivers/tee/optee/core.c b/drivers/tee/optee/core.c index 47f845cffe3..5fc0505c788 100644 --- a/drivers/tee/optee/core.c +++ b/drivers/tee/optee/core.c @@ -3,7 +3,6 @@ * Copyright (c) 2018-2020 Linaro Limited */
-#include <common.h> #include <cpu_func.h> #include <dm.h> #include <dm/device_compat.h> diff --git a/drivers/tee/optee/i2c.c b/drivers/tee/optee/i2c.c index ef4e10f9912..e3fb99897c5 100644 --- a/drivers/tee/optee/i2c.c +++ b/drivers/tee/optee/i2c.c @@ -3,7 +3,6 @@ * Copyright (c) 2020 Foundries.io Ltd */
-#include <common.h> #include <dm.h> #include <i2c.h> #include <tee.h> diff --git a/drivers/tee/optee/rpmb.c b/drivers/tee/optee/rpmb.c index 5bc13757ea8..bacced6af6c 100644 --- a/drivers/tee/optee/rpmb.c +++ b/drivers/tee/optee/rpmb.c @@ -3,7 +3,6 @@ * Copyright (c) 2018 Linaro Limited */
-#include <common.h> #include <dm.h> #include <log.h> #include <tee.h> diff --git a/drivers/tee/optee/supplicant.c b/drivers/tee/optee/supplicant.c index f9dd874b594..8a426f53ba8 100644 --- a/drivers/tee/optee/supplicant.c +++ b/drivers/tee/optee/supplicant.c @@ -3,10 +3,10 @@ * Copyright (c) 2018, Linaro Limited */
-#include <common.h> #include <log.h> #include <malloc.h> #include <tee.h> +#include <linux/errno.h> #include <linux/types.h>
#include "optee_msg.h" diff --git a/drivers/tee/sandbox.c b/drivers/tee/sandbox.c index ec66401878c..8ad7c09efdd 100644 --- a/drivers/tee/sandbox.c +++ b/drivers/tee/sandbox.c @@ -2,7 +2,7 @@ /* * Copyright (C) 2018 Linaro Limited */ -#include <common.h> + #include <dm.h> #include <sandboxtee.h> #include <tee.h> diff --git a/drivers/tee/tee-uclass.c b/drivers/tee/tee-uclass.c index 52412a4098e..0194d732193 100644 --- a/drivers/tee/tee-uclass.c +++ b/drivers/tee/tee-uclass.c @@ -5,7 +5,6 @@
#define LOG_CATEGORY UCLASS_TEE
-#include <common.h> #include <cpu_func.h> #include <dm.h> #include <log.h>

Hi Igor,
On Sun, 3 Mar 2024 at 00:01, Igor Opaniuk igor.opaniuk@gmail.com wrote:
- Address some spelling errors and typos
- Support CMD_OPTEE_RPMB for SANDBOX configurations and add python tests
- Remove common.h inclusion for drivers/tee
Changes in v2:
- Fixed chimp_optee.c:37:9: error: implicit declaration of function 'memset'
- Applied R-b and T-b tags
https://source.denx.de/u-boot/custodians/u-boot-tpm/-/pipelines/19808 this seems to have a few failures
Cheers /Ilias
Igor Opaniuk (5): tee: optee: fix description in Kconfig tee: sandbox: fix spelling errors cmd: optee_rpmb: build cmd for sandbox test: py: add optee_rpmb tests tee: remove common.h inclusion
cmd/Kconfig | 4 +++- drivers/tee/broadcom/chimp_optee.c | 3 ++- drivers/tee/optee/Kconfig | 2 +- drivers/tee/optee/core.c | 1 - drivers/tee/optee/i2c.c | 1 - drivers/tee/optee/rpmb.c | 1 - drivers/tee/optee/supplicant.c | 2 +- drivers/tee/sandbox.c | 10 +++++----- drivers/tee/tee-uclass.c | 1 - test/py/tests/test_optee_rpmb.py | 20 ++++++++++++++++++++ 10 files changed, 32 insertions(+), 13 deletions(-) create mode 100644 test/py/tests/test_optee_rpmb.py
-- 2.34.1

Hi Ilias,
On Mon, Mar 4, 2024 at 12:16 PM Ilias Apalodimas < ilias.apalodimas@linaro.org> wrote:
Hi Igor,
On Sun, 3 Mar 2024 at 00:01, Igor Opaniuk igor.opaniuk@gmail.com wrote:
- Address some spelling errors and typos
- Support CMD_OPTEE_RPMB for SANDBOX configurations and add python tests
- Remove common.h inclusion for drivers/tee
Changes in v2:
- Fixed chimp_optee.c:37:9: error: implicit declaration of function
'memset'
- Applied R-b and T-b tags
https://source.denx.de/u-boot/custodians/u-boot-tpm/-/pipelines/19808 this seems to have a few failures
Cheers /Ilias
Igor Opaniuk (5): tee: optee: fix description in Kconfig tee: sandbox: fix spelling errors cmd: optee_rpmb: build cmd for sandbox test: py: add optee_rpmb tests tee: remove common.h inclusion
cmd/Kconfig | 4 +++- drivers/tee/broadcom/chimp_optee.c | 3 ++- drivers/tee/optee/Kconfig | 2 +- drivers/tee/optee/core.c | 1 - drivers/tee/optee/i2c.c | 1 - drivers/tee/optee/rpmb.c | 1 - drivers/tee/optee/supplicant.c | 2 +- drivers/tee/sandbox.c | 10 +++++----- drivers/tee/tee-uclass.c | 1 - test/py/tests/test_optee_rpmb.py | 20 ++++++++++++++++++++ 10 files changed, 32 insertions(+), 13 deletions(-) create mode 100644 test/py/tests/test_optee_rpmb.py
-- 2.34.1
It looks like it's a side effect, the test I added revealed a bug in "cmd/optee_rpmb.c" implementation, which I didn't touch (looks like it doesn't close the tee session automatically).
I'll address it and add a fix to the patch series.
Just a quick question, are Azure pipelines still used (so I can configure my own account and run all these before sending patches, as explained in [1])
[1] https://docs.u-boot.org/en/latest/develop/ci_testing.html

On Mon, Mar 04, 2024 at 04:50:48PM +0100, Igor Opaniuk wrote:
Hi Ilias,
On Mon, Mar 4, 2024 at 12:16 PM Ilias Apalodimas < ilias.apalodimas@linaro.org> wrote:
Hi Igor,
On Sun, 3 Mar 2024 at 00:01, Igor Opaniuk igor.opaniuk@gmail.com wrote:
- Address some spelling errors and typos
- Support CMD_OPTEE_RPMB for SANDBOX configurations and add python tests
- Remove common.h inclusion for drivers/tee
Changes in v2:
- Fixed chimp_optee.c:37:9: error: implicit declaration of function
'memset'
- Applied R-b and T-b tags
https://source.denx.de/u-boot/custodians/u-boot-tpm/-/pipelines/19808 this seems to have a few failures
Cheers /Ilias
Igor Opaniuk (5): tee: optee: fix description in Kconfig tee: sandbox: fix spelling errors cmd: optee_rpmb: build cmd for sandbox test: py: add optee_rpmb tests tee: remove common.h inclusion
cmd/Kconfig | 4 +++- drivers/tee/broadcom/chimp_optee.c | 3 ++- drivers/tee/optee/Kconfig | 2 +- drivers/tee/optee/core.c | 1 - drivers/tee/optee/i2c.c | 1 - drivers/tee/optee/rpmb.c | 1 - drivers/tee/optee/supplicant.c | 2 +- drivers/tee/sandbox.c | 10 +++++----- drivers/tee/tee-uclass.c | 1 - test/py/tests/test_optee_rpmb.py | 20 ++++++++++++++++++++ 10 files changed, 32 insertions(+), 13 deletions(-) create mode 100644 test/py/tests/test_optee_rpmb.py
-- 2.34.1
It looks like it's a side effect, the test I added revealed a bug in "cmd/optee_rpmb.c" implementation, which I didn't touch (looks like it doesn't close the tee session automatically).
I'll address it and add a fix to the patch series.
Just a quick question, are Azure pipelines still used (so I can configure my own account and run all these before sending patches, as explained in [1])
[1] https://docs.u-boot.org/en/latest/develop/ci_testing.html
Yes _but_ sadly sometimes the tests fail and need to be re-run due to being (I believe) on the free class of machines and so they're a little too slow and we race condition fail perhaps.

On 04.03.24 16:50, Igor Opaniuk wrote:
Hi Ilias,
On Mon, Mar 4, 2024 at 12:16 PM Ilias Apalodimas <ilias.apalodimas@linaro.org mailto:ilias.apalodimas@linaro.org> wrote:
Hi Igor, On Sun, 3 Mar 2024 at 00:01, Igor Opaniuk <igor.opaniuk@gmail.com <mailto:igor.opaniuk@gmail.com>> wrote: > > > - Address some spelling errors and typos > - Support CMD_OPTEE_RPMB for SANDBOX configurations and add python tests > - Remove common.h inclusion for drivers/tee > > Changes in v2: > - Fixed chimp_optee.c:37:9: error: implicit declaration of function 'memset' > - Applied R-b and T-b tags https://source.denx.de/u-boot/custodians/u-boot-tpm/-/pipelines/19808 <https://source.denx.de/u-boot/custodians/u-boot-tpm/-/pipelines/19808> this seems to have a few failures Cheers /Ilias > > Igor Opaniuk (5): > tee: optee: fix description in Kconfig > tee: sandbox: fix spelling errors > cmd: optee_rpmb: build cmd for sandbox > test: py: add optee_rpmb tests > tee: remove common.h inclusion > > cmd/Kconfig | 4 +++- > drivers/tee/broadcom/chimp_optee.c | 3 ++- > drivers/tee/optee/Kconfig | 2 +- > drivers/tee/optee/core.c | 1 - > drivers/tee/optee/i2c.c | 1 - > drivers/tee/optee/rpmb.c | 1 - > drivers/tee/optee/supplicant.c | 2 +- > drivers/tee/sandbox.c | 10 +++++----- > drivers/tee/tee-uclass.c | 1 - > test/py/tests/test_optee_rpmb.py | 20 ++++++++++++++++++++ > 10 files changed, 32 insertions(+), 13 deletions(-) > create mode 100644 test/py/tests/test_optee_rpmb.py > > -- > 2.34.1 >
It looks like it's a side effect, the test I added revealed a bug in "cmd/optee_rpmb.c" implementation, which I didn't touch (looks like it doesn't close the tee session automatically).
I'll address it and add a fix to the patch series.
Just a quick question, are Azure pipelines still used (so I can configure my own account and run all these before sending patches, as explained in [1])
[1] https://docs.u-boot.org/en/latest/develop/ci_testing.html https://docs.u-boot.org/en/latest/develop/ci_testing.html
Yes, Azure CI is in use (see https://github.com/u-boot/u-boot).
Creating a pull request for https://github.com/u-boot/u-boot may be the easier way for a single test run.
Regards
Heinrich

Hi Ilias,
On Mon, Mar 4, 2024 at 12:16 PM Ilias Apalodimas < ilias.apalodimas@linaro.org> wrote:
Hi Igor,
On Sun, 3 Mar 2024 at 00:01, Igor Opaniuk igor.opaniuk@gmail.com wrote:
- Address some spelling errors and typos
- Support CMD_OPTEE_RPMB for SANDBOX configurations and add python tests
- Remove common.h inclusion for drivers/tee
Changes in v2:
- Fixed chimp_optee.c:37:9: error: implicit declaration of function
'memset'
- Applied R-b and T-b tags
https://source.denx.de/u-boot/custodians/u-boot-tpm/-/pipelines/19808 this seems to have a few failures
Cheers /Ilias
Igor Opaniuk (5): tee: optee: fix description in Kconfig tee: sandbox: fix spelling errors cmd: optee_rpmb: build cmd for sandbox test: py: add optee_rpmb tests tee: remove common.h inclusion
cmd/Kconfig | 4 +++- drivers/tee/broadcom/chimp_optee.c | 3 ++- drivers/tee/optee/Kconfig | 2 +- drivers/tee/optee/core.c | 1 - drivers/tee/optee/i2c.c | 1 - drivers/tee/optee/rpmb.c | 1 - drivers/tee/optee/supplicant.c | 2 +- drivers/tee/sandbox.c | 10 +++++----- drivers/tee/tee-uclass.c | 1 - test/py/tests/test_optee_rpmb.py | 20 ++++++++++++++++++++ 10 files changed, 32 insertions(+), 13 deletions(-) create mode 100644 test/py/tests/test_optee_rpmb.py
-- 2.34.1
I've sent v3.
CI build with python tests passing successfully: https://dev.azure.com/igoropaniuk/u-boot/_build/results?buildId=28&view=...
participants (4)
-
Heinrich Schuchardt
-
Igor Opaniuk
-
Ilias Apalodimas
-
Tom Rini