> emulator. I finally found the reason by observing strange Linux
behaviour
> relating to MMU no-fault mode. No fault mode seems to apply only to
> supervisor accesses, not user ones. The logic was not described like
this
> in the manual, thank you very much.
How did you find it?
I looked at qemu.log to find the faulting location in bash. I enabled
DEBUG_MMU in helper.c and op_helper.c to see if the MMU mappings are
correct, generating some 400 megs of logs. The instruction was load and the
data being accessed was not mapped. Then I attached gdb to emulator and set
a breakpoint to the faulting address and also to Linux fault handler. I
noticed that the fault kept repeating forever, as if Linux didn't realise
that any fault has happened. Then I got the idea to try this change. I think
the logic is that it is not safe to allow user to override the MMU mappings.
What an exciting story to tell your grandchildren, don't you think?
Caller[f0005e0c]: t_sec_trap_start_interrupt+0x38/0x5c
Caller[f01096c4]: prom_nbputchar+0xa0/0xb0
Maybe there is something wrong with Proll putchar function, or Proll's data
areas are overwritten.
_________________________________________________________________
FREE pop-up blocking with the new MSN Toolbar - get it now!
http://toolbar.msn.click-url.com/go/onm00200415ave/direct/01/
_______________________________________________
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel