On 19 October 2018 at 13:25, Zeng, Star <[email protected]> wrote: > Be honest, I am not clear about the history why EfiBootServicesData is > required for ESRT. But OS indeed cares about ESRT table, for example, I guess > the Firmware in Device Manager for Windows is built based on ESRT table. In > fact, I think OS loader can access either EfiBootServicesData or > EfiRuntimeServicesData configuration table as it controls the runtime phase > point. >
The problem is not with the OS. The OS can access it it any time it want, and create a virtual mapping for it. The problem is with the firmware: any table that the firmware wants to access *itself* requires a virtual mapping to be provided by the OS in SetVirtualAdressMap(), so that the virtual address is known to the firmware. > I am concerning that even the spec could be updated, our code may still need > caching for backward compatibility. > I don't think that should be a problem: Linux permits the ESRT to reside in EfiRuntimeServicesData already, because certain x86 production systems do that. This means that it is highly unlikely that Windows disallows this. > > -----Original Message----- > From: Ard Biesheuvel [mailto:[email protected]] > Sent: Friday, October 19, 2018 1:11 PM > To: Zeng, Star <[email protected]> > Cc: Peter Jones <[email protected]>; [email protected]; Dong, Eric > <[email protected]>; Leif Lindholm <[email protected]>; Kinney, > Michael D <[email protected]>; Yao, Jiewen <[email protected]> > Subject: Re: [PATCH] MdeModulePkg/EsrtDxe: allocate ESRT table from > RtServicesData memory > > On 19 October 2018 at 13:01, Ard Biesheuvel <[email protected]> wrote: >> On 19 October 2018 at 12:48, Zeng, Star <[email protected]> wrote: >>> Ok, thanks and got the case. >>> >>> DxeCapsuleLibVirtualAddressChangeEvent may be too late as it could not >>> allocate pool to do caching. >>> I meant registering gEfiSystemResourceTableGuid event group >>> notification(installconfigurationtable will trigger event group) and do >>> caching in the notification function. >>> >>> >> >> OK, I will create a bugzilla for this. >> > > As I understand it, the reason we require EfiBootServicesData for the ESRT is > because the OS may not care about this table, and so we don't want to waste > the memory. However, if we end up caching the entire table in > EfiRuntimeServicesData anyway [so that the firmware itself can access it], is > there still a point to keeping this requirement? > Shouldn't we update the spec regardless? _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

