On Apr 18, 2011, at 4:40 PM, Benjamin Herrenschmidt wrote:

> On Mon, 2011-04-18 at 07:43 -0500, Kumar Gala wrote:
>> On Apr 15, 2011, at 3:32 AM, Michael Ellerman wrote:
>> 
>>> From: Benjamin Herrenschmidt <b...@kernel.crashing.org>
>>> 
>>> An erratum on A2 can lead to the bolted entry we insert for the linear
>>> mapping being evicted, to avoid that write the bolted entry to way 3.
>>> 
>>> Signed-off-by: Benjamin Herrenschmidt <b...@kernel.crashing.org>
>>> Signed-off-by: Michael Ellerman <mich...@ellerman.id.au>
>>> ---
>>> arch/powerpc/kernel/exceptions-64e.S |    5 +++--
>>> 1 files changed, 3 insertions(+), 2 deletions(-)
>>> 
>>> diff --git a/arch/powerpc/kernel/exceptions-64e.S 
>>> b/arch/powerpc/kernel/exceptions-64e.S
>>> index 5c43063..e6c0926 100644
>>> --- a/arch/powerpc/kernel/exceptions-64e.S
>>> +++ b/arch/powerpc/kernel/exceptions-64e.S
>>> @@ -864,8 +864,9 @@ have_hes:
>>>      * that will have to be made dependent on whether we are running under
>>>      * a hypervisor I suppose.
>>>      */
>>> -   ori     r3,r3,MAS0_HES | MAS0_WQ_ALLWAYS
>>> -   mtspr   SPRN_MAS0,r3
>>> +   ori     r11,r3,MAS0_WQ_ALLWAYS
>>> +   oris    r11,r11,MAS0_ESEL(3)@h /* Use way 3: workaround A2 erratum 376 
>>> */
>>> +   mtspr   SPRN_MAS0,r11
>>>     lis     r3,(MAS1_VALID | MAS1_IPROT)@h
>>>     ori     r3,r3,BOOK3E_PAGESZ_1GB << MAS1_TSIZE_SHIFT
>>>     mtspr   SPRN_MAS1,r3
>> 
>> Seems like this should have a MMU Feature bit or something for A2.
> 
> Too early. We haven't detected the CPU and are establishing the initial
> TLB entry here.

How about wrapping with CONFIG_PPC_A2

> Any reason why that wouldn't work on something else anyways ?

No, I wasn't paying attention to what this code exactly was (not enough context 
in the diff), I see its our initial setup so not a big deal.  Was thinking this 
was run-time exception handler code.

- k

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

Reply via email to