mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2026-06-13 15:03:58 +03:00
tee: optee: support AVB trusted application
Adds configuration option OPTEE_TA_AVB and a header file describing the interface to the Android Verified Boot 2.0 (AVB) trusted application provided by OP-TEE. Tested-by: Igor Opaniuk <igor.opaniuk@linaro.org> Reviewed-by: Igor Opaniuk <igor.opaniuk@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
@@ -9,3 +9,19 @@ config OPTEE
|
||||
mechanism. This driver can request services from OP-TEE, but also
|
||||
handle Remote Procedure Calls (RPC) from OP-TEE needed to
|
||||
execute a service. For more information see: https://www.op-tee.org
|
||||
|
||||
if OPTEE
|
||||
|
||||
menu "OP-TEE options"
|
||||
|
||||
config OPTEE_TA_AVB
|
||||
bool "Support AVB TA"
|
||||
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"
|
||||
and "is_unlocked".
|
||||
|
||||
endmenu
|
||||
|
||||
endif
|
||||
|
||||
@@ -207,3 +207,27 @@ UCLASS_DRIVER(tee) = {
|
||||
.pre_probe = tee_pre_probe,
|
||||
.pre_remove = tee_pre_remove,
|
||||
};
|
||||
|
||||
void tee_optee_ta_uuid_from_octets(struct tee_optee_ta_uuid *d,
|
||||
const u8 s[TEE_UUID_LEN])
|
||||
{
|
||||
d->time_low = ((u32)s[0] << 24) | ((u32)s[1] << 16) |
|
||||
((u32)s[2] << 8) | s[3],
|
||||
d->time_mid = ((u32)s[4] << 8) | s[5];
|
||||
d->time_hi_and_version = ((u32)s[6] << 8) | s[7];
|
||||
memcpy(d->clock_seq_and_node, s + 8, sizeof(d->clock_seq_and_node));
|
||||
}
|
||||
|
||||
void tee_optee_ta_uuid_to_octets(u8 d[TEE_UUID_LEN],
|
||||
const struct tee_optee_ta_uuid *s)
|
||||
{
|
||||
d[0] = s->time_low >> 24;
|
||||
d[1] = s->time_low >> 16;
|
||||
d[2] = s->time_low >> 8;
|
||||
d[3] = s->time_low;
|
||||
d[4] = s->time_mid >> 8;
|
||||
d[5] = s->time_mid;
|
||||
d[6] = s->time_hi_and_version >> 8;
|
||||
d[7] = s->time_hi_and_version;
|
||||
memcpy(d + 8, s->clock_seq_and_node, sizeof(s->clock_seq_and_node));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user