blob: 6eca2116e03b20ca49305823ff91174b225ce773 [file] [log] [blame]
Raghu Krishnamurthydd9d6c42021-05-02 01:11:26 -07001/*
2 * Copyright 2021 The Hafnium Authors.
3 *
4 * Use of this source code is governed by a BSD-style
5 * license that can be found in the LICENSE file or at
6 * https://opensource.org/licenses/BSD-3-Clause.
7 */
8
9#include <stdalign.h>
10#include <stdint.h>
11
12#include "hf/ffa.h"
13#include "hf/mm.h"
14#include "hf/std.h"
15
16#include "vmapi/hf/call.h"
17
18#include "test/hftest.h"
Federico Recanati69c554b2022-03-14 15:48:28 +010019#include "test/vmapi/ffa.h"
Raghu Krishnamurthydd9d6c42021-05-02 01:11:26 -070020
21alignas(4096) uint8_t kstack[4096];
22
23HFTEST_ENABLE();
24
25static struct hftest_context global_context;
26
27struct hftest_context *hftest_get_context(void)
28{
29 return &global_context;
30}
31
Federico Recanati632fa142022-04-27 13:14:58 +020032bool sel1_secure_service = false;
33
Raghu Krishnamurthy50af6602021-12-12 15:23:09 -080034void test_main_sp(bool);
Raghu Krishnamurthydd9d6c42021-05-02 01:11:26 -070035
36noreturn void abort(void)
37{
38 HFTEST_LOG("Service contained failures.");
39 /* Cause a fault, as a secondary can't power down the machine. */
40 *((volatile uint8_t *)1) = 1;
41
42 /* This should never be reached, but to make the compiler happy... */
43 for (;;) {
44 }
45}
46
Raghu Krishnamurthy50af6602021-12-12 15:23:09 -080047noreturn void kmain(void)
Raghu Krishnamurthydd9d6c42021-05-02 01:11:26 -070048{
Federico Recanati69c554b2022-03-14 15:48:28 +010049 /* Register RX/TX buffers via FFA_RXTX_MAP */
50 set_up_mailbox();
51
Raghu Krishnamurthy50af6602021-12-12 15:23:09 -080052 test_main_sp(true);
Raghu Krishnamurthydd9d6c42021-05-02 01:11:26 -070053
54 /* Do not expect to get to this point, so abort. */
55 abort();
56}