Hi Ard. > -----Original Message----- > From: edk2-devel <edk2-devel-boun...@lists.01.org> On Behalf Of Ard > Biesheuvel > Sent: 21 March 2018 18:27 > To: Girish Pathak <girish.pat...@arm.com> > Cc: nd <n...@arm.com>; edk2-devel@lists.01.org; Leif Lindholm > <leif.lindh...@linaro.org>; Stephanie Hughes-Fitt <Stephanie.Hughes- > f...@arm.com>; Arvind Chauhan <arvind.chau...@arm.com> > Subject: Re: [edk2] [PATCH edk2-platforms v3 12/17] ARM/VExpressPkg: > Allocate framebuffer using EfiRuntimeServicesData > > On 21 March 2018 at 19:07, Girish Pathak <girish.pat...@arm.com> > wrote: > > > > > >> -----Original Message----- > >> From: Ard Biesheuvel [mailto:ard.biesheu...@linaro.org] > >> Sent: 21 March 2018 03:38 > >> To: Girish Pathak <girish.pat...@arm.com> > >> Cc: edk2-devel@lists.01.org; Leif Lindholm > >> <leif.lindh...@linaro.org>; Matteo Carlini <matteo.carl...@arm.com>; > >> Stephanie Hughes-Fitt <stephanie.hughes-f...@arm.com>; nd > >> <n...@arm.com>; Arvind Chauhan <arvind.chau...@arm.com>; Daniil > Egranov > >> <daniil.egra...@arm.com>; Thomas Abraham > <thomas.abra...@arm.com> > >> Subject: Re: [PATCH edk2-platforms v3 12/17] ARM/VExpressPkg: > >> Allocate framebuffer using EfiRuntimeServicesData > >> > >> On 21 March 2018 at 00:18, Girish Pathak <girish.pat...@arm.com> > wrote: > >> > As per the UEFI specification(2.7) section 12.9, the GOP > >> > framebuffer memory can be accessed in the pre-boot and the post > >> > boot phase (by OS) Therefore the memory type EfiBootServicesData is > >> > incorrect for the framebuffer memory allocation. Change > >> > EfiBootServicesData with EfiRuntimeServicesData flag so that > >> > allocated memory can be access by the OS in the post boot phase. > >> > > >> > >> EfiRuntimeServicesData is intended for allocations that the EFI > >> runtime services need to access themselves at runtime, and will hence > >> be virtually remapped by SetVirtualAddressMap(). > >> > >> This does not apply to the framebuffer. Even if it may be used at OS > >> runtime, the firmware itself will never access it, so > >> EfiRuntimeServicesData is not appropriate > >> > >> Please use EfiReservedMemory instead. > > > > Specification (UEFI Spec 2_7_A Sept 6.pdf) describes > > EfiReservedMemoryType as Not usable before and after ExitBootServices, > See Table 28 & 29 Hence EfiReservedMemoryType is not suitable in this > case. Agree? > > > > It is not usable as ordinary memory, given that you turn it into 'special' > memory (with side effects) by turning it into a framebuffer. > > So EfiReservedMemory is perfectly appropriate here. [[Evan Lloyd]] First, I agree EfiReservedMemory is probably the sensible option. The only alternative would be EfiMemoryMappedIO, and that, as you have pointed out in the past, introduces alignment requirements. If you are happy to accept it, I'll ask Girish to go with that. However, Girish has a point, if only that the UEFI spec need more clarity on this, especially as https://lists.01.org/pipermail/edk2-devel/2017-February/007494.html pretty much confirms it is the right way to go. In particular, the bald statement "EfiReservedMemoryType Not usable.", seems unfortunate.
Regards, Evan > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org > https://lists.01.org/mailman/listinfo/edk2-devel _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel