On 18 September 2017 at 18:52, Zeng, Star <[email protected]> wrote:
> As I know according to UEFI spec, it has no requirement about the Table needs 
> to be in runtime memory, but only requires the list (holding Guid value and 
> Table pointer) needs to be in runtime memory.
>
> "The InstallConfigurationTable() function is used to maintain the list of 
> configuration tables that are stored in the EFI System Table. The list is 
> stored as an array of (GUID, Pointer) pairs. The list must be allocated from 
> pool memory with PoolType set to EfiRuntimeServicesData."
>
>
> Jiewen, you should know more detail about this feature.
>

Whether the list of configuration tables is in runtime memory and
whether the tables themselves are in runtime memory are completely
different things.

Runtime memory will get a mapping in the virtual tables created by the
OS, which is only necessary if the firmware itself refers to the
contents when runtime services are in progress. Using runtime memory
so that it will be automatically protected from allocation by the OS
implies that the memory is lost even if the OS does not understand the
table type in the first place. And if it does understand the table
type, it can reserve the region itself.

In summary, using runtime memory for configuration tables is a bad
idea, and the fact that it is recommended for SMbios (and there is
even a mention that no virtual mapping should be requested, which is
impossible) is a mistake IMO.

-- 
Ard.
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to