Hi,

> +/* disable vmlaunchupdate interface */
> +#define VM_LAUNCHUPDATE_CTL_DISABLE            (1 << 0)
> +/* revert to the original host provided igvm */
> +#define VM_LAUNCHUPDATE_CTL_HOST_IGVM          (1 << 1)

Hmm, I think these bits need a more verbose comment, especially the
combination of the two ...

HOST_IGVM=0 DISABLE=0

Supplied IGVM file replaces the firmware permanently.  Updating the
firmware again is possible.

HOST_IGVM=0 DISABLE=1

Supplied IGVM file replaces the firmware permanently.  Updating the
firmware again is not possible.

HOST_IGVM=1 DISABLE=0

Supplied IGVM file replaces the firmware for one reset.  Resetting
again will switch back to the original firmware.  Updating the
firmware again is possible.

HOST_IGVM=1 DISABLE=1

Supplied IGVM file replaces the firmware for one reset.  Resetting
again will switch back to the original firmware.  Updating the
firmware again is NOT possible.

Question:  How long will the 'disable' flag be active?  Specifically
will switching back to the original firmware also clear the 'disable'
flag?  Which I think makes sense.

Another question: What happens when using HOST_IGVM=0 first and later
on HOST_IGVM=1?

> +typedef struct {
> +    /* api version */
> +    uint16_t version;
> +
> +    /*
> +     * The guest can read this in order to determine if loading new IGVM
> +     * succeeded.
> +     */
> +    uint16_t status;

uint32_t _padding;

> +
> +    /* VMM capabilities, read-only. */
> +    uint64_t capabilities;
> +    /* control bits, see VMFWUPDATE_CTL_* */
> +    uint64_t control;

take care,
  Gerd

PS: you should cc alex for v3


Reply via email to