OSDN Git Service

pc: add parser for OVMF reset block
authorJames Bottomley <jejb@linux.ibm.com>
Thu, 4 Feb 2021 19:39:38 +0000 (11:39 -0800)
committerPaolo Bonzini <pbonzini@redhat.com>
Tue, 16 Feb 2021 16:15:39 +0000 (17:15 +0100)
commit9617cddb72649f563eef8114648140b8c5607a71
tree80cbd5166b878acb2125c5af35850e0a39b84435
parent8ba4bca570ace1e60614a0808631a517cf5df67a
pc: add parser for OVMF reset block

OVMF is developing a mechanism for depositing a GUIDed table just
below the known location of the reset vector.  The table goes
backwards in memory so all entries are of the form

<data>|len|<GUID>

Where <data> is arbtrary size and type, <len> is a uint16_t and
describes the entire length of the entry from the beginning of the
data to the end of the guid.

The foot of the table is of this form and <len> for this case
describes the entire size of the table.  The table foot GUID is
defined by OVMF as 96b582de-1fb2-45f7-baea-a366c55a082d and if the
table is present this GUID is just below the reset vector, 48 bytes
before the end of the firmware file.

Add a parser for the ovmf reset block which takes a copy of the block,
if the table foot guid is found, minus the footer and a function for
later traversal to return the data area of any specified GUIDs.

Signed-off-by: James Bottomley <jejb@linux.ibm.com>
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Message-Id: <20210204193939.16617-2-jejb@linux.ibm.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
hw/i386/pc_sysfw.c
include/hw/i386/pc.h
include/sysemu/sev.h
target/i386/sev_i386.h