Line data Source code
1 0 : /*
2 : * Copyright (c) 2020 Intel Corporation
3 : *
4 : * SPDX-License-Identifier: Apache-2.0
5 : */
6 :
7 : #ifndef ZEPHYR_ARCH_X86_INCLUDE_EFI_H_
8 : #define ZEPHYR_ARCH_X86_INCLUDE_EFI_H_
9 :
10 : /* Boot type value (see prep_c.c) */
11 0 : #define EFI_BOOT_TYPE 2
12 :
13 : #ifndef _ASMLANGUAGE
14 :
15 0 : struct efi_boot_arg {
16 0 : void *efi_systab; /* EFI system table */
17 0 : unsigned long long efi_cr3; /* EFI page table */
18 0 : void *acpi_rsdp;
19 : };
20 :
21 : #if defined(CONFIG_X86_EFI)
22 :
23 : /** @brief Initialize usage of EFI gathered information
24 : *
25 : * @param efi_arg The given pointer to EFI prepared boot argument
26 : */
27 : void efi_init(struct efi_boot_arg *efi_arg);
28 :
29 : /** @brief Get the ACPI RSDP table pointer from EFI boot argument
30 : *
31 : * @return A valid pointer to ACPI RSDP table or NULL otherwise.
32 : */
33 : void *efi_get_acpi_rsdp(void);
34 :
35 : #else /* CONFIG_X86_EFI */
36 :
37 0 : #define efi_init(...)
38 0 : #define efi_get_acpi_rsdp(...) NULL
39 :
40 : #endif /* CONFIG_X86_EFI */
41 :
42 : #endif /* _ASMLANGUAGE */
43 :
44 : #endif /* ZEPHYR_ARCH_X86_INCLUDE_EFI_H_ */
|