From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1O25ze-0008ID-Ch for qemu-devel@nongnu.org; Wed, 14 Apr 2010 13:03:14 -0400 Received: from [140.186.70.92] (port=33906 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1O25zc-0008F6-9F for qemu-devel@nongnu.org; Wed, 14 Apr 2010 13:03:13 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1O25L8-0001ds-HG for qemu-devel@nongnu.org; Wed, 14 Apr 2010 12:21:24 -0400 Received: from mail-ww0-f45.google.com ([74.125.82.45]:51296) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1O25L7-0001dh-OW for qemu-devel@nongnu.org; Wed, 14 Apr 2010 12:21:22 -0400 Received: by wwi17 with SMTP id 17so214105wwi.4 for ; Wed, 14 Apr 2010 09:21:21 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: References: From: Artyom Tarasenko Date: Wed, 14 Apr 2010 18:15:01 +0200 Message-ID: Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Subject: [Qemu-devel] Re: OBP under qemu-system-sparc64 List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Blue Swirl Cc: The OpenBIOS Mailinglist , qemu-devel 2010/4/14 Artyom Tarasenko : > 2010/4/3 Blue Swirl : >> could be interesting to see what OBP >> from a real machine would think of the QEMU machine. > > it doesn't live long enough to think something (must be something trivial= ): > > $ sparc64-softmmu/qemu-system-sparc64 -bios u1_v3.11.1.bin -nographic > -cpu 'TI UltraSparc I' -d in_asm,int,cpu > -------------- > IN: > 0x000001fff0000020: =A0ldxa =A0[ %g0 ] (69), %g2 > 0x000001fff0000024: =A0stxa =A0%g0, [ %g0 ] (69) > 0x000001fff0000028: =A0b,a =A0 0x1fff0001d88 > > -------------- > IN: > 0x000001fff0001d88: =A0rdpr =A0%cwp, %g1 > 0x000001fff0001d8c: =A0wrpr =A00, %cwp > 0x000001fff0001d90: =A0wrpr =A0%g1, 0, %cwp > 0x000001fff0001d94: =A0call =A00x1fff0000210 > 0x000001fff0001d98: =A0add =A0%g0, %g0, %o0 > > -------------- > IN: > 0x000001fff0000210: =A0mov =A00x1ff, %o1 =A0 =A0! 0x1ff > 0x000001fff0000214: =A0sllx =A0%o1, 0x20, %o1 > 0x000001fff0000218: =A0sethi =A0%hi(0xf1300000), %o2 > 0x000001fff000021c: =A0or =A0%o2, %o1, %o2 > 0x000001fff0000220: =A0stba =A0%o0, [ %o2 ] (21) and on the real machine there seems to be some device connected to this add= ress: ok 1fff1300000 bypass-asi spacel@ . Data Access Error ok cpu-afsr@ . 104000000 ok 1fff1300000 bypass-asi spacel@ . Data Access Error ok cpu-afar@ . cpu-afsr@ . 1fff1300000 104000000 But, with single bytes it works: ok 1fff1300000 bypass-asi spacec@ . 64 ok 1fff1300001 bypass-asi spacec@ . 64 ok 1fff1300002 bypass-asi spacec@ . 64 ok 1fff1300003 bypass-asi spacec@ . 64 If I put pseudodevices there it still doesn't get too far: #### skip unassigned mem access to 000001fff1300000 #### skip unassigned mem access to 000001fff1300004 #### skip unassigned mem access to 000001fff1300005 #### skip unassigned mem access to 000001fff1300006 #### skip unassigned mem access to 000001fff1300007 #### skip unassigned mem access to 000001fff1900000 #### skip unassigned mem access to 000001fff1100004 #### skip unassigned mem access to 000001fff1100004 #### skip unassigned mem access to 000001fff1100000 #### skip unassigned mem access to 000001fff1300007 #### skip unassigned mem access to 000001fff1200001 then it hangs. If I don't do it for the last one (1fff1200001) then qemu sa= ys Aborted. Since it's qemu issue, I won't post the further results on the OpenBIOS mailing list. qemu-devel should be enough. > 0x000001fff0000224: =A0add =A0%o2, 4, %o2 > 0x000001fff0000228: =A0lduba =A0[ %o2 ] (21), %o1 > 0x000001fff000022c: =A0sllx =A0%o1, 8, %o0 > 0x000001fff0000230: =A0inc =A0%o2 > 0x000001fff0000234: =A0lduba =A0[ %o2 ] (21), %o1 > 0x000001fff0000238: =A0or =A0%o0, %o1, %o0 > 0x000001fff000023c: =A0sllx =A0%o0, 8, %o0 > 0x000001fff0000240: =A0inc =A0%o2 > 0x000001fff0000244: =A0lduba =A0[ %o2 ] (21), %o1 > 0x000001fff0000248: =A0or =A0%o0, %o1, %o0 > 0x000001fff000024c: =A0sllx =A0%o0, 8, %o0 > 0x000001fff0000250: =A0inc =A0%o2 > 0x000001fff0000254: =A0lduba =A0[ %o2 ] (21), %o1 > 0x000001fff0000258: =A0or =A0%o0, %o1, %o0 > 0x000001fff000025c: =A0retl > 0x000001fff0000260: =A0nop > > qemu: fatal: Trap 0x0032 while trap level (5) >=3D MAXTL (5), Error state > pc: 000001fff0000220 =A0npc: 000001fff0000224 > > General Registers: > %g0-3: 0000000000000000 0000000000000007 0000000000000000 000000000000000= 0 > %g4-7: 0000000000000000 0000000000000000 0000000000000000 000000000000000= 0 > > Current Register Window: > %o0-3: 0000000000000000 000001ff00000000 000001fff1300000 000000000000000= 0 > %o4-7: 0000000000000000 0000000000000000 0000000000000000 000001fff0001d9= 4 > %l0-3: 0000000000000000 0000000000000000 0000000000000000 000000000000000= 0 > %l4-7: 0000000000000000 0000000000000000 0000000000000000 000000000000000= 0 > %i0-3: 0000000000000000 0000000000000000 0000000000000000 000000000000000= 0 > %i4-7: 0000000000000000 0000000000000000 0000000000000000 000000000000000= 0 > > Floating Point Registers: > %f00: 000000000.000000 000000000.000000 000000000.000000 000000000.000000 > %f04: 000000000.000000 000000000.000000 000000000.000000 000000000.000000 > %f08: 000000000.000000 000000000.000000 000000000.000000 000000000.000000 > %f12: 000000000.000000 000000000.000000 000000000.000000 000000000.000000 > %f16: 000000000.000000 000000000.000000 000000000.000000 000000000.000000 > %f20: 000000000.000000 000000000.000000 000000000.000000 000000000.000000 > %f24: 000000000.000000 000000000.000000 000000000.000000 000000000.000000 > %f28: 000000000.000000 000000000.000000 000000000.000000 000000000.000000 > %f32: 000000000.000000 000000000.000000 000000000.000000 000000000.000000 > %f36: 000000000.000000 000000000.000000 000000000.000000 000000000.000000 > %f40: 000000000.000000 000000000.000000 000000000.000000 000000000.000000 > %f44: 000000000.000000 000000000.000000 000000000.000000 000000000.000000 > %f48: 000000000.000000 000000000.000000 000000000.000000 000000000.000000 > %f52: 000000000.000000 000000000.000000 000000000.000000 000000000.000000 > %f56: 000000000.000000 000000000.000000 000000000.000000 000000000.000000 > %f60: 000000000.000000 000000000.000000 000000000.000000 000000000.000000 > pstate: 00000035 ccr: 00 (icc: ---- xcc: ----) asi: 00 tl: 5 pil: 0 > cansave: 0 canrestore: 0 otherwin: 0 wstate: 0 cleanwin: 0 cwp: 7 > fsr: 0000000000000000 y: 0000000000000000 fprs: 0000000000000000 > > > Just in case, the properties of the real machine: > ok cd / > ok .properties > breakpoint-trap =A0 =A0 =A0 =A0 =A00000007f > #size-cells =A0 =A0 =A0 =A0 =A0 =A0 =A000000002 > energystar-v2 > model =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0SUNW,501-2486 > name =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 SUNW,Ultra-1 > clock-frequency =A0 =A0 =A0 =A0 =A004f9f54d > banner-name =A0 =A0 =A0 =A0 =A0 =A0 =A0Sun Ultra 1 UPA/SBus (UltraSPARC 1= 67MHz) > device_type =A0 =A0 =A0 =A0 =A0 =A0 =A0upa > > ok cd /SUNW,UltraSPARC > ok .properties > manufacturer# =A0 =A0 =A0 =A0 =A0 =A000 00 00 17 > implementation# =A0 =A0 =A0 =A0 =A000 00 00 10 > mask# =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A000 00 00 40 > sparc-version =A0 =A0 =A0 =A0 =A0 =A000 00 00 09 > ecache-associativity =A0 =A0 00 00 00 01 > ecache-line-size =A0 =A0 =A0 =A0 00 00 00 40 > ecache-size =A0 =A0 =A0 =A0 =A0 =A0 =A000 08 00 00 > #dtlb-entries =A0 =A0 =A0 =A0 =A0 =A000 00 00 40 > dcache-associativity =A0 =A0 00 00 00 01 > dcache-line-size =A0 =A0 =A0 =A0 00 00 00 20 > dcache-size =A0 =A0 =A0 =A0 =A0 =A0 =A000 00 40 00 > #itlb-entries =A0 =A0 =A0 =A0 =A0 =A000 00 00 40 > icache-associativity =A0 =A0 00 00 00 02 > icache-line-size =A0 =A0 =A0 =A0 00 00 00 20 > icache-size =A0 =A0 =A0 =A0 =A0 =A0 =A000 00 40 00 > upa-portid =A0 =A0 =A0 =A0 =A0 =A0 =A0 00000000 > clock-frequency =A0 =A0 =A0 =A0 =A009f3ea9a > reg =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0000001c0 00000000 00000000= 00000008 > device_type =A0 =A0 =A0 =A0 =A0 =A0 =A0cpu > name =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 SUNW,UltraSPARC --=20 Regards, Artyom Tarasenko solaris/sparc under qemu blog: http://tyom.blogspot.com/