|
|
|
|
|
|
|
|
|
|
xen-devel
RE: [Xen-devel] Calling __va() in a x86_64 Dom0 module
Jun,
The ioremap() function did the trick.
Thanks,
Aravindh
> -----Original Message-----
> From: Nakajima, Jun [mailto:jun.nakajima@xxxxxxxxx]
> Sent: Wednesday, November 02, 2005 2:17 AM
> To: Puthiyaparambil, Aravindh; xen-devel
> Cc: Forsgren, Garry
> Subject: 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
|
|
|
|
|