Some new things came up recentrly, I’ve added some code from NetBSD and commented out the decr_init() in cpu_startup(). Now, during the boot I’ve rached subsystem 3800000 , as last time w/o decr_init(), but this time it seems it entered the newbus!
==========================================
[thread pid 0 tid 100000 ]
Breakpoint at 0×4930d8: stwu r1, r1, -0×20
db>
nexus0: registered as a time-of-day clock (resolution 1000us)
nexus0: , type (unknown) (no driver attached)
nexus0: , type (unknown) (no driver attached)
nexus0: , type (unknown) (no driver attached)
nexus0: , type (unknown) (no driver attached)
nexus0: , type (unknown) (no driver attached)
nexus0: , type memory (no driver attached)
nexus0: , type (unknown) (no driver attached)
nexus0: , type (unknown) (no driver attached)
nexus0: , type serial (no driver attached)
nexus0: , type builtin (no driver attached)
nexus0: , type pci (no driver attached)
sc0: no video adapter found.
nexus0: , type syscons (no driver attached)
done.
ofw_bus_gen_get_name(0)… cpu_exception:
SRR0 0×01035CFC SRR1 0×00003030 MSR 0×00003030
LR 0×0103E1E4 CTR 0×0101A5F0 CR 0×44002042 XER 0×20000000
DAR 0xD0004DDE DSISR 0×42000000 Type 3
GPR[] 0×00000007 0×00559EB4 0×00000000 0×00000000 0×07C05323 0×00000005 0×0000000D 0×0058EBB8
…
============================================
And again, the old friend. I can’t spot the cause of those crashes. They always look the same, with the same content of SRR0,1 and MSR. Adding some stuff from NetBSD helped, but it only took it just a few steps further. Thus it must be something wih the OF, but what? This time it’s nothing about the stack, because the registers contains some crazy addresses, neither form kernel, nor from the OF stack… During some previous tests I’ve encountered some crashes on instructions reading/writing to SPRG0 and IBAT4, in ofw_sprg_prepare(); and in
===========
from: src/sys/powerpc/aim/ofw_machdep.c
__asm __volatile( “\t”
”sync\n\t”
”mfmsr %0\n\t”
”mtmsr %1\n\t”
”isync\n”
: “=r” (oldmsr)
: “r” (ofmsr[0])
);
============
both in openfirmware()…