Scott Wood <scottw...@freescale.com> wrote on 17/11/2009 01:40:11:

> From:
>
> Scott Wood <scottw...@freescale.com>
>
> To:
>
> Joakim Tjernlund <joakim.tjernl...@transmode.se>
>
> Cc:
>
> "linuxppc-...@ozlabs.org" <linuxppc-...@ozlabs.org>, Rex Feany 
> <rfe...@mrv.com>
>
> Date:
>
> 17/11/2009 01:40
>
> Subject:
>
> Re: [PATCH 00/10] Fix 8xx MMU/TLB
>
> Joakim Tjernlund wrote:
> > Scott Wood <scottw...@freescale.com> wrote on 16/11/2009 22:27:41:
> >> On Mon, Nov 16, 2009 at 03:00:09PM -0600, Scott Wood wrote:
> >>> On Sun, Nov 15, 2009 at 06:09:27PM +0100, Joakim Tjernlund wrote:
> >>>> [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
> > +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?


_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Reply via email to