1 /* SPDX-License-Identifier: GPL-2.0+ */
2 /*
3  * EFI_DT_FIXUP_PROTOCOL
4  *
5  * Copyright (c) 2020 Heinrich Schuchardt
6  */
7 
8 #include <efi_api.h>
9 
10 #define EFI_DT_FIXUP_PROTOCOL_REVISION 0x00010000
11 
12 /* Add nodes and update properties */
13 #define EFI_DT_APPLY_FIXUPS    0x00000001
14 /*
15  * Reserve memory according to the /reserved-memory node
16  * and the memory reservation block
17  */
18 #define EFI_DT_RESERVE_MEMORY  0x00000002
19 /* Install the device-tree as configuration table */
20 #define EFI_DT_INSTALL_TABLE   0x00000004
21 
22 #define EFI_DT_ALL (EFI_DT_APPLY_FIXUPS | \
23 		    EFI_DT_RESERVE_MEMORY | \
24 		    EFI_DT_INSTALL_TABLE)
25 
26 struct efi_dt_fixup_protocol {
27 	u64 revision;
28 	efi_status_t (EFIAPI *fixup) (struct efi_dt_fixup_protocol *this,
29 				      void *dtb,
30 				      efi_uintn_t *buffer_size,
31 				      u32 flags);
32 };
33 
34 extern struct efi_dt_fixup_protocol efi_dt_fixup_prot;
35 extern const efi_guid_t efi_guid_dt_fixup_protocol;
36