Andrew Scull | c960c03 | 2018-10-24 15:13:35 +0100 | [diff] [blame] | 1 | /* |
Andrew Walbran | 692b325 | 2019-03-07 15:51:31 +0000 | [diff] [blame] | 2 | * Copyright 2019 The Hafnium Authors. |
Andrew Scull | c960c03 | 2018-10-24 15:13:35 +0100 | [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 | c960c03 | 2018-10-24 15:13:35 +0100 | [diff] [blame] | 7 | */ |
| 8 | |
| 9 | #pragma once |
| 10 | |
Maksims Svecovs | 134b8f9 | 2022-03-04 15:14:09 +0000 | [diff] [blame^] | 11 | #include "hf/mm.h" |
| 12 | #include "hf/mpool.h" |
| 13 | |
Andrew Scull | c960c03 | 2018-10-24 15:13:35 +0100 | [diff] [blame] | 14 | /** |
| 15 | * Performs arch specific boot time initialization. |
| 16 | * |
| 17 | * It must only be called once, on first boot and must be called as early as |
| 18 | * possible. |
| 19 | */ |
| 20 | void arch_one_time_init(void); |
Maksims Svecovs | 134b8f9 | 2022-03-04 15:14:09 +0000 | [diff] [blame^] | 21 | |
| 22 | /** |
| 23 | * Updates the hypervisor page table such that the stack address range |
| 24 | * is mapped into the address space at the corresponding address range in the |
| 25 | * architecture-specific mode. |
| 26 | */ |
| 27 | bool arch_stack_mm_init(struct mm_stage1_locked stage1_locked, |
| 28 | struct mpool *ppool); |