[PATCH 1/2] powerpc: document the MPIC device tree binding
Meador Inge
meador_inge at mentor.com
Fri Jan 28 10:50:32 EST 2011
On 01/20/2011 09:50 AM, Yoder Stuart-B08248 wrote:
>
>
>> -----Original Message-----
>> From: Meador Inge [mailto:meador_inge at mentor.com]
>> Sent: Wednesday, January 19, 2011 6:08 PM
>> To: Yoder Stuart-B08248
>> Cc: Wood Scott-B07421; linuxppc-dev at lists.ozlabs.org; devicetree-
>> discuss at lists.ozlabs.org; Blanchard, Hollis
>> Subject: Re: [PATCH 1/2] powerpc: document the MPIC device tree binding
>>
>> On 01/19/2011 04:14 PM, Yoder Stuart-B08248 wrote:
>>>
>>>> +** Optional properties:
>>>> +
>>>> + - no-reset : The presence of this property indicates that the MPIC
>>>> + should not be reset during runtime initialization.
>>>> + - protected-sources : Specifies a list of interrupt sources that
>>>> + are not
>>>> + available for use and whose corresponding
>>>> + vectors
>>>> + should not be initialized. A typical use
>>>> + case for
>>>> + this property is in AMP systems where multiple
>>>> + independent operating systems need to share
>>>> + the MPIC
>>>> + without clobbering each other.
>>>
>>> Is "protected-sources" really needed for AMP systems to tell the OSes
>>> not to clobber each other? Won't each OS be given a device tree with
>>> only its interrupt sources? ...so you know what you are allowed to
>>> touch.
>>
>> This was discussed a little bit already [1, 2]. The MPIC driver currently
>> initializes the VECPRI register for all interrupt sources, which can lead
>> to the aforementioned clobbering.
>
> For sources that are protected and not to be touched, it seems
> that the other need is for the OS to know (be guaranteed?) that
> those sources have been put in state where the source is masked
> or directed to other cores. You can't have interrupts occurring
> on sources that you are not allowed to initialize.
>
> So the "no-reset" property could potentially cover this as well-- if it was
> defined to mean "don't reset the mpic" and boot firmware has put all sources
> in a sane initial state. And we wouldn't need the "protected-sources"
> property any longer.
>
This seems reasonable to me. If "no-reset" is there, then we will not
reset the MPIC and *only* sources explicitly listed in "interrupts"
properties are up for any sort of initialization (e.g. the VECPRI init).
If "no-reset" is not there, then anything is free game.
In terms of implementation, I think we can (1) pull the protected
sources code, (2) keep the VECPRI initialization in 'mpic_init' from
happening when "no-reset" is present, and (3) "lazily" perform the
VECPRI initialization in 'mpic_host_map' (this way only sources
mentioned in the device tree are initialized).
I will send out a patch with these updates tomorrow. I also CC'd Ben,
who wrote the original protected sources work, to make sure something
about the original use case is not being missed.
--
Meador Inge | meador_inge AT mentor.com
Mentor Embedded | http://www.mentor.com/embedded-software
More information about the devicetree-discuss
mailing list