Message ID | 20231115151242.184645-2-kraxel@redhat.com |
---|---|
State | New |
Headers | show |
Series | hw/uefi: add uefi variable service | expand |
On 11/15/23 16:12, Gerd Hoffmann wrote: > This file defines the register interface of the uefi-vars device. > It's only a handful of registers: magic value, command and status > registers, location and size of the communication buffer. > > Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> > --- > include/hw/uefi/var-service-api.h | 40 +++++++++++++++++++++++++++++++ > 1 file changed, 40 insertions(+) > create mode 100644 include/hw/uefi/var-service-api.h > > diff --git a/include/hw/uefi/var-service-api.h b/include/hw/uefi/var-service-api.h > new file mode 100644 > index 000000000000..37fdab32741f > --- /dev/null > +++ b/include/hw/uefi/var-service-api.h > @@ -0,0 +1,40 @@ > +/* > + * SPDX-License-Identifier: GPL-2.0-or-later > + * > + * uefi-vars device - API of the virtual device for guest/host communication. > + */ > +#ifndef QEMU_UEFI_VAR_SERVICE_API_H > +#define QEMU_UEFI_VAR_SERVICE_API_H > + > + > +/* isa: io range */ > +#define UEFI_VARS_IO_BASE 0x520 > + > +/* sysbus: fdt node path */ > +#define UEFI_VARS_FDT_NODE "qemu-uefi-vars" > +#define UEFI_VARS_FDT_COMPAT "qemu,uefi-vars" > + > +/* registers */ > +#define UEFI_VARS_REG_MAGIC 0x00 /* 16 bit */ > +#define UEFI_VARS_REG_CMD_STS 0x02 /* 16 bit */ > +#define UEFI_VARS_REG_BUFFER_SIZE 0x04 /* 32 bit */ > +#define UEFI_VARS_REG_BUFFER_ADDR_LO 0x08 /* 32 bit */ > +#define UEFI_VARS_REG_BUFFER_ADDR_HI 0x0c /* 32 bit */ > +#define UEFI_VARS_REGS_SIZE 0x10 > + > +/* magic value */ > +#define UEFI_VARS_MAGIC_VALUE 0xef1 > + > +/* command values */ > +#define UEFI_VARS_CMD_RESET 0x01 > +#define UEFI_VARS_CMD_MM 0x02 > + > +/* status values */ > +#define UEFI_VARS_STS_SUCCESS 0x00 > +#define UEFI_VARS_STS_BUSY 0x01 > +#define UEFI_VARS_STS_ERR_UNKNOWN 0x10 > +#define UEFI_VARS_STS_ERR_NOT_SUPPORTED 0x11 > +#define UEFI_VARS_STS_ERR_BAD_BUFFER_SIZE 0x12 > + > + > +#endif /* QEMU_UEFI_VAR_SERVICE_API_H */ Reviewed-by: Laszlo Ersek <lersek@redhat.com>
diff --git a/include/hw/uefi/var-service-api.h b/include/hw/uefi/var-service-api.h new file mode 100644 index 000000000000..37fdab32741f --- /dev/null +++ b/include/hw/uefi/var-service-api.h @@ -0,0 +1,40 @@ +/* + * SPDX-License-Identifier: GPL-2.0-or-later + * + * uefi-vars device - API of the virtual device for guest/host communication. + */ +#ifndef QEMU_UEFI_VAR_SERVICE_API_H +#define QEMU_UEFI_VAR_SERVICE_API_H + + +/* isa: io range */ +#define UEFI_VARS_IO_BASE 0x520 + +/* sysbus: fdt node path */ +#define UEFI_VARS_FDT_NODE "qemu-uefi-vars" +#define UEFI_VARS_FDT_COMPAT "qemu,uefi-vars" + +/* registers */ +#define UEFI_VARS_REG_MAGIC 0x00 /* 16 bit */ +#define UEFI_VARS_REG_CMD_STS 0x02 /* 16 bit */ +#define UEFI_VARS_REG_BUFFER_SIZE 0x04 /* 32 bit */ +#define UEFI_VARS_REG_BUFFER_ADDR_LO 0x08 /* 32 bit */ +#define UEFI_VARS_REG_BUFFER_ADDR_HI 0x0c /* 32 bit */ +#define UEFI_VARS_REGS_SIZE 0x10 + +/* magic value */ +#define UEFI_VARS_MAGIC_VALUE 0xef1 + +/* command values */ +#define UEFI_VARS_CMD_RESET 0x01 +#define UEFI_VARS_CMD_MM 0x02 + +/* status values */ +#define UEFI_VARS_STS_SUCCESS 0x00 +#define UEFI_VARS_STS_BUSY 0x01 +#define UEFI_VARS_STS_ERR_UNKNOWN 0x10 +#define UEFI_VARS_STS_ERR_NOT_SUPPORTED 0x11 +#define UEFI_VARS_STS_ERR_BAD_BUFFER_SIZE 0x12 + + +#endif /* QEMU_UEFI_VAR_SERVICE_API_H */
This file defines the register interface of the uefi-vars device. It's only a handful of registers: magic value, command and status registers, location and size of the communication buffer. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> --- include/hw/uefi/var-service-api.h | 40 +++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 include/hw/uefi/var-service-api.h