var-service-api.h 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  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. /* qom: device names */
  9. #define TYPE_UEFI_VARS_X64 "uefi-vars-x64"
  10. #define TYPE_UEFI_VARS_SYSBUS "uefi-vars-sysbus"
  11. /* sysbus: fdt node path */
  12. #define UEFI_VARS_FDT_NODE "qemu-uefi-vars"
  13. #define UEFI_VARS_FDT_COMPAT "qemu,uefi-vars"
  14. /* registers */
  15. #define UEFI_VARS_REG_MAGIC 0x00 /* 16 bit */
  16. #define UEFI_VARS_REG_CMD_STS 0x02 /* 16 bit */
  17. #define UEFI_VARS_REG_BUFFER_SIZE 0x04 /* 32 bit */
  18. #define UEFI_VARS_REG_DMA_BUFFER_ADDR_LO 0x08 /* 32 bit */
  19. #define UEFI_VARS_REG_DMA_BUFFER_ADDR_HI 0x0c /* 32 bit */
  20. #define UEFI_VARS_REG_PIO_BUFFER_TRANSFER 0x10 /* 8-64 bit */
  21. #define UEFI_VARS_REG_PIO_BUFFER_CRC32C 0x18 /* 32 bit (read-only) */
  22. #define UEFI_VARS_REG_FLAGS 0x1c /* 32 bit */
  23. #define UEFI_VARS_REGS_SIZE 0x20
  24. /* flags register */
  25. #define UEFI_VARS_FLAG_USE_PIO (1 << 0)
  26. /* magic value */
  27. #define UEFI_VARS_MAGIC_VALUE 0xef1
  28. /* command values */
  29. #define UEFI_VARS_CMD_RESET 0x01
  30. #define UEFI_VARS_CMD_DMA_MM 0x02
  31. #define UEFI_VARS_CMD_PIO_MM 0x03
  32. #define UEFI_VARS_CMD_PIO_ZERO_OFFSET 0x04
  33. /* status values */
  34. #define UEFI_VARS_STS_SUCCESS 0x00
  35. #define UEFI_VARS_STS_BUSY 0x01
  36. #define UEFI_VARS_STS_ERR_UNKNOWN 0x10
  37. #define UEFI_VARS_STS_ERR_NOT_SUPPORTED 0x11
  38. #define UEFI_VARS_STS_ERR_BAD_BUFFER_SIZE 0x12
  39. #endif /* QEMU_UEFI_VAR_SERVICE_API_H */