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

Re: [Minios-devel] [UNIKRAFT PATCHv2 6/7] plat/common: Add a platform API to get IRQ from device tree



(+ Marc Z.)

Hi,

On 28/06/2019 03:39, Jianyong Wu (Arm Technology China) wrote:
>>> +
>>> +int gic_get_irq_from_dtb(const void *fdt, int nodeoffset, int index)
>>> +{
>>> +   fdt32_t *prop;
>>> +   int type, hwirq, size;
>>> +   int ret;
>>> +
>>> +   ret = fdt_get_interrupt(fdt, nodeoffset, index, &size, &prop);
>>> +   if (ret < 0)
>>> +           return -EINVAL;
>>> +
>>> +   type = fdt32_to_cpu(prop[0]);
>>> +   hwirq = fdt32_to_cpu(prop[1]);
>>> +
>>> +   return gic_irq_translate(type, hwirq); }
>>>
>>
>> How do you plan to handle prop[3] (i.e level-sensitive, edge-triggered)?
> 
> Er, as far as I know, we can get irq number just by interrupt type and its 
> hardware number in dt
> And no need to care about its trigger type. So we neglect the prop[3] here.

Why don't you need to care about trigger type? Per the spec, the initial 
value of GICD_ICFGRn is IMPLEMENTATION DEFINED. I am actually not 
convinced the register will contain the correct value at boot.

At least in Xen (and Linux?) we are setting the type when setting the 
IRQ up. Maybe Marc can confirm here?

Cheers,

-- 
Julien Grall
_______________________________________________
Minios-devel mailing list
Minios-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/minios-devel

 


Rackspace

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