[PATCH ppc-next] powerpc/fsl-booke: don't load early TLB at once

Scott Wood oss at buserror.net
Sat Sep 22 15:45:16 AEST 2018


On Fri, Sep 21, 2018 at 03:00:19AM +0200, David Lamparter wrote:
> On Thu, Sep 20, 2018 at 07:31:33PM -0500, Scott Wood wrote:
> > Do you have a JTAG that can be used to find out where it's hanging?  If
> > not, I can try to get early debug working (needs an early IOMMU mapping).

s/IOMMU mapping/MMU mapping for MMIO/ :-P

> I only have JTAG tools for ARM chips available; hardware wise I could
> probably solder up an adapter but software wise I have absoutely no clue
> how to fire up a session on anything PPC...  I'm a novice openocd user,
> that's it.
> 
> > York, can you try booting the latest kernel on p4080ds?
> 
> d9e1831a42 has been around for quite some time, 4.4 already has it.  I
> was a bit surprised noone has run into this, but then again P4080 is not
> exactly the most recent/interesting hardware.

I don't suppose you're running a relocatable kernel at a non-zero
address, and/or are running in an environment that sets
HID0[EN_L2MMU_MHD] (neither standard U-boot nor Linux sets this bit,
though they probably should)?  On 32-bit, we're already running in an AS1
trampoline when loadcam_multi() is called, but loadcam_multi() sets up
its own.  This happens to not be catastrophic in standard scenarios, but
it does add a duplicate TLB entry, and we return to AS0 sooner than
expected.  I think your patch, plus ifdefs to make the change 32-bit
only, is the appropriate fix.

I also got an earlier udbg for e500 working (and happened to decide to
test it with a relocatable kernel); I'll send that out once I've cleaned
it up (or sooner with the extra TLB dumping included if the above doesn't
explain why you're hitting this bug).

-Scott


More information about the Linuxppc-dev mailing list