aboutsummaryrefslogtreecommitdiff
path: root/tftf/tests/runtime_services/secure_service/test_spm_smmu.c
blob: 0f0a5d9fad545547f56151e1c8f7256dab79b2fd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
/*
 * Copyright (c) 2021-2022, Arm Limited. All rights reserved.
 *
 * SPDX-License-Identifier: BSD-3-Clause
 */

#include <cactus_test_cmds.h>
#include <debug.h>
#include <ffa_endpoints.h>
#include <smccc.h>
#include <test_helpers.h>

static const struct ffa_uuid expected_sp_uuids[] = { {PRIMARY_UUID} };

/**************************************************************************
 * Send a command to SP1 initiate DMA service with the help of a peripheral
 * device upstream of an SMMUv3 IP
 **************************************************************************/
test_result_t test_smmu_spm(void)
{
	struct ffa_value ret;

	/**********************************************************************
	 * Check SPMC has ffa_version and expected FFA endpoints are deployed.
	 **********************************************************************/
	CHECK_SPMC_TESTING_SETUP(1, 0, expected_sp_uuids);

	VERBOSE("Sending command to SP %x for initiating DMA transfer\n",
			SP_ID(1));
	ret = cactus_send_dma_cmd(HYP_ID, SP_ID(1));

	if (cactus_get_response(ret) != CACTUS_SUCCESS) {
		return TEST_RESULT_FAIL;
	}

	return TEST_RESULT_SUCCESS;
}