[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH v2 05/27] ARM: GICv3 ITS: introduce ITS command handling



Hi Shanker,

On 16/03/17 15:05, Shanker Donthineni wrote:
> Hi Andre,
> 
> 
> On 03/16/2017 06:20 AM, Andre Przywara wrote:
>> To be able to easily send commands to the ITS, create the respective
>> wrapper functions, which take care of the ring buffer.
>> The first two commands we implement provide methods to map a collection
>> to a redistributor (aka host core) and to flush the command queue (SYNC).
>> Start using these commands for mapping one collection to each host CPU.
>>
>> Signed-off-by: Andre Przywara <andre.przywara@xxxxxxx>
>> ---

...

>> @@ -184,22 +326,59 @@ retry:
>>      return -EINVAL;
>>  }
>>  
>> +/*
>> + * Before an ITS gets initialized, it should be in a quiescent state, where
>> + * all outstanding commands and transactions have finished.
>> + * So if the ITS is already enabled, turn it off and wait for all 
>> outstanding
>> + * operations to get processed by polling the QUIESCENT bit.
>> + */
>> +static int gicv3_disable_its(struct host_its *hw_its)
>> +{
>> +    uint32_t reg;
>> +    s_time_t deadline = NOW() + MILLISECS(100);
>> +
>> +    reg = readl_relaxed(hw_its->its_base + GITS_CTLR);
>> +    if ( (reg & GITS_CTLR_QUIESCENT) && !(reg & GITS_CTLR_ENABLE) )
> 
> nit: I prefer changing to 'if ( !(reg & GITS_CTLR_ENABLE) && (reg & 
> GITS_CTLR_QUIESCENT) ) ' because bit GITS_CTLR_QUIESCENT is not valid if ITS 
> hardware is in enabled state.

Sure, makes sense. I will change this.

Thanks for having a look!

Cheers,
Andre.

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.