[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 |