blob: 2e2f56843b393908d7a5fae0feb5c6cd3ccdc065 [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"
19
20alignas(4096) uint8_t kstack[4096];
21
22HFTEST_ENABLE();
23
24static struct hftest_context global_context;
25
26struct hftest_context *hftest_get_context(void)
27{
28 return &global_context;
29}
30
Raghu Krishnamurthy50af6602021-12-12 15:23:09 -080031void test_main_sp(bool);
Raghu Krishnamurthydd9d6c42021-05-02 01:11:26 -070032
33noreturn void abort(void)
34{
35 HFTEST_LOG("Service contained failures.");
36 /* Cause a fault, as a secondary can't power down the machine. */
37 *((volatile uint8_t *)1) = 1;
38
39 /* This should never be reached, but to make the compiler happy... */
40 for (;;) {
41 }
42}
43
Raghu Krishnamurthy50af6602021-12-12 15:23:09 -080044noreturn void kmain(void)
Raghu Krishnamurthydd9d6c42021-05-02 01:11:26 -070045{
Raghu Krishnamurthy50af6602021-12-12 15:23:09 -080046 test_main_sp(true);
Raghu Krishnamurthydd9d6c42021-05-02 01:11:26 -070047
48 /* Do not expect to get to this point, so abort. */
49 abort();
50}