On 02/05/16 21:41, Laszlo Ersek wrote: > Before the merger of the authenticated and non-authenticated variable > drivers (commit fa0737a839d0), we had to match the varstore header GUID in > "OvmfPkg/VarStore.fdf.inc" to SECURE_BOOT_ENABLE, because the opposite > GUID would cause either driver to fail an assertion. The header structures > for individual variables residing in the varstore were different > (VARIABLE_HEADER vs. AUTHENTICATED_VARIABLE_HEADER), and each driver could > only handle its own, so this GUID enforcement was necessary. > > Since the unification of the variable driver however, it treats (a) > variable store format, and (b) AuthVariableLib instance as independent > characteristics; it can always manipulate variable stores with both header > types. All variations boot now; the difference is whether authenticated > variables, and special variables computed from them (like SecureBoot) are > supported at runtime: > > variable store non-auth auth and SB > header GUID AuthVariableLib variables variables > -- --------------------- ------------------- -> --------- ----------- > 1 Variable SecurityPkg/... supported unsupported > 2 Variable AuthVariableLibNull supported unsupported > 3 AuthenticatedVariable SecurityPkg/... supported supported > 4 AuthenticatedVariable AuthVariableLibNull supported unsupported > > At the moment, SECURE_BOOT_ENABLE selects between cases #2 (FALSE) and #3 > (TRUE). That is, it controls both the varstore header GUID in > "OvmfPkg/VarStore.fdf.inc", and the AuthVariableLib resolution in the DSC > files. > > Exploiting the unified driver's flexibility, we can simplify > "OvmfPkg/VarStore.fdf.inc" by picking the AuthenticatedVariable GUID as a > constant, and letting SECURE_BOOT_ENABLE control only the AuthVariableLib > resolution. This amounts to SECURE_BOOT_ENABLE choosing between cases #3 > (TRUE) and #4 (FALSE), with identical results as before. > > Cc: Jordan Justen <[email protected]> > Cc: Star Zeng <[email protected]> > Ref: http://thread.gmane.org/gmane.comp.bios.edk2.devel/7319/focus=7344 > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Laszlo Ersek <[email protected]> > --- > OvmfPkg/VarStore.fdf.inc | 9 +-------- > 1 file changed, 1 insertion(+), 8 deletions(-) > > diff --git a/OvmfPkg/VarStore.fdf.inc b/OvmfPkg/VarStore.fdf.inc > index 8f91e39..ce901c0 100644 > --- a/OvmfPkg/VarStore.fdf.inc > +++ b/OvmfPkg/VarStore.fdf.inc > @@ -38,19 +38,12 @@ > # Blockmap[1]: End > 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, > ## This is the VARIABLE_STORE_HEADER > -!if $(SECURE_BOOT_ENABLE) == TRUE > + # It is compatible with SECURE_BOOT_ENABLE == FALSE as well. > # Signature: gEfiAuthenticatedVariableGuid = > # { 0xaaf32c78, 0x947b, 0x439a, > # { 0xa1, 0x80, 0x2e, 0x14, 0x4e, 0xc3, 0x77, 0x92 }} > 0x78, 0x2c, 0xf3, 0xaa, 0x7b, 0x94, 0x9a, 0x43, > 0xa1, 0x80, 0x2e, 0x14, 0x4e, 0xc3, 0x77, 0x92, > -!else > - # Signature: gEfiVariableGuid = > - # { 0xddcf3616, 0x3275, 0x4164, > - # { 0x98, 0xb6, 0xfe, 0x85, 0x70, 0x7f, 0xfe, 0x7d }} > - 0x16, 0x36, 0xcf, 0xdd, 0x75, 0x32, 0x64, 0x41, > - 0x98, 0xb6, 0xfe, 0x85, 0x70, 0x7f, 0xfe, 0x7d, > -!endif > # Size: 0xe000 > (gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize) - > # 0x48 (size of EFI_FIRMWARE_VOLUME_HEADER) = 0xdfb8 > # This can speed up the Variable Dispatch a bit. >
Commit d92eaabefbe0667bdd15c28c8e1fcd92a12fa97c. Thanks! Laszlo _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

