blob: c0c235ec08babf6ad1c1da707b6e715895fa61c4 [file] [log] [blame]
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +02001/*
Max Shvetsov103e0562021-02-04 16:58:31 +00002 * Copyright (c) 2017-2021, Arm Limited. All rights reserved.
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +02003 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6
Antonio Nino Diaz1486f3b2018-06-26 10:30:10 +01007#ifndef CACTUS_TESTS_H
8#define CACTUS_TESTS_H
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +02009
Max Shvetsov103e0562021-02-04 16:58:31 +000010#include <spm_common.h>
Max Shvetsovc32f4782020-06-23 09:41:15 +010011
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +020012/*
13 * Test functions
14 */
15
16/*
Olivier Deprez881b1992020-12-01 15:34:34 +010017 * Alter SIMD vectors to check saving of the context while switching between
18 * the normal world and the secure world.
19 */
20void fill_simd_vectors(void);
21
22/*
J-Alves9f6f0142020-06-17 15:37:59 +010023 * Test to FFA interfaces.
24 */
J-Alves63cdaa72020-10-08 17:22:45 +010025void ffa_memory_management_test(struct mailbox_buffers *mb, ffa_vm_id_t vm_id,
26 ffa_vm_id_t sender, uint32_t mem_func,
27 uint64_t handle);
28
Max Shvetsovc32f4782020-06-23 09:41:15 +010029void ffa_tests(struct mailbox_buffers *mb);
J-Alves9f6f0142020-06-17 15:37:59 +010030
31/*
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +020032 * Test other things like the version number returned by SPM.
33 */
34void misc_tests(void);
35
36/*
37 * The Arm TF is responsible for setting up system registers on behalf of the
38 * Secure Partition. For example, TF is supposed to allow Secure Partitions to
39 * perform cache maintenance operations (by setting the SCTLR_EL1.UCI bit).
40 *
41 * This function attempts to verify that we indeed have access to these system
42 * features from S-EL0. These tests report their results on the UART. They do
43 * not recover from a failure : when an error is encountered they will most
44 * likely trigger an exception into S-EL1.
45 */
46void system_setup_tests(void);
47
48/*
49 * Exercise the SP_MEMORY_ATTRIBUTES_SET_AARCH64 SMC interface. A variety of
50 * valid and invalid requests to change memory attributes are tested.
51 *
52 * These tests report their results on the UART. They do not recover from a
53 * failure : when an error is encountered they endlessly loop.
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +020054 */
Antonio Nino Diaz1486f3b2018-06-26 10:30:10 +010055void mem_attr_changes_tests(void);
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +020056
Antonio Nino Diaz1486f3b2018-06-26 10:30:10 +010057#endif /* CACTUS_TESTS_H */