blob: e00f71f88a8ea07dbe696e178ee5b60808e6f5cf [file] [log] [blame]
Andrew Scull11a4a0c2018-12-29 11:38:31 +00001/*
Andrew Walbran692b3252019-03-07 15:51:31 +00002 * Copyright 2018 The Hafnium Authors.
Andrew Scull11a4a0c2018-12-29 11:38:31 +00003 *
Andrew Walbrane959ec12020-06-17 15:01:09 +01004 * 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.
Andrew Scull11a4a0c2018-12-29 11:38:31 +00007 */
8
Andrew Scull9a6384b2019-01-02 12:08:40 +00009#include "hf/arch/cpu.h"
Andrew Scull11a4a0c2018-12-29 11:38:31 +000010
Fuad Tabba5c738432019-12-02 11:02:42 +000011#include "hf/cpu.h"
Andrew Walbranb5ab43c2020-04-30 11:32:54 +010012#include "hf/ffa.h"
Andrew Walbrand4d2fa12019-10-01 16:47:25 +010013
Andrew Scull11a4a0c2018-12-29 11:38:31 +000014void arch_irq_disable(void)
15{
16 /* TODO */
17}
18
19void arch_irq_enable(void)
20{
21 /* TODO */
22}
23
Fuad Tabba5c738432019-12-02 11:02:42 +000024void arch_regs_reset(struct vcpu *vcpu)
Andrew Scull11a4a0c2018-12-29 11:38:31 +000025{
26 /* TODO */
Fuad Tabba5c738432019-12-02 11:02:42 +000027 (void)vcpu;
Andrew Scull11a4a0c2018-12-29 11:38:31 +000028}
29
30void arch_regs_set_pc_arg(struct arch_regs *r, ipaddr_t pc, uintreg_t arg)
31{
32 (void)pc;
Andrew Walbranf65cfa22019-12-05 11:38:18 +000033 r->arg[0] = arg;
Andrew Scull11a4a0c2018-12-29 11:38:31 +000034}
35
Andrew Walbranb5ab43c2020-04-30 11:32:54 +010036void arch_regs_set_retval(struct arch_regs *r, struct ffa_value v)
Andrew Scull11a4a0c2018-12-29 11:38:31 +000037{
Andrew Walbranf65cfa22019-12-05 11:38:18 +000038 r->arg[0] = v.func;
39 r->arg[1] = v.arg1;
40 r->arg[2] = v.arg2;
41 r->arg[3] = v.arg3;
42 r->arg[4] = v.arg4;
43 r->arg[5] = v.arg5;
44 r->arg[6] = v.arg6;
45 r->arg[7] = v.arg7;
Andrew Scull11a4a0c2018-12-29 11:38:31 +000046}
Olivier Depreze6f7b9d2021-02-01 11:55:48 +010047
48void arch_cpu_init(struct cpu *c, ipaddr_t entry_point)
49{
50 (void)c;
51 (void)entry_point;
52}