blob: 9066e8dd8e1b58a893910edd6e18b4fbbf095a9f [file] [log] [blame]
Heinrich Schuchardt2c1e2242020-12-13 10:30:24 +01001/* 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_GUID \
11 EFI_GUID(0xe617d64c, 0xfe08, 0x46da, 0xf4, 0xdc, \
12 0xbb, 0xd5, 0x87, 0x0c, 0x73, 0x00)
13
14#define EFI_DT_FIXUP_PROTOCOL_REVISION 0x00010000
15
16/* Add nodes and update properties */
17#define EFI_DT_APPLY_FIXUPS 0x00000001
18/*
19 * Reserve memory according to the /reserved-memory node
20 * and the memory reservation block
21 */
22#define EFI_DT_RESERVE_MEMORY 0x00000002
23/* Install the device-tree as configuration table */
24#define EFI_DT_INSTALL_TABLE 0x00000004
25
26#define EFI_DT_ALL (EFI_DT_APPLY_FIXUPS | \
27 EFI_DT_RESERVE_MEMORY | \
28 EFI_DT_INSTALL_TABLE)
29
30struct efi_dt_fixup_protocol {
31 u64 revision;
32 efi_status_t (EFIAPI *fixup) (struct efi_dt_fixup_protocol *this,
33 void *dtb,
34 efi_uintn_t *buffer_size,
35 u32 flags);
36};
37
38extern struct efi_dt_fixup_protocol efi_dt_fixup_prot;
39extern const efi_guid_t efi_guid_dt_fixup_protocol;