[OpenBIOS] Booting SunOS from OpenBIOS

Artyom Tarasenko atar4qemu at gmail.com
Thu Mar 28 09:38:53 CET 2013


Back to the original topic:

Here is the boot log with romvec debug:

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 Mar 26 2013 13:29
  Type 'help' for detailed information
Trying disk...
Not a bootable ELF image
Loading a.out image...
Loaded 7680 bytes
entry point is 0x4000
bootpath: /iommu/sbus/espdma/esp/sd at 0,0

Jumping to entry point 00004000 for type 00000005...
switching to new context:
obp_nextnode(0x0) = 0xffd4531c
obp_child(0xffd4531c) = 0xffd45438
obp_proplen(0xffd45438, name) = 8
obp_nextnode(0xffd45438) = 0xffd454dc
obp_proplen(0xffd454dc, name) = 9
obp_nextnode(0xffd454dc) = 0xffd45684
obp_proplen(0xffd45684, name) = 8
obp_nextnode(0xffd45684) = 0xffd456fc
obp_proplen(0xffd456fc, name) = 7
obp_nextnode(0xffd456fc) = 0xffd457e0
obp_proplen(0xffd457e0, name) = 8
obp_nextnode(0xffd457e0) = 0xffd4b084
obp_proplen(0xffd4b084, name) = 9
obp_nextnode(0xffd4b084) = 0xffd4ca8c
obp_proplen(0xffd4ca8c, name) = 7
obp_nextnode(0xffd4ca8c) = 0xffd4cb30
obp_proplen(0xffd4cb30, name) = 15
obp_nextnode(0xffd4cb30) = 0xffd4cbdc
obp_proplen(0xffd4cbdc, name) = 6
obp_nextnode(0xffd4cbdc) = 0xffd4d394
obp_proplen(0xffd4d394, name) = 5
obp_nextnode(0xffd4d394) = 0xffd50758
obp_proplen(0xffd50758, name) = 12
obp_nextnode(0xffd50758) = 0x0
obp_devopen(/iommu/sbus/espdma/esp/sd at 0,0) = 0xffc831f8
obp_devseek(fd 0xffc831f8, hi 0, lo 3637248) = 0
obp_devread(fd 0xffc831f8, buf 0x4000, nbytes 8192) = 8192
obp_devseek(fd 0xffc831f8, hi 0, lo 3645440) = 0
obp_devread(fd 0xffc831f8, buf 0x6000, nbytes 8192) = 8192
obp_devseek(fd 0xffc831f8, hi 0, lo 3653632) = 0
obp_devread(fd 0xffc831f8, buf 0x8000, nbytes 8192) = 8192
obp_devseek(fd 0xffc831f8, hi 0, lo 3661824) = 0
obp_devread(fd 0xffc831f8, buf 0xa000, nbytes 8192) = 8192
obp_devseek(fd 0xffc831f8, hi 0, lo 3670016) = 0
obp_devread(fd 0xffc831f8, buf 0xc000, nbytes 8192) = 8192
obp_devseek(fd 0xffc831f8, hi 0, lo 3678208) = 0
obp_devread(fd 0xffc831f8, buf 0xe000, nbytes 8192) = 8192
obp_devseek(fd 0xffc831f8, hi 0, lo 3686400) = 0
obp_devread(fd 0xffc831f8, buf 0x10000, nbytes 8192) = 8192
obp_devseek(fd 0xffc831f8, hi 0, lo 3694592) = 0
obp_devread(fd 0xffc831f8, buf 0x12000, nbytes 8192) = 8192
obp_devseek(fd 0xffc831f8, hi 0, lo 3702784) = 0
obp_devread(fd 0xffc831f8, buf 0x14000, nbytes 8192) = 8192
obp_devseek(fd 0xffc831f8, hi 0, lo 3710976) = 0
obp_devread(fd 0xffc831f8, buf 0x16000, nbytes 8192) = 8192
obp_devseek(fd 0xffc831f8, hi 0, lo 3719168) = 0
obp_devread(fd 0xffc831f8, buf 0x18000, nbytes 8192) = 8192
obp_devseek(fd 0xffc831f8, hi 0, lo 3727360) = 0
obp_devread(fd 0xffc831f8, buf 0x1a000, nbytes 8192) = 8192
obp_devseek(fd 0xffc831f8, hi 0, lo 3743744) = 0
obp_devread(fd 0xffc831f8, buf 0x1c000, nbytes 8192) = 8192
obp_devclose(0xffc831f8) = 1
obp_nextnode(0x0) = 0xffd4531c
obp_child(0xffd4531c) = 0xffd45438
obp_proplen(0xffd45438, name) = 8
obp_nextnode(0xffd45438) = 0xffd454dc
obp_proplen(0xffd454dc, name) = 9
obp_nextnode(0xffd454dc) = 0xffd45684
obp_proplen(0xffd45684, name) = 8
obp_nextnode(0xffd45684) = 0xffd456fc
obp_proplen(0xffd456fc, name) = 7
obp_nextnode(0xffd456fc) = 0xffd457e0
obp_proplen(0xffd457e0, name) = 8
obp_nextnode(0xffd457e0) = 0xffd4b084
obp_proplen(0xffd4b084, name) = 9
obp_nextnode(0xffd4b084) = 0xffd4ca8c
obp_proplen(0xffd4ca8c, name) = 7
obp_nextnode(0xffd4ca8c) = 0xffd4cb30
obp_proplen(0xffd4cb30, name) = 15
obp_nextnode(0xffd4cb30) = 0xffd4cbdc
obp_proplen(0xffd4cbdc, name) = 6
obp_nextnode(0xffd4cbdc) = 0xffd4d394
obp_proplen(0xffd4d394, name) = 5
obp_nextnode(0xffd4d394) = 0xffd50758

^^^^ is that correct?

obp_proplen(0xffd50758, name) = 12
obp_nextnode(0xffd50758) = 0x0
Unhandled Exception 0x00000007
PC = 0x00401a04 NPC = 0x00401a08
Stopping execution

Now, the last obp_nextnode looks suspicious. It looks like the boot
process is iterating over the devices in / without descending, but I
don't see the node 0xffd50758. The last two known ones are /iommu
(0xffd4cbdc) and /obio (0xffd4d394)

0 > show-devs
ffd4531c /
ffd45438 /aliases
ffd454dc /openprom (BootROM)
ffd4b378 /openprom/client-services
ffd45684 /options
ffd456fc /chosen
ffd457e0 /builtin
ffd45884 /builtin/console
ffd4b084 /packages
ffd4c130 /packages/cmdline
ffd4c270 /packages/disk-label
ffd4e088 /packages/deblocker
ffd4e3dc /packages/grubfs-files
ffd4e614 /packages/sun-parts
ffd4e84c /packages/elf-loader
ffd4ca8c /memory at 0,0
ffd4cb30 /virtual-memory at 0,0
ffd4cbdc /iommu at 0,10000000
ffd4cd4c /iommu at 0,10000000/sbus at 0,10001000 (hierarchical)
ffd4cf0c /iommu at 0,10000000/sbus at 0,10001000/SUNW,tcx at 3,800000 (display)
ffd4d124 /iommu at 0,10000000/sbus at 0,10001000/espdma at 5,8400000
ffd4fd0c /iommu at 0,10000000/sbus at 0,10001000/espdma at 5,8400000/esp at 5,8800000 (scsi)
ffd4ff48 /iommu at 0,10000000/sbus at 0,10001000/espdma at 5,8400000/esp at 5,8800000/sd at 0,0
(block)
ffd50334 /iommu at 0,10000000/sbus at 0,10001000/espdma at 5,8400000/esp at 5,8800000/sd at 2,0
(block)
ffd4d1dc /iommu at 0,10000000/sbus at 0,10001000/ledma at 5,8400010
ffd4d2b4 /iommu at 0,10000000/sbus at 0,10001000/ledma at 5,8400010/le at 5,8c00000
(network)
ffd4fb28 /iommu at 0,10000000/sbus at 0,10001000/SUNW,CS4231 at 4,c000000 (serial)
ffd4fc48 /iommu at 0,10000000/sbus at 0,10001000/power-management at 4,a000000
ffd4d394 /obio (hierarchical)
ffd4ea48 /obio/zs at 0,100000 (serial)
ffd4ecc4 /obio/zs at 0,0 (serial)
ffd4ef24 /obio/eeprom at 0,200000
ffd4f034 /obio/SUNW,fdtwo at 0,400000 (block)
ffd4f378 /obio/auxio at 0,900000
ffd4f42c /obio/power at 0,910000
ffd4f524 /obio/counter at 0,d00000
ffd4f618 /obio/interrupt at 0,e00000
ffd4f778 /obio/slavioconfig at 0,800000
ffd50760 /FMI,MB86904 (cpu)

-- 
Regards,
Artyom Tarasenko

linux/sparc and solaris/sparc under qemu blog:
http://tyom.blogspot.com/search/label/qemu



More information about the OpenBIOS mailing list