On 07/24/13 01:36, Andrew Fish wrote: > EFI requests mappings for physical address ranges in the memory map by > setting the attribute bit EFI_MEMORY_RUNTIME. The OS (or loader > depending on the OS design), after ExitBootServices() calls > SetVirtualAddressMap() to provide the firmware with the virtual mapping > for the physical address ranges. Prior to the SetVirtualAddressMap() EFI > Runtime Services are only called in physical mode, after > SetVirtualAddressMap() runtime services may only be called in virtual mode. > > You can read up on this in the UEFI 2.4 spec.
I was recently thinking about this (my first (and to time, only) encounter has been svn r14425) -- how do you convert an array that's bigger than one page? The base pointer can be converted, but code using the array assumes the array is contiguous in address space (by way of the subscript operator []), which may not be true for virtual addresses if the array is bigger than one page. One of Matthew Garrett's presentations mentioned this problem/question IIRC... Apologies if it has come up before on the list, I can't remember the answer. Thanks! Laszlo ------------------------------------------------------------------------------ See everything from the browser to the database with AppDynamics Get end-to-end visibility with application monitoring from AppDynamics Isolate bottlenecks and diagnose root cause in seconds. Start your free trial of AppDynamics Pro today! http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk _______________________________________________ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel