Subject: Re: ofppc-current
To: Jochen Kunz <jkunz@unixag-kl.fh-kl.de>
From: Matt Thomas <matt@3am-software.com>
List: port-ofppc
Date: 11/23/2002 09:11:06
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
3am Software Foundry      WWW URL:    http://www.3am-software.com/bio/matt/
Cupertino, CA             Disclaimer: I avow all knowledge of this message