|
|
|
|
|
|
|
|
|
|
xen-ia64-devel
[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
|
<Prev in Thread] |
Current Thread |
[Next in Thread>
|
- [Xen-ia64-devel] Support big endian domU's,
Dietmar Hahn <=
|
|
|
|
|