Mark Cave-Ayland wrote:
Yeah, it did seem to lie within the OpenBIOS symbol range. Perhaps it's something going wrong in one of the CIF calls from the kernel into OB? I seem to recall there's a DEBUG_CIF in libopenbios/client.c that traces these things...
Indeed. And that gives the following:
0 > go Jumping to entry point 00000000010071d8 for type 0000000000000001... switching to new context: entry point 0x10071d8 stack 0x00000000ffe02a91 finddevice("/chosen") = 0xffe1d918 peer(0x00000000) = 0xffe1d280 getproplen(0xffe1d918, "elfheader-address") = 0x00000004 getprop(0xffe1d918, "elfheader-address", 0xffe0328c, 4) = service getprop: argument count error (0 1) 0 getproplen(0xffe1d280, "device_type") = 0xffffffffffffffff child(0xffe1d280) = 0xffe1d458 getproplen(0xffe1d458, "device_type") = 0xffffffffffffffff child(0xffe1d458) = 0x00000000 peer(0xffe1d458) = 0xffe1d580 getproplen(0xffe1d580, "device_type") = 0x00000008 getproplen(0xffe1d580, "device_type") = 0x00000008 getprop(0xffe1d580, "device_type", 0xffe02ce0, 8) = service getprop: argument count error (0 1) 8 0xffe02ce0 42 6f 6f 74 52 4f 4d 00 __ __ __ __ __ __ __ __ BootROM. child(0xffe1d580) = 0xffe26c00 getproplen(0xffe26c00, "device_type") = 0xffffffffffffffff child(0xffe26c00) = 0x00000000 peer(0xffe26c00) = 0x00000000 peer(0xffe1d580) = 0xffe1d838 getproplen(0xffe1d838, "device_type") = 0xffffffffffffffff child(0xffe1d838) = 0x00000000 peer(0xffe1d838) = 0xffe1d918 getproplen(0xffe1d918, "device_type") = 0xffffffffffffffff child(0xffe1d918) = 0x00000000 peer(0xffe1d918) = 0xffe1dab8 getproplen(0xffe1dab8, "device_type") = 0xffffffffffffffff child(0xffe1dab8) = 0xffe1dbe0 getproplen(0xffe1dbe0, "device_type") = 0xffffffffffffffff child(0xffe1dbe0) = 0x00000000 peer(0xffe1dbe0) = 0x00000000 peer(0xffe1dab8) = 0xffe266c8 getproplen(0xffe266c8, "device_type") = 0xffffffffffffffff child(0xffe266c8) = 0xffe28498 getproplen(0xffe28498, "device_type") = 0xffffffffffffffff child(0xffe28498) = 0x00000000 peer(0xffe28498) = 0xffe286e8 getproplen(0xffe286e8, "device_type") = 0xffffffffffffffff child(0xffe286e8) = 0x00000000 peer(0xffe286e8) = 0xffe29de8 getproplen(0xffe29de8, "device_type") = 0xffffffffffffffff child(0xffe29de8) = 0x00000000 peer(0xffe29de8) = 0xffe2a440 getproplen(0xffe2a440, "device_type") = 0xffffffffffffffff child(0xffe2a440) = 0x00000000 peer(0xffe2a440) = 0xffe2aa68 getproplen(0xffe2aa68, "device_type") = 0xffffffffffffffff child(0xffe2aa68) = 0x00000000 peer(0xffe2aa68) = 0xffe2ad28 getproplen(0xffe2ad28, "device_type") = 0xffffffffffffffff child(0xffe2ad28) = 0x00000000 peer(0xffe2ad28) = 0xffe31268 getproplen(0xffe31268, "device_type") = 0xffffffffffffffff child(0xffe31268) = 0x00000000 peer(0xffe31268) = 0xffe3a050 getproplen(0xffe3a050, "device_type") = 0xffffffffffffffff child(0xffe3a050) = 0x00000000 peer(0xffe3a050) = 0x00000000 peer(0xffe266c8) = 0xffe290a0 getproplen(0xffe290a0, "device_type") = 0x00000007 getproplen(0xffe290a0, "device_type") = 0x00000007 getprop(0xffe290a0, "device_type", 0xffe02ce0, 7) = service getprop: argument count error (0 1) 7 0xffe02ce0 6d 65 6d 6f 72 79 00 __ __ __ __ __ __ __ __ __ memory. child(0xffe290a0) = 0x00000000 peer(0xffe290a0) = 0xffe29200 getproplen(0xffe29200, "device_type") = 0xffffffffffffffff child(0xffe29200) = 0x00000000 peer(0xffe29200) = 0xffe2ae88 getproplen(0xffe2ae88, "device_type") = 0x00000004 getproplen(0xffe2ae88, "device_type") = 0x00000004 getprop(0xffe2ae88, "device_type", 0xffe02ce0, 4) = service getprop: argument count error (0 1) 4 0xffe02ce0 70 63 69 00 __ __ __ __ __ __ __ __ __ __ __ __ pci. child(0xffe2ae88) = 0xffe2b728 getproplen(0xffe2b728, "device_type") = 0x00000004 getproplen(0xffe2b728, "device_type") = 0x00000004 getprop(0xffe2b728, "device_type", 0xffe02ce0, 4) = service getprop: argument count error (0 1) 4 0xffe02ce0 70 63 69 00 __ __ __ __ __ __ __ __ __ __ __ __ pci. child(0xffe2b728) = 0xffe2bdd0 getproplen(0xffe2bdd0, "device_type") = 0x00000004 getproplen(0xffe2bdd0, "device_type") = 0x00000004 getprop(0xffe2bdd0, "device_type", 0xffe02ce0, 4) = service getprop: argument count error (0 1) 4 0xffe02ce0 70 63 69 00 __ __ __ __ __ __ __ __ __ __ __ __ pci. child(0xffe2bdd0) = 0xffe2c450 getproplen(0xffe2c450, "device_type") = 0x00000008 getproplen(0xffe2c450, "device_type") = 0x00000008 getprop(0xffe2c450, "device_type", 0xffe02ce0, 8) = service getprop: argument count error (0 1) 8 0xffe02ce0 64 69 73 70 6c 61 79 00 __ __ __ __ __ __ __ __ display. child(0xffe2c450) = 0x00000000 peer(0xffe2c450) = 0xffe2cc08 getproplen(0xffe2cc08, "device_type") = 0xffffffffffffffff child(0xffe2cc08) = 0xffe2d250 getproplen(0xffe2d250, "device_type") = 0x00000006 getproplen(0xffe2d250, "device_type") = 0x00000006 getprop(0xffe2d250, "device_type", 0xffe02ce0, 6) = service getprop: argument count error (0 1) 6 0xffe02ce0 62 6c 6f 63 6b 00 __ __ __ __ __ __ __ __ __ __ block. child(0xffe2d250) = 0x00000000 peer(0xffe2d250) = 0xffe2d750 getproplen(0xffe2d750, "device_type") = 0x00000007 getproplen(0xffe2d750, "device_type") = 0x00000007 getprop(0xffe2d750, "device_type", 0xffe02ce0, 7) = service getprop: argument count error (0 1) 7 0xffe02ce0 73 65 72 69 61 6c 00 __ __ __ __ __ __ __ __ __ serial. child(0xffe2d750) = 0x00000000 peer(0xffe2d750) = 0xffe2da50 getproplen(0xffe2da50, "device_type") = 0x00000007 getproplen(0xffe2da50, "device_type") = 0x00000007 getprop(0xffe2da50, "device_type", 0xffe02ce0, 7) = service getprop: argument count error (0 1) 7 0xffe02ce0 73 65 72 69 61 6c 00 __ __ __ __ __ __ __ __ __ serial. child(0xffe2da50) = 0x00000000 peer(0xffe2da50) = 0x00000000 peer(0xffe2cc08) = 0xffe2dd80 getproplen(0xffe2dd80, "device_type") = 0x00000008 getproplen(0xffe2dd80, "device_type") = 0x00000008 getprop(0xffe2dd80, "device_type", 0xffe02ce0, 8) = service getprop: argument count error (0 1) 8 0xffe02ce0 6e 65 74 77 6f 72 6b 00 __ __ __ __ __ __ __ __ network. child(0xffe2dd80) = 0x00000000 peer(0xffe2dd80) = 0xffe2e360 getproplen(0xffe2e360, "device_type") = 0x00000008 getproplen(0xffe2e360, "device_type") = 0x00000008 getprop(0xffe2e360, "device_type", 0xffe02ce0, 8) = service getprop: argument count error (0 1) 8 0xffe02ce0 70 63 69 2d 69 64 65 00 __ __ __ __ __ __ __ __ pci-ide. child(0xffe2e360) = 0xffe2e950 getproplen(0xffe2e950, "device_type") = 0x00000004 getproplen(0xffe2e950, "device_type") = 0x00000004 getprop(0xffe2e950, "device_type", 0xffe02ce0, 4) = service getprop: argument count error (0 1) 4 0xffe02ce0 69 64 65 00 __ __ __ __ __ __ __ __ __ __ __ __ ide. child(0xffe2e950) = 0xffe2ec40 getproplen(0xffe2ec40, "device_type") = 0x00000006 getproplen(0xffe2ec40, "device_type") = 0x00000006 getprop(0xffe2ec40, "device_type", 0xffe02ce0, 6) = service getprop: argument count error (0 1) 6 0xffe02ce0 62 6c 6f 63 6b 00 __ __ __ __ __ __ __ __ __ __ block. child(0xffe2ec40) = 0x00000000 peer(0xffe2ec40) = 0x00000000 peer(0xffe2e950) = 0xffe2f290 getproplen(0xffe2f290, "device_type") = 0x00000004 getproplen(0xffe2f290, "device_type") = 0x00000004 getprop(0xffe2f290, "device_type", 0xffe02ce0, 4) = service getprop: argument count error (0 1) 4 0xffe02ce0 69 64 65 00 __ __ __ __ __ __ __ __ __ __ __ __ ide. child(0xffe2f290) = 0xffe2f580 getproplen(0xffe2f580, "device_type") = 0x00000006 getproplen(0xffe2f580, "device_type") = 0x00000006 getprop(0xffe2f580, "device_type", 0xffe02ce0, 6) = service getprop: argument count error (0 1) 6 0xffe02ce0 62 6c 6f 63 6b 00 __ __ __ __ __ __ __ __ __ __ block. child(0xffe2f580) = 0x00000000 peer(0xffe2f580) = 0x00000000 peer(0xffe2f290) = 0x00000000 peer(0xffe2e360) = 0x00000000 peer(0xffe2bdd0) = 0x00000000 peer(0xffe2b728) = 0x00000000 peer(0xffe2ae88) = 0xffe2fbd0 getproplen(0xffe2fbd0, "device_type") = 0x00000004 getproplen(0xffe2fbd0, "device_type") = 0x00000004 getprop(0xffe2fbd0, "device_type", 0xffe02ce0, 4) = service getprop: argument count error (0 1) 4 0xffe02ce0 63 70 75 00 __ __ __ __ __ __ __ __ __ __ __ __ cpu. getproplen(0xffe2fbd0, "name") = 0x00000013 getproplen(0xffe2fbd0, "name") = 0x00000013 getprop(0xffe2fbd0, "name", 0x0181c770, 19) = service getprop: argument count error (0 1) 19 0x0181c770 53 55 4e 57 2c 55 6c 74 72 61 53 50 41 52 43 2d SUNW,UltraSPARC- 0x0181c780 49 49 00 __ __ __ __ __ __ __ __ __ __ __ __ __ II. getproplen(0xffe2fbd0, "compatible") = 0xffffffffffffffff parent(0xffe2fbd0) = 0xffe1d280 getproplen(0xffe1d280, "compatible") = 0x00000006 getproplen(0xffe1d280, "device_type") = 0xffffffffffffffff getproplen(0xffe1d918, "whoami") = 0x00000024 getprop(0xffe1d918, "whoami", 0xffe02d50, 36) = service getprop: argument count error (0 1) 3 0xffe02d50 2f 70 6c __ __ __ __ __ __ __ __ __ __ __ __ __ /pl getproplen(0xffe1d918, "bootfs") = 0x00000004 getprop(0xffe1d918, "bootfs", 0x01812588, 4) = service getprop: argument count error (0 1) 4 0x01812588 ff e4 7d e0 __ __ __ __ __ __ __ __ __ __ __ __ ��}� getproplen(0xffe1d918, "archfs") = 0x00000004 getprop(0xffe1d918, "archfs", 0x0181258c, 4) = service getprop: argument count error (0 1) 4 0x0181258c ff e6 ac b8 __ __ __ __ __ __ __ __ __ __ __ __ �欸 getproplen(0xffe1d918, "impl-arch-name") = 0x00000006 getprop(0xffe1d918, "impl-arch-name", 0xffe027c8, 6) = service getprop: argument count error (0 1) 0 of_client_interface: call-method 10baf58 ffe6acb8 35 1861508 call-method open-file ([4] -- [3]) handle_calls return: 0 ffffffffffffffff 0 getproplen(0xffe1d918, "mmu") = 0x00000004 getproplen(0xffe1d918, "mmu") = 0x00000004 getprop(0xffe1d918, "mmu", 0x01821fac, 4) = service getprop: argument count error (0 1) 4 0x01821fac ff e4 83 d8 __ __ __ __ __ __ __ __ __ __ __ __ ��.� of_client_interface: call-method 10bb110 ffe483d8 0 2000 4c000000 call-method claim ([5] -- [2]) handle_calls return: 0 4c000000 getproplen(0xffe1d918, "memory") = 0x00000004 getproplen(0xffe1d918, "memory") = 0x00000004 getprop(0xffe1d918, "memory", 0x01821fa8, 4) = service getprop: argument count error (0 1) 4 0x01821fa8 ff e4 8e 58 __ __ __ __ __ __ __ __ __ __ __ __ ��.X of_client_interface: call-method 10bb0a8 ffe48e58 8 2000 call-method claim ([4] -- [3]) handle_calls return: 0 0 5700000 of_client_interface: call-method 10bb108 ffe483d8 ffffffffffffffff 2000 4c000000 0 5700000 call-method map ([7] -- [1]) handle_calls return: 0 of_client_interface: call-method 10bafa8 ffe6acb8 0 call-method cinfo-file ([3] -- [4]) handle_calls return: 0 0 1d2a8 2000 of_client_interface: call-method 10bb110 ffe483d8 0 2000 4c002000 call-method claim ([5] -- [2]) handle_calls return: 0 4c002000 of_client_interface: call-method 10bb0a8 ffe48e58 8 2000 call-method claim ([4] -- [3]) handle_calls return: 0 0 5702000 of_client_interface: call-method 10bb108 ffe483d8 ffffffffffffffff 2000 4c002000 0 5702000 call-method map ([7] -- [1]) handle_calls return: 0 of_client_interface: call-method 10bafb8 ffe6acb8 0 call-method close-file ([3] -- [1]) handle_calls return: 0 of_client_interface: call-method 10baf58 ffe6acb8 26 1865998 call-method open-file ([4] -- [3]) handle_calls return: 0 ffffffffffffffff 0 of_client_interface: call-method 10bafa8 ffe6acb8 0 call-method cinfo-file ([3] -- [4]) handle_calls return: 0 0 449508 2000 of_client_interface: call-method 10bb110 ffe483d8 0 2000 4c004000 call-method claim ([5] -- [2]) handle_calls return: 0 4c004000 of_client_interface: call-method 10bb0a8 ffe48e58 8 2000 call-method claim ([4] -- [3]) handle_calls return: 0 0 5704000 of_client_interface: call-method 10bb108 ffe483d8 ffffffffffffffff 2000 4c004000 0 5704000 call-method map ([7] -- [1]) handle_calls return: 0 of_client_interface: call-method 10baf78 ffe6acb8 0 0 call-method seek-file ([4] -- [3]) handle_calls return: 0 ffffffffffffffff 0 getproplen(0xffe1d918, "stdout") = 0x00000004 getproplen(0xffe1d918, "stdout") = 0x00000004 getprop(0xffe1d918, "stdout", 0x01821fa0, 4) = service getprop: argument count error (0 1) 4 0x01821fa0 ff e4 88 b0 __ __ __ __ __ __ __ __ __ __ __ __ ��.� of_client_interface: call-method 10baf88 ffe6acb8 0 2000 4c004000 call-method read-file ([5] -- [2]) handle_calls return: 0 2000 of_client_interface: call-method 10baf78 ffe6acb8 0 448000 call-method seek-file ([4] -- [3]) handle_calls return: 0 ffffffffffffffff 448000 of_client_interface: call-method 10baf88 ffe6acb8 0 2000 4c004000 call-method read-file ([5] -- [2]) handle_calls return: 0 1508 of_client_interface: call-method 10baf78 ffe6acb8 0 0 call-method seek-file ([4] -- [3]) handle_calls return: 0 ffffffffffffffff 0 of_client_interface: call-method 10baf88 ffe6acb8 0 2000 4c004000 call-method read-file ([5] -- [2]) handle_calls return: 0 2000 of_client_interface: call-method 10baf78 ffe6acb8 0 2000 call-method seek-file ([4] -- [3]) handle_calls return: 0 ffffffffffffffff 2000 of_client_interface: call-method 10baf88 ffe6acb8 0 17e000 10c1310 call-method read-file ([5] -- [2]) handle_calls return: 0 17e000 of_client_interface: call-method 10baf78 ffe6acb8 0 180000 call-method seek-file ([4] -- [3]) handle_calls return: 0 ffffffffffffffff 180000 of_client_interface: call-method 10baf88 ffe6acb8 0 2000 4c004000 call-method read-file ([5] -- [2]) handle_calls return: 0 2000 of_client_interface: call-method 10baf78 ffe6acb8 0 182000 call-method seek-file ([4] -- [3]) handle_calls return: 0 ffffffffffffffff 182000 of_client_interface: call-method 10baf88 ffe6acb8 0 62000 1241310 call-method read-file ([5] -- [2]) handle_calls return: 0 62000 of_client_interface: call-method 10baf78 ffe6acb8 0 1e4000 call-method seek-file ([4] -- [3]) handle_calls return: 0 ffffffffffffffff 1e4000 of_client_interface: call-method 10baf88 ffe6acb8 0 2000 4c004000 call-method read-file ([5] -- [2]) handle_calls return: 0 2000 of_client_interface: call-method 10baf78 ffe6acb8 0 1e6000 call-method seek-file ([4] -- [3]) handle_calls return: 0 ffffffffffffffff 1e6000 of_client_interface: call-method 10baf88 ffe6acb8 0 10000 12a5310 call-method read-file ([5] -- [2]) handle_calls return: 0 10000 of_client_interface: call-method 10baf78 ffe6acb8 0 1f6000 call-method seek-file ([4] -- [3]) handle_calls return: 0 ffffffffffffffff 1f6000 of_client_interface: call-method 10baf88 ffe6acb8 0 2000 4c004000 call-method read-file ([5] -- [2]) handle_calls return: 0 2000 of_client_interface: call-method 10baf78 ffe6acb8 0 1f8000 call-method seek-file ([4] -- [3]) handle_calls return: 0 ffffffffffffffff 1f8000 of_client_interface: call-method 10baf88 ffe6acb8 0 e000 1867490 call-method read-file ([5] -- [2]) handle_calls return: 0 e000 of_client_interface: call-method 10baf78 ffe6acb8 0 206000 call-method seek-file ([4] -- [3]) handle_calls return: 0 ffffffffffffffff 206000 of_client_interface: call-method 10baf88 ffe6acb8 0 2000 4c004000 call-method read-file ([5] -- [2]) handle_calls return: 0 2000 of_client_interface: call-method 10bb110 ffe483d8 0 15c000 4c006000 call-method claim ([5] -- [2]) handle_calls return: 0 4c006000 of_client_interface: call-method 10bb0a8 ffe48e58 8 15c000 call-method claim ([4] -- [3]) handle_calls return: 0 0 6000000 of_client_interface: call-method 10bb108 ffe483d8 ffffffffffffffff 15c000 4c006000 0 6000000 call-method map ([7] -- [1]) handle_calls return: 0 of_client_interface: call-method 10baf78 ffe6acb8 0 29a000 call-method seek-file ([4] -- [3]) handle_calls return: 0 ffffffffffffffff 29a000 of_client_interface: call-method 10baf88 ffe6acb8 0 2000 4c004000 call-method read-file ([5] -- [2]) handle_calls return: 0 2000 of_client_interface: call-method 10baf78 ffe6acb8 0 29c000 call-method seek-file ([4] -- [3]) handle_calls return: 0 ffffffffffffffff 29c000 of_client_interface: call-method 10baf88 ffe6acb8 0 158000 4c006e38 call-method read-file ([5] -- [2]) handle_calls return: 0 158000 of_client_interface: call-method 10baf78 ffe6acb8 0 3f4000 call-method seek-file ([4] -- [3]) handle_calls return: 0 ffffffffffffffff 3f4000 of_client_interface: call-method 10baf88 ffe6acb8 0 2000 4c004000 call-method read-file ([5] -- [2]) handle_calls return: 0 2000 of_client_interface: call-method 10bb110 ffe483d8 0 2000 4c162000 call-method claim ([5] -- [2]) handle_calls return: 0 4c162000 of_client_interface: call-method 10bb0a8 ffe48e58 8 2000 call-method claim ([4] -- [3]) handle_calls return: 0 0 5706000 of_client_interface: call-method 10bb108 ffe483d8 ffffffffffffffff 2000 4c162000 0 5706000 call-method map ([7] -- [1]) handle_calls return: 0 of_client_interface: call-method 10baf78 ffe6acb8 0 3f6000 call-method seek-file ([4] -- [3]) handle_calls return: 0 ffffffffffffffff 3f6000 of_client_interface: call-method 10baf88 ffe6acb8 0 2000 4c004000 call-method read-file ([5] -- [2]) handle_calls return: 0 2000 of_client_interface: call-method 10bb110 ffe483d8 0 e000 4c164000 call-method claim ([5] -- [2]) handle_calls return: 0 4c164000 of_client_interface: call-method 10bb0a8 ffe48e58 8 e000 call-method claim ([4] -- [3]) handle_calls return: 0 0 5708000 of_client_interface: call-method 10bb108 ffe483d8 ffffffffffffffff e000 4c164000 0 5708000 call-method map ([7] -- [1]) handle_calls return: 0 of_client_interface: call-method 10baf78 ffe6acb8 0 3f8000 call-method seek-file ([4] -- [3]) handle_calls return: 0 ffffffffffffffff 3f8000 of_client_interface: call-method 10baf88 ffe6acb8 0 a000 4c164838 call-method read-file ([5] -- [2]) handle_calls return: 0 a000 of_client_interface: call-method 10baf78 ffe6acb8 0 402000 call-method seek-file ([4] -- [3]) handle_calls return: 0 ffffffffffffffff 402000 of_client_interface: call-method 10baf88 ffe6acb8 0 2000 4c004000 call-method read-file ([5] -- [2]) handle_calls return: 0 2000 of_client_interface: call-method 10bb110 ffe483d8 0 6a000 4c172000 call-method claim ([5] -- [2]) handle_calls return: 0 4c172000 of_client_interface: call-method 10bb0a8 ffe48e58 8 6a000 call-method claim ([4] -- [3]) handle_calls return: 0 0 5716000 of_client_interface: call-method 10bb108 ffe483d8 ffffffffffffffff 6a000 4c172000 0 5716000 call-method map ([7] -- [1]) Unhandled Exception 0x582c01ed41000000 PC = 0x00000000ffd0e94c NPC = 0x00000000ffd0e950 Stopping execution
So looks like its possibly related to the MMU? What I do find interesting aswell is that the getprop CIF calls seem to throw argument count errors too...
ATB,
Mark.