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-ia64-devel

[Xen-ia64-devel] Support big endian domU's

To: "xen-ia64-devel" <xen-ia64-devel@xxxxxxxxxxxxxxxxxxx>
Subject: [Xen-ia64-devel] Support big endian domU's
From: Dietmar Hahn <dietmar.hahn@xxxxxxxxxxxxxxxxxxx>
Date: Thu, 16 Nov 2006 13:11:18 +0100
Delivery-date: Thu, 16 Nov 2006 04:15:15 -0800
Domainkey-signature: s=s768; d=fujitsu-siemens.com; c=nofws; q=dns; b=MwwaESAA1GTNLfP0z2xDt8nJ2KlkavjkMbQ7yLNmeKxWM5MObW6t8WI1D61d/Oua45a/IE+02/42y7fFnS2R0DZETzVPOIwQOz+V1uWkyQGO/Ql3SUaeRPqKBuk0Q3ge;
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-ia64-devel-request@lists.xensource.com?subject=help>
List-id: Discussion of the ia64 port of Xen <xen-ia64-devel.lists.xensource.com>
List-post: <mailto:xen-ia64-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-ia64-devel>, <mailto:xen-ia64-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-ia64-devel>, <mailto:xen-ia64-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-ia64-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: KMail/1.9.5
Hi,

I started with supporting big endian domU's on ia64 and have some questions.
I did some changes to tools/libxc/xc_load_elf.c and now I can load and start 
the big endian domU.
Because this is some sort  of a new branch in load_elf how can I get in 
changes? Should I simply send patches to x86 list or should I first initiate 
a discussion about that?

I added a flag is_be to struct arch_domain. Is this ok, or may this produce 
some problems?
struct arch_domain {
    struct mm_struct mm;
    /* Flags.  */
    union {
        unsigned long flags;
        struct {
            unsigned int is_vti : 1;
#ifdef CONFIG_XEN_IA64_PERVCPU_VHPT
            unsigned int has_pervcpu_vhpt : 1;
#endif
            unsigned int is_be : 1;              <--------
        };
    };

Should I introduce a new compiler flag where the special big endion support 
can be switched off?

A question to the function reflect_interruptions() in fault.c:
As far as I understand the code, PSCB(...) are prepared to contain the trapped 
dumU environment..
regs->... are prepared to contain the environment for return to the trap 
handler of the domU.
If this is the case then on a big endian domU the psr.be bit ist not set in 
regs->ipsr from dcr.be. This is needed on return from Xen to the trap handler 
of the domU.
The other thing is that in vcpu_get_ipsr_int_state() the psr.be bit should not 
be overwritten by dcr.be. There are cases where a big endian domU runs 
temporarily littlen endian (during efi calls, ...). If there would be a trap, 
it would return with psr.be = 1, which is not what we want.
The same problem may occur on reflect_event()!
Thanks.

Dietmar.

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

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