|
[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 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?
If so, ITS node resides within GIC node, I don't think adding to
skip_matches[] list skips it.
So In the new patch, within GIC node I have checked for child nodes
which matches to ITS compatible
string and generated only one node for Dom0 as below.
if ( device_get_class(node) == DEVICE_GIC )
{
if ( !make_gic_node(d, kinfo->fdt, node) )
{
res = 0;
dt_for_each_child_node(node, gic_child)
{
if ( gic_child != NULL )
{
if ( dt_match_node(gits_matches, gic_child) )
{
res = make_its_node(d, kinfo->fdt, gic_child);
break;
}
}
}
return res;
}
return 0;
}
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
Regards
Vijay
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |