master
h 48 lines 1.69 KB
Raw
1 /*
2 * SPDX-License-Identifier: GPL-2.0-or-later
3 *
4 * uefi-vars device - API of the virtual device for guest/host communication.
5 */
6 #ifndef QEMU_UEFI_VAR_SERVICE_API_H
7 #define QEMU_UEFI_VAR_SERVICE_API_H
8
9 /* qom: device names */
10 #define TYPE_UEFI_VARS_X64 "uefi-vars-x64"
11 #define TYPE_UEFI_VARS_SYSBUS "uefi-vars-sysbus"
12
13 /* sysbus: fdt node path */
14 #define UEFI_VARS_FDT_NODE "qemu-uefi-vars"
15 #define UEFI_VARS_FDT_COMPAT "qemu,uefi-vars"
16
17 /* registers */
18 #define UEFI_VARS_REG_MAGIC 0x00 /* 16 bit */
19 #define UEFI_VARS_REG_CMD_STS 0x02 /* 16 bit */
20 #define UEFI_VARS_REG_BUFFER_SIZE 0x04 /* 32 bit */
21 #define UEFI_VARS_REG_DMA_BUFFER_ADDR_LO 0x08 /* 32 bit */
22 #define UEFI_VARS_REG_DMA_BUFFER_ADDR_HI 0x0c /* 32 bit */
23 #define UEFI_VARS_REG_PIO_BUFFER_TRANSFER 0x10 /* 8-64 bit */
24 #define UEFI_VARS_REG_PIO_BUFFER_CRC32C 0x18 /* 32 bit (read-only) */
25 #define UEFI_VARS_REG_FLAGS 0x1c /* 32 bit */
26 #define UEFI_VARS_REGS_SIZE 0x20
27
28 /* flags register */
29 #define UEFI_VARS_FLAG_USE_PIO (1 << 0)
30
31 /* magic value */
32 #define UEFI_VARS_MAGIC_VALUE 0xef1
33
34 /* command values */
35 #define UEFI_VARS_CMD_RESET 0x01
36 #define UEFI_VARS_CMD_DMA_MM 0x02
37 #define UEFI_VARS_CMD_PIO_MM 0x03
38 #define UEFI_VARS_CMD_PIO_ZERO_OFFSET 0x04
39
40 /* status values */
41 #define UEFI_VARS_STS_SUCCESS 0x00
42 #define UEFI_VARS_STS_BUSY 0x01
43 #define UEFI_VARS_STS_ERR_UNKNOWN 0x10
44 #define UEFI_VARS_STS_ERR_NOT_SUPPORTED 0x11
45 #define UEFI_VARS_STS_ERR_BAD_BUFFER_SIZE 0x12
46
47
48 #endif /* QEMU_UEFI_VAR_SERVICE_API_H */