[U-Boot-Users] Format of MMUCSR0 on 8540

Kumar Gala galak at kernel.crashing.org
Fri Nov 18 19:35:02 CET 2005


On Nov 18, 2005, at 10:19 AM, Charles J Gillan wrote:

>
>
> Thanks Kumar, for the information.
>
> 	> Can you see what's in the following registers, ESR, SRR0, SRR1?
>
>       I stopped the code at the interrupt handler and see the  
> following:
>
> 	ESR  = 0x00000000
>       SRR0 = 0xFFFC0E00  (the address set in IVOR14 was 0x0e00,
>                           TEXT_BASE = FFFC0000)
>       SRR1 = 0x00000200
>
>       There is no information on page 6-18 of the 8540RM where these
>       registers are defined. Does the SRR1 value have significance?

You need the e500 Core UM for these and all CPU registers.  These  
regs are the exception save/restore registers.  SRR0 is the address  
of the instruction that faulted and SRR1 is the MSR when the fault  
occurred.

Are you able to dump the TLBs out with the debugger you have?  If so  
that would be useful.

> 	> Also, if I remember correctly there are some patches to u-boot for
>
>> it to work properly with the CodeWarrior JTAG debuggers.
>
>       From where would I get these? Only FreeScale/Metrowerks ?

Yeah.  You'll have to get it from Freescale/Metrowerks.  If you  
download the Freescale Linux "BSP" for 8540 it should have the patches.

- kumar

> -----Original Message-----
> From: Kumar Gala [mailto:galak at kernel.crashing.org]
> Sent: 18 November 2005 15:43
> To: C.Gillan at ecit.qub.ac.uk
> Cc: u-boot-users at lists.sourceforge.net
> Subject: Re: [U-Boot-Users] Format of MMUCSR0 on 8540
>
>
> On Nov 18, 2005, at 9:19 AM, Charles J Gillan wrote:
>
>>
>> I downloaded U-boot from CVS on Nov 14th and have compiled
>> and run this on a TQM8540 board (with a Rev 2 MPC8540 chip).
>>
>> However, I started stepping through this with the CodeWarrior
>> debugger (and a FreeScale USB TAP - COP version) find that
>> the "isync" in the
>> following code from start.S is actually causing Interrupt 14
>> to be executed (TLBInstructionException).
>>
>> 	/*
>> 	 * Invalidate MMU L1/L2
>> 	 *
>> 	 * Note: There is a fixup earlier for Errata CPU4 on
>> 	 * Rev 1 parts that must precede this MMU invalidation.
>> 	 */
>> 	li	r2, 0x001e
>> 	mtspr	MMUCSR0, r2
>> 	isync  <------------------- Interrupt
>>
>> Without CodeWarrior, I do eventually see the U-Boot command
>> line appear on the serial port (however it did take several seconds
>> after power on, more than I expected).
>>
>> Checking the 8540RM manual, I see that there appear to be only two
>> bits that need to be set to invalidate cache (page 633 on MMUCSR0).
>>
>> Can anyone on the explain the presence of
>>
>>        0x001e
>>
>> as opposed to
>>
>>        0x0006
>>
>> in the above code?
>
> It's flash invalidating ALL of the TLB arrays.  A value of 0x6 will
> only do the L2 arrays.
>
>> Any suggestions as to why this exception arises. Has anyone seen it
>> with
>> An Abatron BDI2000 or not - as the case may be.
>
> Can you see what's in the following registers, ESR, SRR0, SRR1?
>
> Also, if I remember correctly there are some patches to u-boot for it
> to work properly with the CodeWarrior JTAG debuggers.
>
> - kumar
>
>
>
>
> -------------------------------------------------------
> This SF.Net email is sponsored by the JBoss Inc.  Get Certified Today
> Register for a JBoss Training Course.  Free Certification Exam
> for All Training Attendees Through End of 2005. For more info visit:
> http://ads.osdn.com/?ad_id=7628&alloc_id=16845&op=click
> _______________________________________________
> U-Boot-Users mailing list
> U-Boot-Users at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/u-boot-users





More information about the U-Boot mailing list