Subject: Re: memory corruption after MMU turned on

From: Dave Liu <[email-masked]>
Date: Fri, 17 Nov 2006 16:48:44 +0800

On Thu, 2006-11-16 at 10:44 -0500, Lei Sun wrote:
> Hi all:
>    I am trying to bring up customized board based on MPC8270, the
> kernel version is 2.4.30, it works fine on one of the Eval board
> (PQ2FADS-VR, which use MPC8275).
>    The kernel hangs after uncompressing is done, further debug shows
> that it hangs right after "rfi " instruction of the turn_on_mmu:
> function in head.S
> 
>  turn_on_mmu:
>     240     mfmsr   r0
>     241     ori r0,r0,MSR_DR|MSR_IR
>     242     mtspr   SRR1,r0
>     243     lis r0,start_here@h
>     244     ori r0,r0,start_here@l
>     245     mtspr   SRR0,r0
>     246     SYNC
>     247     RFI             /* enables MMU */
> 
> After i step over the RFI instruction, the PC points to C000XXX , but
> all memory content is 0 by then.
> my BATU0 is 0xC000FFE0  BATL0 is 0x00000002, I have 128MB RAM. The
> u-boot works fine, without MMU turned on. We do have some hardware
> problem, such that i have to lower the bus frequency to make the SDRAM
> stable. What physical parameter could cause the board not working with
> MMU on?

When MMU turn on, the kernel memory should be cacheable, so the
processor will burst read instructions from memory to i-cache. Did you
do the burst read/write memory test in u-boot? As you said, you did not
do the test.

-Dave