On Wed, 26 Feb 2020 at 01:31, Laszlo Ersek <ler...@redhat.com> wrote:
>
> On 02/26/20 01:24, Laszlo Ersek wrote:
> > On 02/25/20 11:44, Ard Biesheuvel wrote:
> >> Introduce a boolean PCD that tells us whether TPM support is enabled
> >> in the build, and if it is, record the TPM base address in the existing
> >> routine that traverses the device tree in the platform PEIM.
> >>
> >> If a TPM is found, install the gOvmfTpmDiscoveredPpiGuid signalling PPI
> >> that will unlock the dispatch of OvmfPkg's Tcg2ConfigPei. If TPM2
> >> support is enabled in the build but no TPM2 device is found, install the
> >> gPeiTpmInitializationDonePpiGuid PPI, which is normally installed by
> >> Tcg2ConfigPei if no TPM2 is found, but in our case Tcg2ConfigPei will
> >> never run so let's do it here instead.
> >>
> >> Signed-off-by: Ard Biesheuvel <ard.biesheu...@linaro.org>
> >> ---
> >>  ArmVirtPkg/ArmVirt.dsc.inc                           |   6 ++
> >>  ArmVirtPkg/ArmVirtPkg.dec                            |   6 ++
> >>  ArmVirtPkg/Library/PlatformPeiLib/PlatformPeiLib.c   | 101 
> >> ++++++++++++++++++--
> >>  ArmVirtPkg/Library/PlatformPeiLib/PlatformPeiLib.inf |  19 +++-
> >>  4 files changed, 118 insertions(+), 14 deletions(-)
> >>
> >> diff --git a/ArmVirtPkg/ArmVirt.dsc.inc b/ArmVirtPkg/ArmVirt.dsc.inc
> >> index 10037c938eb8..abb253fdf76a 100644
> >> --- a/ArmVirtPkg/ArmVirt.dsc.inc
> >> +++ b/ArmVirtPkg/ArmVirt.dsc.inc
> >> @@ -366,6 +366,12 @@ [PcdsFixedAtBuild.common]
> >>    #
> >>    
> >> gEfiMdeModulePkgTokenSpaceGuid.PcdDxeNxMemoryProtectionPolicy|0xC000000000007FD1
> >>
> >> +[PcdsPatchableInModule]
> >> +  # we need a default resolution for this PCD that supports PcdSet64(),
> >> +  # even though any actual calls will be compiled out on builds that have
> >> +  # gArmVirtTokenSpaceGuid.PcdTpm2SupportEnabled == FALSE
> >> +  gEfiSecurityPkgTokenSpaceGuid.PcdTpmBaseAddress|0x0
> >> +
> >>  [Components.common]
> >>    #
> >>    # Ramdisk support
> >
> > I don't understand why this is patchable-in-module, and not dynamic. I
> > feel like it's a "textbook case" of a dynamic PCD. What am I missing?
>
> I've found the dynamic default in patch v2 5/5, in ArmVirtQemu.dsc, so I
> guess this is for all *other* ArmVirt platforms. Is that correct?
>

Yes.

> Can we add the PatchPcd to the other DSC files then (ArmVirtQemuKernel
> and ArmVirtXen)? I'm a bit uncomfortable with ArmVirtQemu.dsc describing
> two access methods for the same PCD, even though (apparently) the
> dynamic one will take effect (?)
>

Sure, that works for me.

-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#54867): https://edk2.groups.io/g/devel/message/54867
Mute This Topic: https://groups.io/mt/71530903/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to