Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1466068
| From | Christophe Leroy <christophe.leroy@c-s.fr> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Re: [PATCH] powerpc/8xx: use SPRN_EIE and SPRN_EID to enable/disable interrupts |
| Date | 2016-08-19 09:00 +0200 |
| Message-ID | <s7LWy-2b5-15@gated-at.bofh.it> (permalink) |
| References | <s7Gka-6XF-33@gated-at.bofh.it> <s7Gka-6XF-35@gated-at.bofh.it> <s7Gka-6XF-31@gated-at.bofh.it> <s7GWR-7sc-11@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
Le 18/08/2016 à 19:54, Segher Boessenkool a écrit :
> On Thu, Aug 18, 2016 at 06:52:47PM +0200, Christophe Leroy wrote:
>> Le 18/08/2016 à 18:34, Segher Boessenkool a écrit :
>>> On Thu, Aug 18, 2016 at 05:56:02PM +0200, Christophe Leroy wrote:
>>>> The 8xx has two special registers called EID (External Interrupt
>>>> Disable) and EIE (External Interrupt Enable) for clearing/setting
>>>> EE in MSR. It avoids the three instructions set mfmsr/ori/mtmsr or
>>>> mfmsr/rlwinm/mtmsr.
>>>
>>> All 8xx? What other models? (5xx for example).
>>
>> At least 823, 860, 866 and 885 have it.
>
> I haven't been able to find a manual for all 8xx. But there is AN2055,
> which suggests EIE etc. is for all 8xx indeed.
>
>> Looks like the 5xx have it too (at least the 565). Does Linux supports
>> that one at all ?
>
> All 5xx have it, there is a manual for *that* ("RCPU") :-)
>
>>>> +/* Special MSR manipulation registers */
>>>> +#define SPRN_EIE 80 /* External interrupt enable (EE=1, RI=1) */
>>>> +#define SPRN_EID 81 /* External interrupt disable (EE=0, RI=1) */
>>>> +#define SPRN_NRI 81 /* Non Recoverable interrupt (EE=0, RI=0) */
>
> Is it correct to set RI in all places you do now?
MSR_KERNEL contains the RI bit.
MSR_KERNEL less MSR_IR and MSR_DR is loaded into MSR in
EXCEPTION_PROLOG_2() in head_8xx.S
Then reloaded with MSR_KERNEL in some places in entry_32.S
And MSR_RI is cleared in restore: in entry_32.S a few insns before the RFI.
So in all C functions, MSR_RI is set.
Christophe
>
>>> This is wrong (NRI is 82). Don't write code you cannot test / don't submit
>>> code you haven't tested? :-)
>>
>> Oops. You're right, copy/paste failure.
>> Was tested on an 885. Unfortunatly SPRN_NRI is not used (yet) :-(
>
> Well, that was my point!
>
>
> Segher
>
Back to linux.kernel | Previous | Next — Previous in thread | Find similar | Unroll thread
Re: [PATCH] powerpc/8xx: use SPRN_EIE and SPRN_EID to enable/disable interrupts Christophe Leroy <christophe.leroy@c-s.fr> - 2016-08-19 03:00 +0200
Re: [PATCH] powerpc/8xx: use SPRN_EIE and SPRN_EID to enable/disable interrupts Segher Boessenkool <segher@kernel.crashing.org> - 2016-08-19 03:40 +0200
Re: [PATCH] powerpc/8xx: use SPRN_EIE and SPRN_EID to enable/disable interrupts Christophe Leroy <christophe.leroy@c-s.fr> - 2016-08-19 09:00 +0200
csiph-web