Port-powerpc archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: ofppc-current



At 02:06 AM 11/23/2002, Jochen Kunz wrote:
Hi.

I am trying to get -current to run on my Motorola PowerStack II. I have
not much success with it. The kernel goes to the Nirvana when all
segment registers are loaded with EMPTY_SEGMENT in
pmap.c:pmap_bootstrap() (for loop after the comment "Initialize kernel
pmap and hardware"). So I am struggling with the VM system instead of
working on the MD code for this machine. I suspect that the recent
changes to the powerpc pmap and / or OFW code broke somthing, but I
can't find it. 1.6 boots at least to the point where init starts a
single user shell.

A kernel with "options FIRMWORKSBUGS" hangs at the load of SR0, without
"options FIRMWORKSBUGS" it hangs at the the load of SR6. The MMU is
active at that moment (MSR=0x1032), the BAT registers are as folows:
iBAT[]: 0x00001ffe 0x00000012, 0x00000000 0x00000000,
        0x00000000 0x00000000, 0x00000000 0x00000000,
dBAT[]: 0x00001ffe 0x00000012, 0x00000000 0x00000000,
        0x00000000 0x00000000, 0x00000000 0x00000000,
i.e. there is a valid 1:1 effective to physical I/D BAT mapping for the
first 256 MB of  addresses space. (AFAIK now OFW and kernel are using
1:1 effective to physical mapping for the entire addresses space (except
KVA in effective space). OFW does it with PTEs (?), the kernel uses the
BAT registers. Correct?)
It looks to me like the kernel is manipulating the MMU translation via
segment registers it is currently running on. Thus the address
translation for the kernel text is changing in the moment SR0 is loaded
and so the kernel goes to lala-land. But there is a valid BAT mapping
that takes precedence over SR baesd translation. So why does it crash at
that moment?
Without "options FIRMWORKSBUGS" it crashes at the load of SR6. In this
segment is nothing. No RAM, no IO. (One machine has 128 MB RAM the other
256 MB, all IO is above 0x80000000) I thought that console IO could
cause the hang. But this happens outside the scope of SR6. Or am I
missing somthing important here?

What's in SPR_SDR1?  Can you print out the contents of the
SR registers?

Well, something is using 0x6000.0000 for some purpose.  I wonder if
OFW is using it as a direct store SR?  I've never seen that but it
is possible.


--
Matt Thomas               Internet:   matt%3am-software.com@localhost
3am Software Foundry      WWW URL:    http://www.3am-software.com/bio/matt/
Cupertino, CA             Disclaimer: I avow all knowledge of this message




Home | Main Index | Thread Index | Old Index