WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

Re: [Xen-devel] x86/amd64 vs IA64

On Tue, Jun 02, 2009 at 12:26:39PM +1000, James Harper wrote:
> How different is IA64 to x86/amd64 in terms of hypercalls and
> platform_pci setup under HVM?
> 
> I'm having a look at what is involved in porting GPLPV drivers for
> Windows to IA64.
> 
> I can't even seem to find where the HYPERCALL_ functions/macros are
> defined!

Hi. I'm glad to hear that.
Linux unmodified drivers are supported on ia64, so it's quite
possible to port GPLPV to IA64 windows, I suppose.
If you need any help, don't hesitate to ask.

Probably the file you want to see would be
        linux-2.6.18-xen.hg/include/asm-ia64/hypercall.h
which defines HYPERVISOR_xxx() functions.
Eventually __hypercall() in linux-2.6.18-xen.hg/arch/ia64/xen/hypercall.S
issues hypercall. "break 0x1000" is the instruction.
0x1000 is arbitrarily selected constant for hypercall ABI between
guest kernel and xen VMM.

The most difference is the way to pass arguments.
On x86, arguments are passed by guest virtual address.
On the other hand they are passed by guest physical address.
So when issuing hypercall with arguments, arguments in virtual address
must be converted into guest physical address. Such stubs are called
xencomm.
You can see some of HYPERVISOR_xxx are replaced with xencomm_hypercall_xxx
which does such conversions.

Maybe at first xencomm routines should be ported for hypercall.
linux-2.6.18-xen.hg/drivers/xen/core/xencomm.c and
linux-2.6.18-xen.hg/arch/ia64/xen/xencomm.c
I suppose the conversion function from virtual address to guest
physical address would needs rewrite for ia64 windows.


The followings are related files which you might want to see.

ifeq ($(ARCH),ia64)
  xen-platform-pci-objs += xencomm.o xencomm_arch.o xcom_hcall.o xcom_asm.o
endif
in xen-unstable.hg/unmodified_drivers/linux-2.6/platform-pci/Kbuild

The files related to hypercall are
linux-2.6.18-xen.hg/
        arch/ia64/xen/
                xcom_hcall.c
                xcom_privcmd.c
                xcom_asm.S
                xencomm.c
        drivers/xen/core/
                xencomm.c

thanks,
-- 
yamahata

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

<Prev in Thread] Current Thread [Next in Thread>