Andrew Scull | 11a4a0c | 2018-12-29 11:38:31 +0000 | [diff] [blame] | 1 | /* |
Andrew Walbran | 692b325 | 2019-03-07 15:51:31 +0000 | [diff] [blame] | 2 | * Copyright 2018 The Hafnium Authors. |
Andrew Scull | 11a4a0c | 2018-12-29 11:38:31 +0000 | [diff] [blame] | 3 | * |
Andrew Walbran | e959ec1 | 2020-06-17 15:01:09 +0100 | [diff] [blame] | 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. | ||||
Andrew Scull | 11a4a0c | 2018-12-29 11:38:31 +0000 | [diff] [blame] | 7 | */ |
8 | |||||
Andrew Scull | 9a6384b | 2019-01-02 12:08:40 +0000 | [diff] [blame] | 9 | #include "hf/arch/cpu.h" |
Andrew Scull | 11a4a0c | 2018-12-29 11:38:31 +0000 | [diff] [blame] | 10 | |
Fuad Tabba | 5c73843 | 2019-12-02 11:02:42 +0000 | [diff] [blame] | 11 | #include "hf/cpu.h" |
Andrew Walbran | b5ab43c | 2020-04-30 11:32:54 +0100 | [diff] [blame] | 12 | #include "hf/ffa.h" |
Madhukar Pappireddy | 2185d0b | 2021-08-03 12:12:48 -0500 | [diff] [blame] | 13 | #include "hf/plat/interrupts.h" |
Andrew Walbran | d4d2fa1 | 2019-10-01 16:47:25 +0100 | [diff] [blame] | 14 | |
Andrew Scull | 11a4a0c | 2018-12-29 11:38:31 +0000 | [diff] [blame] | 15 | void arch_irq_disable(void) |
16 | { | ||||
17 | /* TODO */ | ||||
18 | } | ||||
19 | |||||
20 | void arch_irq_enable(void) | ||||
21 | { | ||||
22 | /* TODO */ | ||||
23 | } | ||||
24 | |||||
Fuad Tabba | 5c73843 | 2019-12-02 11:02:42 +0000 | [diff] [blame] | 25 | void arch_regs_reset(struct vcpu *vcpu) |
Andrew Scull | 11a4a0c | 2018-12-29 11:38:31 +0000 | [diff] [blame] | 26 | { |
27 | /* TODO */ | ||||
Fuad Tabba | 5c73843 | 2019-12-02 11:02:42 +0000 | [diff] [blame] | 28 | (void)vcpu; |
Andrew Scull | 11a4a0c | 2018-12-29 11:38:31 +0000 | [diff] [blame] | 29 | } |
30 | |||||
31 | void arch_regs_set_pc_arg(struct arch_regs *r, ipaddr_t pc, uintreg_t arg) | ||||
32 | { | ||||
33 | (void)pc; | ||||
Andrew Walbran | f65cfa2 | 2019-12-05 11:38:18 +0000 | [diff] [blame] | 34 | r->arg[0] = arg; |
Andrew Scull | 11a4a0c | 2018-12-29 11:38:31 +0000 | [diff] [blame] | 35 | } |
36 | |||||
Andrew Walbran | b5ab43c | 2020-04-30 11:32:54 +0100 | [diff] [blame] | 37 | void arch_regs_set_retval(struct arch_regs *r, struct ffa_value v) |
Andrew Scull | 11a4a0c | 2018-12-29 11:38:31 +0000 | [diff] [blame] | 38 | { |
Andrew Walbran | f65cfa2 | 2019-12-05 11:38:18 +0000 | [diff] [blame] | 39 | r->arg[0] = v.func; |
40 | r->arg[1] = v.arg1; | ||||
41 | r->arg[2] = v.arg2; | ||||
42 | r->arg[3] = v.arg3; | ||||
43 | r->arg[4] = v.arg4; | ||||
44 | r->arg[5] = v.arg5; | ||||
45 | r->arg[6] = v.arg6; | ||||
46 | r->arg[7] = v.arg7; | ||||
Andrew Scull | 11a4a0c | 2018-12-29 11:38:31 +0000 | [diff] [blame] | 47 | } |
Olivier Deprez | e6f7b9d | 2021-02-01 11:55:48 +0100 | [diff] [blame] | 48 | |
49 | void arch_cpu_init(struct cpu *c, ipaddr_t entry_point) | ||||
50 | { | ||||
51 | (void)c; | ||||
52 | (void)entry_point; | ||||
Madhukar Pappireddy | 72454a1 | 2021-08-03 12:21:46 -0500 | [diff] [blame^] | 53 | |
54 | plat_interrupts_controller_hw_init(c); | ||||
Olivier Deprez | e6f7b9d | 2021-02-01 11:55:48 +0100 | [diff] [blame] | 55 | } |