[OpenBIOS] Sparc64 OpenBIOS
Mark Cave-Ayland
mark.cave-ayland at siriusit.co.uk
Thu Nov 19 10:50:43 CET 2009
Stefan Reinauer wrote:
> Nothing _in_ OpenBIOS should be using client interface methods. If it
> did, we should fix that as we proceed.
>
> With such a bug I wonder, however, how we could ever boot a client.
Yeah, that was one of my thoughts. Do we have a complete list of clients
that have booted from OpenBIOS anywhere?
> Attached patch should improve the behavior. It's untested though,
> possibly additional cleanup is needed after call-method...
Things get very slightly further, but it now throws an exception -21
(method not found):
Evaluating FCode...
call-method : exception -21
seek failed
Can't mount root
byte-load: exception caught!
Here's the debug output with your patch applied:
: seek ( 8002000 800 8000 0 ffe4adc8 )
00000000ffe28030: (") ( 8002000 800 8000 0 ffe4adc8 ffe28040 4 )
00000000ffe28048: call-method
: call-method ( 8002000 800 8000 0 ffe4adc8 ffe28040 4 )
00000000ffe27db8: dup ( 8002000 800 8000 0 ffe4adc8 ffe28040 4 4 )
00000000ffe27dc0: 0= ( 8002000 800 8000 0 ffe4adc8 ffe28040 4 0 )
00000000ffe27dc8: do?branch ( 8002000 800 8000 0 ffe4adc8 ffe28040 4 )
00000000ffe27e18: dup ( 8002000 800 8000 0 ffe4adc8 ffe28040 4 4 )
00000000ffe27e20: >r ( 8002000 800 8000 0 ffe4adc8 ffe28040 4 )
00000000ffe27e28: dup ( 8002000 800 8000 0 ffe4adc8 ffe28040 4 4 )
00000000ffe27e30: cstrlen ( 8002000 800 8000 0 ffe4adc8 ffe28040 4 0 )
00000000ffe27e38: rot ( 8002000 800 8000 0 ffe4adc8 4 0 ffe28040 )
00000000ffe27e40: ?ihandle ( 8002000 800 8000 0 ffe4adc8 4 0 ffe28040 )
00000000ffe27e48: (lit) ( 8002000 800 8000 0 ffe4adc8 4 0 ffe28040
ffe130d8 )
00000000ffe27e58: catch ( 8002000 800 8000 0 ffe4adc8 9
ffffffffffffffdf ffe06d78 ffffffffffffffdf )
00000000ffe27e60: dup ( 8002000 800 8000 0 ffe4adc8 9 ffffffffffffffdf
ffe06d78 ffffffffffffffdf ffffffffffffffdf )
00000000ffe27e68: do?branch ( 8002000 800 8000 0 ffe4adc8 9
ffffffffffffffdf ffe06d78 ffffffffffffffdf )
00000000ffe27e78: (") ( 8002000 800 8000 0 ffe4adc8 9 ffffffffffffffdf
ffe06d78 ffffffffffffffdf ffe27e88 c )
00000000ffe27e98: type call-method ( 8002000 800 8000 0 ffe4adc8 9
ffffffffffffffdf ffe06d78 ffffffffffffffdf )
00000000ffe27ea0: r@ ( 8002000 800 8000 0 ffe4adc8 9 ffffffffffffffdf
ffe06d78 ffffffffffffffdf 4 )
00000000ffe27ea8: dup ( 8002000 800 8000 0 ffe4adc8 9 ffffffffffffffdf
ffe06d78 ffffffffffffffdf 4 4 )
00000000ffe27eb0: cstrlen ( 8002000 800 8000 0 ffe4adc8 9
ffffffffffffffdf ffe06d78 ffffffffffffffdf 4 0 )
00000000ffe27eb8: type ( 8002000 800 8000 0 ffe4adc8 9 ffffffffffffffdf
ffe06d78 ffffffffffffffdf )
00000000ffe27ec0: (") ( 8002000 800 8000 0 ffe4adc8 9 ffffffffffffffdf
ffe06d78 ffffffffffffffdf ffe27ed0 c )
00000000ffe27ee0: type : exception ( 8002000 800 8000 0 ffe4adc8 9
ffffffffffffffdf ffe06d78 ffffffffffffffdf )
00000000ffe27ee8: dup ( 8002000 800 8000 0 ffe4adc8 9 ffffffffffffffdf
ffe06d78 ffffffffffffffdf ffffffffffffffdf )
00000000ffe27ef0: . -21 ( 8002000 800 8000 0 ffe4adc8 9
ffffffffffffffdf ffe06d78 ffffffffffffffdf )
00000000ffe27ef8: cr
( 8002000 800 8000 0 ffe4adc8 9 ffffffffffffffdf ffe06d78
ffffffffffffffdf )
00000000ffe27f00: r> ( 8002000 800 8000 0 ffe4adc8 9 ffffffffffffffdf
ffe06d78 ffffffffffffffdf 4 )
00000000ffe27f08: drop ( 8002000 800 8000 0 ffe4adc8 9 ffffffffffffffdf
ffe06d78 ffffffffffffffdf )
00000000ffe27f10: (semis)
[ Finished call-method ] ( 8002000 800 8000 0 ffe4adc8 9
ffffffffffffffdf ffe06d78 ffffffffffffffdf )
00000000ffe28050: (semis)
[ Finished seek ]
seek failed
Can't mount root
Aborted.
0 >
On first glance, it looks as if cstrlen is returning 0 which is probably
stopping the method name from being set correctly.
HTH,
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