1/*
2 * Copyright 2020, Data61, CSIRO (ABN 41 687 119 230)
3 *
4 * SPDX-License-Identifier: GPL-2.0-only
5 */
6#pragma once
7
8#include <elfloader_common.h>
9
10typedef void (*init_arm_kernel_t)(paddr_t ui_p_reg_start,
11                                  paddr_t ui_p_reg_end,
12                                  uintptr_t pv_offset,
13                                  vaddr_t v_entry,
14                                  paddr_t dtb, uint32_t dtb_size);
15
16
17/* Enable the mmu. */
18extern void arm_enable_mmu(void);
19extern void arm_enable_hyp_mmu(void);
20
21
22/* Setup boot VSpace. */
23void init_boot_vspace(struct image_info *kernel_info);
24void init_hyp_boot_vspace(struct image_info *kernel_info);
25
26/* Assembly functions. */
27extern void flush_dcache(void);
28extern void cpu_idle(void);
29
30
31void smp_boot(void);
32
33/* Secure monitor call */
34uint32_t smc(uint32_t, uint32_t, uint32_t, uint32_t);
35