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, 31But 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?