Thread (20 messages) 20 messages, 2 authors, 2009-11-18

Re: [PATCH 00/10] Fix 8xx MMU/TLB

From: Joakim Tjernlund <hidden>
Date: 2009-11-17 08:04:51


Scott Wood [off-list ref] wrote on 17/11/2009 01:40:11:
From:

Scott Wood [off-list ref]

To:

Joakim Tjernlund [off-list ref]

Cc:

"linuxppc-dev@ozlabs.org" [off-list ref], Rex Feany [off-list ref]

Date:

17/11/2009 01:40

Subject:

Re: [PATCH 00/10] Fix 8xx MMU/TLB

Joakim Tjernlund wrote:
quoted
Scott Wood [off-list ref] wrote on 16/11/2009 22:27:41:
quoted
On Mon, Nov 16, 2009 at 03:00:09PM -0600, Scott Wood wrote:
quoted
On Sun, Nov 15, 2009 at 06:09:27PM +0100, Joakim Tjernlund wrote:
quoted
[I used the wrong branch, this will hopefully not conflict]

This is hopfully the last iteration of the series.
Rex & Scott, please test and signoff.
Changes since last version:
 - Added mandatory pinning of iTLB
 - Added "DTLB Miss cleanup"
I still get the EFAULTs.
umm, this worked before this series with your own
version, right?
No...  I only meant that the ITLB pinning got rid of the boot hang.

When I mentioned the EFAULTs before you said, "No surprise as the it
seems like the DAR decoding is broken."  I thought you meant you'd found
a bug and fixed it in this respin.
Oh, there seems to be a misunderstanding here :)
Lets go back a bit, you said some time ago:
/Quote
quoted
+3:   lwz   r11, 0(r11)		 /* Get the level 1 entry */
      DO_8xx_CPU6(0x3b80, r3)
      mtspr SPRN_MD_TWC, r11		 /* Load pte table base address */
      mfspr r11, SPRN_MD_TWC		 /* ....and get the pte address */
      lwz   r11, 0(r11)		 /* Get the pte */
      /* concat physical page address(r11) and page offset(r10) */
      rlwimi      r11, r10, 0, 20, 31
But r10 here contains SRR0 from above, and this is a data TLB error.
Never mind that last one, forgot that you'd be wanting to load the
instruction. :-P

But the rlwimi is what's causing the machine checks.  I replaced it with:
rlwinm		 r11, r11, 0, 0x3ffff000
rlwimi		 r11, r10, 22, 0xffc

and things seem to work.  You could probably replace the rlwinm by
subtracting PAGE_OFFSET from swapper_pg_dir instead.
/End Quote

I read this as now everything is working, but I guess I misunderstood?
You still have EFAULT here?
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help