From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=50832 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PF6fU-0001oW-FH for qemu-devel@nongnu.org; Sun, 07 Nov 2010 09:56:31 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PF6fQ-0003Yn-8V for qemu-devel@nongnu.org; Sun, 07 Nov 2010 09:56:28 -0500 Received: from mail-qy0-f173.google.com ([209.85.216.173]:40690) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PF6fQ-0003YO-3Q for qemu-devel@nongnu.org; Sun, 07 Nov 2010 09:56:24 -0500 Received: by qyl33 with SMTP id 33so1213737qyl.4 for ; Sun, 07 Nov 2010 06:56:23 -0800 (PST) MIME-Version: 1.0 In-Reply-To: References: From: Blue Swirl Date: Sun, 7 Nov 2010 14:56:03 +0000 Message-ID: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Subject: [Qemu-devel] Re: [sparc] Unassigned mem read access on writing? List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Artyom Tarasenko Cc: qemu-devel On Fri, Nov 5, 2010 at 5:48 PM, Artyom Tarasenko wrot= e: > 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 =C2=A0npc: f001476c > > Looks like a read access to a non-mapped memory (the NF-bit is 0). But > where can it happen? > > The code: > > =C2=A0 0xf001475c: =C2=A0mov =C2=A00x200, %o4 > =3D> 0xf0014760: =C2=A0lda =C2=A0[ %o4 ] #ASI_N, %o3 > =C2=A0 0xf0014764: =C2=A0sta =C2=A0%o2, [ %o4 ] #ASI_N > =C2=A0 0xf0014768: =C2=A0sta =C2=A0%g0, [ %o0 ] (3) > =C2=A0 0xf001476c: =C2=A0cmp =C2=A0%o2, %o3 > =C2=A0 0xf0014770: =C2=A0bne =C2=A00xf001477c > End of assembler dump. > (gdb) stepi > 0xf0014764 in ?? () > (gdb) info registers o2 > o2 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0x28a =C2=A0 =C2=A0650 > (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?