[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [Xen-devel] Calling __va() in a x86_64 Dom0 module



Puthiyaparambil, Aravindh wrote:
> I am trying to get a module working under x86_64 Dom0. The module is
> used to communicate between the Linux OS running on the ES7000 and the
> external service processor. The module as part of its setup parses the
> OEM table to reference some information present there. It gets the
> address of the OEM table using acpi_get_firmware_table(). Then the
> address is converted to a virtual address using __va() before it is
> referenced.
> 
> When building the module against 2.6.12-dom0, the __va() function that
> is called the x86_64 one. When I try accessing the VA of the OEM
> table, I am getting a page fault. The PA is 0x26e0400.  So I patched
> the module to use Xen's __va() function. Now the page fault does not
> happen but when the table is parsed the information I am looking for
> is not present.
XenLinux runs on _guest_ (or pseudo) physical. You need to map machine
physical. 

> 
> Am I doing anything wrong here? Am I not supposed to touch this region
> of memory from Dom0? Or is there a hypercall that I should be using?
You should be able to use ioremap() unless you need to touch the table
very early at initialization time. 

> 
> BTW, this module works perfectly under plain vanilla x86_64 Linux.
> 
> Thanks,
> Aravindh
> 

Jun
---
Intel Open Source Technology Center

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.