[OpenBIOS] OBP under qemu-system-sparc64
Artyom Tarasenko
atar4qemu at googlemail.com
Wed Apr 14 18:15:01 CEST 2010
2010/4/14 Artyom Tarasenko <atar4qemu at googlemail.com>:
> 2010/4/3 Blue Swirl <blauwirbel at gmail.com>:
>> 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: ldxa [ %g0 ] (69), %g2
> 0x000001fff0000024: stxa %g0, [ %g0 ] (69)
> 0x000001fff0000028: b,a 0x1fff0001d88
>
> --------------
> IN:
> 0x000001fff0001d88: rdpr %cwp, %g1
> 0x000001fff0001d8c: wrpr 0, %cwp
> 0x000001fff0001d90: wrpr %g1, 0, %cwp
> 0x000001fff0001d94: call 0x1fff0000210
> 0x000001fff0001d98: add %g0, %g0, %o0
>
> --------------
> IN:
> 0x000001fff0000210: mov 0x1ff, %o1 ! 0x1ff
> 0x000001fff0000214: sllx %o1, 0x20, %o1
> 0x000001fff0000218: sethi %hi(0xf1300000), %o2
> 0x000001fff000021c: or %o2, %o1, %o2
> 0x000001fff0000220: stba %o0, [ %o2 ] (21)
and on the real machine there seems to be some device connected to this address:
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 says
Aborted.
Since it's qemu issue, I won't post the further results on the
OpenBIOS mailing list. qemu-devel should be enough.
> 0x000001fff0000224: add %o2, 4, %o2
> 0x000001fff0000228: lduba [ %o2 ] (21), %o1
> 0x000001fff000022c: sllx %o1, 8, %o0
> 0x000001fff0000230: inc %o2
> 0x000001fff0000234: lduba [ %o2 ] (21), %o1
> 0x000001fff0000238: or %o0, %o1, %o0
> 0x000001fff000023c: sllx %o0, 8, %o0
> 0x000001fff0000240: inc %o2
> 0x000001fff0000244: lduba [ %o2 ] (21), %o1
> 0x000001fff0000248: or %o0, %o1, %o0
> 0x000001fff000024c: sllx %o0, 8, %o0
> 0x000001fff0000250: inc %o2
> 0x000001fff0000254: lduba [ %o2 ] (21), %o1
> 0x000001fff0000258: or %o0, %o1, %o0
> 0x000001fff000025c: retl
> 0x000001fff0000260: nop
>
> qemu: fatal: Trap 0x0032 while trap level (5) >= MAXTL (5), Error state
> pc: 000001fff0000220 npc: 000001fff0000224
>
> General Registers:
> %g0-3: 0000000000000000 0000000000000007 0000000000000000 0000000000000000
> %g4-7: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
>
> Current Register Window:
> %o0-3: 0000000000000000 000001ff00000000 000001fff1300000 0000000000000000
> %o4-7: 0000000000000000 0000000000000000 0000000000000000 000001fff0001d94
> %l0-3: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
> %l4-7: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
> %i0-3: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
> %i4-7: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
>
> 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 0000007f
> #size-cells 00000002
> energystar-v2
> model SUNW,501-2486
> name SUNW,Ultra-1
> clock-frequency 04f9f54d
> banner-name Sun Ultra 1 UPA/SBus (UltraSPARC 167MHz)
> device_type upa
>
> ok cd /SUNW,UltraSPARC
> ok .properties
> manufacturer# 00 00 00 17
> implementation# 00 00 00 10
> mask# 00 00 00 40
> sparc-version 00 00 00 09
> ecache-associativity 00 00 00 01
> ecache-line-size 00 00 00 40
> ecache-size 00 08 00 00
> #dtlb-entries 00 00 00 40
> dcache-associativity 00 00 00 01
> dcache-line-size 00 00 00 20
> dcache-size 00 00 40 00
> #itlb-entries 00 00 00 40
> icache-associativity 00 00 00 02
> icache-line-size 00 00 00 20
> icache-size 00 00 40 00
> upa-portid 00000000
> clock-frequency 09f3ea9a
> reg 000001c0 00000000 00000000 00000008
> device_type cpu
> name SUNW,UltraSPARC
--
Regards,
Artyom Tarasenko
solaris/sparc under qemu blog: http://tyom.blogspot.com/
More information about the OpenBIOS
mailing list