blob: c3d7317ebb9344269041b0f5a93102750b8deb71 [file] [log] [blame]
Mate Toth-Pald3c77662019-02-20 16:23:00 +01001/*
2 * Copyright (c) 2019, Arm Limited. All rights reserved.
3 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 *
6 */
7
8#ifndef __TFM_PLAT_TEST_H__
9#define __TFM_PLAT_TEST_H__
10
11#include "tfm_plat_defs.h"
12
13/**
14 * \brief Busy wait until the user presses a specific button
15 */
16TFM_LINK_SET_RO_IN_PARTITION_SECTION("TFM_SP_CORE_TEST")
17void tfm_plat_test_wait_user_button_pressed(void);
18
19/**
20 * \brief Busy wait until the user releases a specific button
21 */
22TFM_LINK_SET_RO_IN_PARTITION_SECTION("TFM_SP_CORE_TEST")
23void tfm_plat_test_wait_user_button_released(void);
24
25/**
26 * \brief Get the status of the LEDs used by tests
27 *
28 * \return Returns the current status of LEDs
29 */
30TFM_LINK_SET_RO_IN_PARTITION_SECTION("TFM_SP_CORE_TEST")
31uint32_t tfm_plat_test_get_led_status(void);
32
33/**
34 * \brief Sets the status of the LEDs used by tests
35 *
36 * \param[in] status The status to be set
37 */
38TFM_LINK_SET_RO_IN_PARTITION_SECTION("TFM_SP_CORE_TEST")
39void tfm_plat_test_set_led_status(uint32_t status);
40
41/**
42 * \brief Get the mask of the LEDs used for testing
43 *
44 * \return Returns the mask of the LEDs used for testing
45 */
46TFM_LINK_SET_RO_IN_PARTITION_SECTION("TFM_SP_CORE_TEST")
47uint32_t tfm_plat_test_get_userled_mask(void);
48
Mate Toth-Pala9f8e9e2019-03-05 16:11:14 +010049/**
50 * \brief starts Secure timer
51 *
52 * Configures a timer to start counting, and generate a timer interrupt after a
53 * certain amount of time. For the test case to be useful, the timeout value of
54 * the timer should be long enough so that the test service can go to the state
55 * where it starts waiting for the interrupt.
56 */
57void tfm_plat_test_secure_timer_start(void);
58
59/**
60 * \brief Stops the Secure timer and clears the timer interrupt.
61 */
62void tfm_plat_test_secure_timer_stop(void);
63
64/**
65 * \brief starts Non-secure timer
66 *
67 * Configures a timer to start counting, and generate a timer interrupt after a
68 * certain amount of time. For the test case to be useful, the timeout value of
69 * the timer should be long enough so that the test service can go to the state
70 * where it starts waiting for the interrupt.
71 */
72void tfm_plat_test_non_secure_timer_start(void);
73
74/**
75 * \brief Stops the non-Secure timer and clears the timer interrupt.
76 */
77void tfm_plat_test_non_secure_timer_stop(void);
78
79
Mate Toth-Pald3c77662019-02-20 16:23:00 +010080#endif /* __TFM_PLAT_TEST_H__ */