You can check the EFI memory map to see if the EFI_MEMORY_RUNTIME is set. You 
should get a virtual mapping from the OS. Are you using the virtual address 
provided by the OS for the access?

Andrew Fish



On May 16, 2013, at 9:09 AM, "Prakash, Sathya" <[email protected]> wrote:

> Thanks Mike, We understand the risk and we are trying to move away from this 
> model. 
>  
> Andrew,  The Memory is allocated using the below call, will it not 
> automatically set the region internally as EFI_MEMORY_RUNTIME?
>  
> gBS->AllocatePages(X, EfiRuntimeServicesData, Sz, &MemoryToDrvr);
>  
> This doesn’t cause any issue in a system in which IOMMU (Vt-d) is not 
> enabled, but when IOMMU is enabled accessing this address creates fault.
>  
> Do you mean to say we need to explicitly set the memory descriptor type using 
> GetMemorySpaceDescriptor and SetMemorySpaceAttributes?
>  
>  
> Thanks
> Sathya
>  
> From: Kinney, Michael D [mailto:[email protected]] 
> Sent: Wednesday, May 15, 2013 7:05 PM
> To: [email protected]; Kinney, Michael D
> Subject: Re: [edk2] Memory reserved using EfiRuntimeServicesData and IOMMU
>  
> Sathya,
>  
> In general, this technique can be problematic.  UEFI Drivers are not required 
> to run every boot.  If your OS driver depends on the UEFI Driver running, 
> then the OS Driver may fail.  It is better if the OS Driver does not depend 
> on information from the UEFI Driver.
>  
> Mike
>  
>  
>  
> From: Andrew Fish [mailto:[email protected]] 
> Sent: Wednesday, May 15, 2013 4:15 PM
> To: [email protected]
> Subject: Re: [edk2] Memory reserved using EfiRuntimeServicesData and IOMMU
>  
> Did you mark the memory region as EFI_MEMORY_RUNTIME. This should force the 
> OS to give you a kernel virtual address for this region, and implies that 
> firmware may access it at runtime.
>  
> Andrew Fish
>  
>  
>  
> 
>  
> On May 15, 2013, at 4:11 PM, "Prakash, Sathya" <[email protected]> wrote:
>  
> 
> Chip,
> Thanks for the response, I am able to pass the address through my controller 
> firmware (UEFI driver and OS driver can handshake with controller firmware 
> for the address) but my question is, is it legal to access.  I am seeing some 
> issues when IOMMU comes into picture, it consider the address is reserved 
> (from memory map) and faults the access from my OS driver.
>  
> Thanks
> Sathya
>  
> From: Chip Ueltschey [mailto:[email protected]] 
> Sent: Wednesday, May 15, 2013 4:16 PM
> To: [email protected]
> Subject: Re: [edk2] Memory reserved using EfiRuntimeServicesData and IOMMU
>  
> Sathya,
>  
> You need a way to pass the address to your OS. The memory is already there.
> You could use a variable, but you need to have a pointer to variable services.
> You can store the information in ASL. Non-trivial to make this work, but I 
> know that it is possible to do.
>  
> -chip
>  
> 
> On Tue, May 14, 2013 at 4:16 PM, Prakash, Sathya <[email protected]> 
> wrote:
> Just to clarify further. Are we allowed to access the memory allocated by our 
> UEFI driver as RuntimeServiceData in our OS drivers (the physical address is 
> passed by the uefi driver to controller and controller to OS driver)?
> 
> Thanks
> Sathya
> 
> -----Original Message-----
> From: Prakash, Sathya [mailto:[email protected]]
> Sent: Tuesday, May 14, 2013 10:17 AM
> To: [email protected]
> Subject: [edk2] Memory reserved using EfiRuntimeServicesData and IOMMU
> 
> Folks,
> We allocate some host memory as EfiRuntimeServicesData and utilize the memory 
> in host driver for a certain purpose. This works fine with normal cases, but 
> will it work with IOMMU?. I see the IOMMU module in linux needs to know about 
> the reserved regions through RMRR address table to map the access, does the 
> GetMemoryMap supports this?
> 
> Thanks
> Sathya
> 
> 
> 
> ------------------------------------------------------------------------------
> AlienVault Unified Security Management (USM) platform delivers complete 
> security visibility with the essential security capabilities. Easily and 
> efficiently configure, manage, and operate all of your security controls from 
> a single console and one unified framework. Download a free trial.
> http://p.sf.net/sfu/alienvault_d2d
> _______________________________________________
> edk2-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/edk2-devel
> 
> 
> 
> ------------------------------------------------------------------------------
> AlienVault Unified Security Management (USM) platform delivers complete
> security visibility with the essential security capabilities. Easily and
> efficiently configure, manage, and operate all of your security controls
> from a single console and one unified framework. Download a free trial.
> http://p.sf.net/sfu/alienvault_d2d
> _______________________________________________
> edk2-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/edk2-devel
>  
> ------------------------------------------------------------------------------
> AlienVault Unified Security Management (USM) platform delivers complete
> security visibility with the essential security capabilities. Easily and
> efficiently configure, manage, and operate all of your security controls
> from a single console and one unified framework. Download a free trial.
> http://p.sf.net/sfu/alienvault_d2d_______________________________________________
> edk2-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/edk2-devel
>  
> ------------------------------------------------------------------------------
> AlienVault Unified Security Management (USM) platform delivers complete
> security visibility with the essential security capabilities. Easily and
> efficiently configure, manage, and operate all of your security controls
> from a single console and one unified framework. Download a free trial.
> http://p.sf.net/sfu/alienvault_d2d_______________________________________________
> edk2-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/edk2-devel

------------------------------------------------------------------------------
AlienVault Unified Security Management (USM) platform delivers complete
security visibility with the essential security capabilities. Easily and
efficiently configure, manage, and operate all of your security controls
from a single console and one unified framework. Download a free trial.
http://p.sf.net/sfu/alienvault_d2d
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to