On Fri, Nov 5, 2010 at 5:48 PM, Artyom Tarasenko <atar4q...@gmail.com> wrote: > Trying to boot Solaris 2.1 I get the following error message: > > Unassigned mem read access of 1 byte to ffffffffffff0768 from f0014768 > qemu: fatal: Trap 0x29 while interrupts disabled, Error state > pc: f0014768 npc: f001476c > > Looks like a read access to a non-mapped memory (the NF-bit is 0). But > where can it happen? > > The code: > > 0xf001475c: mov 0x200, %o4 > => 0xf0014760: lda [ %o4 ] #ASI_N, %o3 > 0xf0014764: sta %o2, [ %o4 ] #ASI_N > 0xf0014768: sta %g0, [ %o0 ] (3) > 0xf001476c: cmp %o2, %o3 > 0xf0014770: bne 0xf001477c > End of assembler dump. > (gdb) stepi > 0xf0014764 in ?? () > (gdb) info registers o2 > o2 0x28a 650 > (gdb) stepi > Remote connection closed > (gdb) > > Any ideas how to debug?
All accesses are 32 bits wide. ASI_N is 4 and the other store access is to ASI 3 (MMU flush). I don't see how this is possible. Perhaps PC and NPC are not updated as they should. If you insert a breakpoint at the offending instruction, do you get the same error as above with the same PC/NPC value?