On 1 December 2017 at 10:52, Laszlo Ersek <ler...@redhat.com> wrote:
> On 12/01/17 09:51, Ard Biesheuvel wrote:
>> On 30 November 2017 at 16:30, Laszlo Ersek <ler...@redhat.com> wrote:
>>> (All of the below is only relevant for SMM_REQUIRE=FALSE.)
>>>
>>> For the emulated variable store, PlatformPei allocates reserved memory (as
>>> early as possible, so that the address remains the same during reboot),
>>> and PcdEmuVariableNvStoreReserved carries the address to
>>> EmuVariableFvbRuntimeDxe.
>>>
>>> In addition, QemuFlashFvbServicesRuntimeDxe is always launched before
>>> EmuVariableFvbRuntimeDxe, so that if flash variables are available,
>>> QemuFlashFvbServicesRuntimeDxe can set PcdFlashNvStorageVariableBase64
>>> first, and EmuVariableFvbRuntimeDxe can exit early. This ordering is
>>> currently enforced by adding QemuFlashFvbServicesRuntimeDxe to the APRIORI
>>> DXE file.
>>>
>>> All of this is unnecessary when MEM_VARSTORE_EMU_ENABLE is set to FALSE.
>>> In such a build,
>>>
>>> - (almost) remove the dynamic default for PcdEmuVariableNvStoreReserved
>>>   (we can't really do this because the PcdSet64() in
>>>   ReserveEmuVariableNvStore() wouldn't compile),
>>>
>>
>> If that is the only concern, and the value is irrelevant, you could
>> make it a patchable PCD instead
>
> This sounds interesting; I've never used patchable PCDs. Can you please
> elaborate?
>
> Do you mean that for (SMM_REQUIRE==TRUE ||
> MEM_VARSTORE_EMU_ENABLE==FALSE), the DSC file should list
> PcdEmuVariableNvStoreReserved somewhere else?
>

Yes.

> Does PcdSet work on patchable PCDs?
>

Yes. It's a bit icky because the value does not actually propagate to
other modules, but that doesn't matter in this case.
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to