[OpenBIOS] Solaris 8 - fun with CPUs :)

Mark Cave-Ayland mark.cave-ayland at siriusit.co.uk
Fri Apr 8 12:08:15 CEST 2011


Hi all,

With the previous commit in place, we now get here trying to boot my 
Solaris 8 ISO image under OpenBIOS:


Configuration device id QEMU version 1 machine id 32
CPUs: 1 x FMI,MB86904
UUID: 00000000-0000-0000-0000-000000000000
Welcome to OpenBIOS v1.0 built on Apr 5 2011 08:40
   Type 'help' for detailed information

0 > boot cdrom:d -v Not a bootable ELF image
Loading a.out image...
Loaded 7680 bytes
entry point is 0x4000
bootpath: /iommu/sbus/espdma/esp/sd at 2,0:d

Jumping to entry point 00004000 for type 00000005...
switching to new context:
Size: 259040+54154+47486 Bytes
SunOS Release 5.8 Version Generic_108528-09 32-bit
Copyright 1983-2001 Sun Microsystems, Inc.  All rights reserved.
Ethernet address = 52:54:0:12:34:56
Using default device instance data
vac: enabled in write through mode
mem = 131072K (0x8000000)
avail mem = 110419968
root nexus = SUNW,SPARCstation-5
iommu0 at root: obio 0x10000000
sbus0 at iommu0: obio 0x10001000
dma0 at sbus0: SBus slot 5 0x8400000
dma0 is /iommu at 0,10000000/sbus at 0,10001000/espdma at 5,8400000
/iommu at 0,10000000/sbus at 0,10001000/espdma at 5,8400000/esp at 5,8800000 (esp0):
         esp-options=0x46
esp0 at dma0: SBus slot 5 0x8800000 sparc ipl 4
esp0 is /iommu at 0,10000000/sbus at 0,10001000/espdma at 5,8400000/esp at 5,8800000
sd2 at esp0: target 2 lun 0
sd2 is 
/iommu at 0,10000000/sbus at 0,10001000/espdma at 5,8400000/esp at 5,8800000/sd at 2,0
root on 
/iommu at 0,10000000/sbus at 0,10001000/espdma at 5,8400000/esp at 5,8800000/sd at 2,0:b fstype 
ufs
obio0 at root
obio0 at obio0: obio 0x100000, sparc ipl 12
zs0 is /obio/zs at 0,100000
obio1 at obio0: obio 0x0, sparc ipl 12
zs1 is /obio/zs at 0,0
(here we freeze)

According to Artyom's OBP output, the next line displayed should 
identify the CPU but we don't ever seem to get there. Looking at various 
symbols within the kernel, it appears as if we spend a short time in 
some kind of CPU speed detection routine (a loop of several seconds with 
lots of get_hrtime* type calls) before bailing out. Alas at the moment, 
kadb doesn't work which means since these calls are coming from a 
module, I don't have much in the symbol names to work with.

Talking of kadb, if I try and invoke it at the moment, I get this:

Configuration device id QEMU version 1 machine id 32
CPUs: 1 x FMI,MB86904
UUID: 00000000-0000-0000-0000-000000000000
Welcome to OpenBIOS v1.0 built on Apr 5 2011 08:40
   Type 'help' for detailed information

0 > boot cdrom:d kadb -kdv Not a bootable ELF image
Loading a.out image...
Loaded 7680 bytes
entry point is 0x4000
bootpath: /iommu/sbus/espdma/esp/sd at 2,0:d

Jumping to entry point 00004000 for type 00000005...
switching to new context:
Size: 119204+222573+28987 Bytes
kadb:
kadb: kernel/unix
Size: 259040+54154+47486 Bytes
/platform/SUNW,SPARCstation-5/kernel/unix loaded - 0x95000 bytes used
kadb[0]: :c
Begin traceback... sp = 12f9e0
Called from fbd01700, fp=12fa50, args=9 f0086444 f0086438 0 f0258f2c 0
Called from f00859e0, fp=12fad8, args=f0258fc0 44 12fbf8 0 f0258f2c f0258f70
Called from f0082518, fp=12fb38, args=f0258fc0 0 44 0 0 fbd039e4
Called from f0081c48, fp=12fb98, args=12fbf8 f0258de8 12fbf8 fbd58800 
f0040000 f0240000
Called from f00819c0, fp=12fff8, args=130168 f0258f70 f0258ed8 f0258ed0 
2 130168
Called from f007ff0c, fp=130058, args=f0258c00 f0258c00 fbd54860 130168 
f0258d08 f
End traceback...
fault and calling cmd: trap 9 sp 12f9e0 pc f0086444 npc f0086438
stopped at:
kadb[0]:


I think trap #9 is "data access error" but it only occurs when booting 
the kernel with kadb. Looks like this will need a bit more investigation.


ATB,

Mark.

-- 
Mark Cave-Ayland - Senior Technical Architect
PostgreSQL - PostGIS
Sirius Corporation plc - control through freedom
http://www.siriusit.co.uk
t: +44 870 608 0063

Sirius Labs: http://www.siriusit.co.uk/labs



More information about the OpenBIOS mailing list