On 2011-2-13 9:47 AM, Mark Cave-Ayland wrote:
[...] Incidentally if I also enable romvec debugging in OpenBIOS this is what I get on the console just before the crash:
vac: enabled in write through mode mem = 131072K (0x8000000) avail mem = 110419968 obp_nextnode(0x0) = 0xffd4527c obp_proplen(0xffd4527c, reg) (not found) obp_proplen(0xffd4527c, ranges) (not found) obp_proplen(0xffd4527c, intr) (not found) obp_proplen(0xffd4527c, interrupts) (not found)
That's not good. obp_nextnode() should be giving you a pointer to a valid node (I believe root), where it looks at properties.
The divide by zero is probably Solaris signalling an error; if things are bad enough that it can't talk with the PROM (or doesn't trust it), it does a divide by zero to blow up. In usr/src/psm/promif/ieee1275/sun4/prom_init.c :
/* * Fatal promif internal error, not an external interface */
/*ARGSUSED*/ void prom_fatal_error(const char *errormsg) {
volatile int zero = 0; volatile int i = 1;
/* * No prom interface, try to cause a trap by * dividing by zero, leaving the message in %i0. */
i = i / zero; /*NOTREACHED*/
I don't think this has anything to do with the PIL 14 or 10 issues you discuss later on.