[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-ia64-devel] Support big endian domU's
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
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |