xref: /openbmc/linux/arch/loongarch/include/asm/efi.h (revision 628c3bb40e9a8cefc0a6fde28b7b66bfe46d1dc2)
1*628c3bb4SHuacai Chen /* SPDX-License-Identifier: GPL-2.0 */
2*628c3bb4SHuacai Chen /*
3*628c3bb4SHuacai Chen  * Copyright (C) 2020-2022 Loongson Technology Corporation Limited
4*628c3bb4SHuacai Chen  */
5*628c3bb4SHuacai Chen #ifndef _ASM_LOONGARCH_EFI_H
6*628c3bb4SHuacai Chen #define _ASM_LOONGARCH_EFI_H
7*628c3bb4SHuacai Chen 
8*628c3bb4SHuacai Chen #include <linux/efi.h>
9*628c3bb4SHuacai Chen 
10*628c3bb4SHuacai Chen void __init efi_init(void);
11*628c3bb4SHuacai Chen void __init efi_runtime_init(void);
12*628c3bb4SHuacai Chen void efifb_setup_from_dmi(struct screen_info *si, const char *opt);
13*628c3bb4SHuacai Chen 
14*628c3bb4SHuacai Chen #define ARCH_EFI_IRQ_FLAGS_MASK  0x00000004  /* Bit 2: CSR.CRMD.IE */
15*628c3bb4SHuacai Chen 
16*628c3bb4SHuacai Chen #define arch_efi_call_virt_setup()               \
17*628c3bb4SHuacai Chen ({                                               \
18*628c3bb4SHuacai Chen })
19*628c3bb4SHuacai Chen 
20*628c3bb4SHuacai Chen #define arch_efi_call_virt(p, f, args...)        \
21*628c3bb4SHuacai Chen ({                                               \
22*628c3bb4SHuacai Chen 	efi_##f##_t * __f;                       \
23*628c3bb4SHuacai Chen 	__f = p->f;                              \
24*628c3bb4SHuacai Chen 	__f(args);                               \
25*628c3bb4SHuacai Chen })
26*628c3bb4SHuacai Chen 
27*628c3bb4SHuacai Chen #define arch_efi_call_virt_teardown()            \
28*628c3bb4SHuacai Chen ({                                               \
29*628c3bb4SHuacai Chen })
30*628c3bb4SHuacai Chen 
31*628c3bb4SHuacai Chen #define EFI_ALLOC_ALIGN		SZ_64K
32*628c3bb4SHuacai Chen 
33*628c3bb4SHuacai Chen struct screen_info *alloc_screen_info(void);
34*628c3bb4SHuacai Chen void free_screen_info(struct screen_info *si);
35*628c3bb4SHuacai Chen 
36*628c3bb4SHuacai Chen static inline unsigned long efi_get_max_initrd_addr(unsigned long image_addr)
37*628c3bb4SHuacai Chen {
38*628c3bb4SHuacai Chen 	return ULONG_MAX;
39*628c3bb4SHuacai Chen }
40*628c3bb4SHuacai Chen 
41*628c3bb4SHuacai Chen #endif /* _ASM_LOONGARCH_EFI_H */
42