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

Re: [Xen-devel] [RFC PATCH v3 17/18] xen/arm: ITS: Generate ITS node for Dom0



On 07/07/15 11:25, Vijay Kilari wrote:
> On Tue, Jul 7, 2015 at 1:51 PM, Julien Grall <julien.grall@xxxxxxxxxx> wrote:
>> Hi,
>>
>>
>> On 07/07/2015 06:31, Vijay Kilari wrote:
>>>
>>> On Mon, Jun 29, 2015 at 6:36 PM, Ian Campbell <ian.campbell@xxxxxxxxxx>
>>> wrote:
>>>>
>>>> On Mon, 2015-06-22 at 17:31 +0530, vijay.kilari@xxxxxxxxx wrote:
>>>
>>>
>>>>>
>>>>> +int its_make_dt_node(const struct domain *d,
>>>>> +                     const struct dt_device_node *node, void *fdt)
>>>>> +{
>>>>> +    struct its_node *its;
>>>>> +    const struct dt_device_node *gic;
>>>>> +    const void *compatible = NULL;
>>>>> +    u32 len;
>>>>> +    __be32 *new_cells, *tmp;
>>>>> +    int res = 0;
>>>>> +
>>>>> +    /* Will pass only first ITS node info */
>>>>> +    /* TODO: Handle multi node */
>>>>> +    its = list_first_entry(&its_nodes, struct its_node, entry);
>>>>
>>>>
>>>> I think this should be done at the top level by not walking all children
>>>> and by blacklisting all ITS nodes to be replaced by our own.
>>>
>>>
>>>     I have added TODO for multinode.
>>> For now, I plan to support only single ITS node. I don't have
>>> platform support right now to test multinode
>>
>>
>> I'm not sure to understand what you want to support multi-node here...
>>
>> This function is used to create the ITS node for DOM0. From the design
>> document, guest domain only sees a single node.
>>
>> Blacklisted ITS node in the top level function is just one line (you have to
>> give the compatible string)>
> 
> AIUI, blacklisting ITS node mean, skipping the node getting generated for dom0
> by adding compatible string to skip_matches[] list in handle_node()
> function of domain_build.c right?

Yes.

> If so, ITS node resides within GIC node, I don't think adding to
> skip_matches[] list skips it.

In the case of the GIC node, we skip all the childs so ITS node are
already blacklisted by default.

You can create the ITS node in the hwdom_dt_node callback. I don't see
why you need to browse all the ITS nodes in the function handle_device,
which is common to every one.

> However if DT has more than one ITS node, then all references in the
> DT (PCI nodes)
> should be changed to pointed to single (generated) ITS node. This is
> what I meant
> for TODO. May be TODO is placed wrongly in its driver

The changes in only a couple of lines in write_properties. If you don't
plan to handle multiple ITS in your series, you need to add a big
warning/panic rather letting Xen booting on it fine.

Regards,

-- 
Julien Grall

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


 


Rackspace

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