From: Manish V Badarkhe Date: Tue, 21 Jun 2022 17:11:53 +0000 (+0100) Subject: feat(drtm): take DRTM components measurements before DLME launch X-Git-Tag: baikal/aarch64/sdk5.9~100^2~9 X-Git-Url: https://git.baikalelectronics.ru/?a=commitdiff_plain;h=2090e55283c4bf85c7a61735ca0e872745c55896;p=arm-tf.git feat(drtm): take DRTM components measurements before DLME launch Taken measurement of various DRTM components in the Event Log buffer to pass it to DLME. Change-Id: Ic56620161f42596d22bf40d5c83c041cbce0b618 Signed-off-by: Manish V Badarkhe --- diff --git a/services/std_svc/drtm/drtm_main.c b/services/std_svc/drtm/drtm_main.c index 53aafeb4b..a96706d59 100644 --- a/services/std_svc/drtm/drtm_main.c +++ b/services/std_svc/drtm/drtm_main.c @@ -19,6 +19,7 @@ #include #include #include "drtm_main.h" +#include "drtm_measurements.h" #include "drtm_remediation.h" #include #include @@ -392,6 +393,27 @@ static uint64_t drtm_dynamic_launch(uint64_t x1, void *handle) SMC_RET1(handle, ret); } + /* + * The DMA protection is now engaged. Note that any failure mode that + * returns an error to the DRTM-launch caller must now disengage DMA + * protections before returning to the caller. + */ + + ret = drtm_take_measurements(&args); + if (ret != SUCCESS) { + goto err_undo_dma_prot; + } + + SMC_RET1(handle, ret); + +err_undo_dma_prot: + dma_prot_ret = drtm_dma_prot_disengage(); + if (dma_prot_ret != SUCCESS) { + ERROR("%s(): drtm_dma_prot_disengage() failed unexpectedly" + " rc=%d\n", __func__, ret); + panic(); + } + SMC_RET1(handle, ret); }