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

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



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. 

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?

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

Thanks,
Aravindh

_______________________________________________
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®.