blob: 606397599ccf47001b4aedcebacfa63114ad5d29 [file] [log] [blame]
Andrew Scullc960c032018-10-24 15:13:35 +01001/*
Andrew Walbran692b3252019-03-07 15:51:31 +00002 * Copyright 2019 The Hafnium Authors.
Andrew Scullc960c032018-10-24 15:13:35 +01003 *
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 Scullc960c032018-10-24 15:13:35 +01007 */
8
9#pragma once
10
Maksims Svecovs134b8f92022-03-04 15:14:09 +000011#include "hf/mm.h"
12#include "hf/mpool.h"
13
Andrew Scullc960c032018-10-24 15:13:35 +010014/**
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 */
20void arch_one_time_init(void);
Maksims Svecovs134b8f92022-03-04 15:14:09 +000021
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 */
27bool arch_stack_mm_init(struct mm_stage1_locked stage1_locked,
28 struct mpool *ppool);