|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] Requesting for freeze exception for ARM/ITS patches
On Tue, Jul 14, 2015 at 3:20 PM, Ian Campbell <ian.campbell@xxxxxxxxxx> wrote:
> On Tue, 2015-07-14 at 14:54 +0530, Vijay Kilari wrote:
>> I am trying to boot latest staging Xen branch on ThunderX with ITS patches.
>>
>> I face below issues with above [1] patch series
>>
>> 1) If pcie support only MSI, then INT mapping is not specified in DT.
>> However
>> the below code returns error if INT mapping is not found and does not map.
>> In ThunderX INT mapping is not specified for pcie nodes.
>>
>> static int map_device_children(struct domain *d,
>> const struct dt_device_node *dev)
>> {
>> int ret;
>>
>> if ( dt_device_type_is_equal(dev, "pci") )
>> {
>> DPRINT("Mapping children of %s to guest\n", dt_node_full_name(dev));
>>
>> ret = dt_for_each_irq_map(dev, &map_dt_irq_to_domain, d);
>> if ( ret < 0 )
>> return ret; // Returns error here
>
> Hrm, I suppose dt_for_each_irq_map ought to return success if the device
> in question has no interrupt-map at all.
Yes, I do so.
>
> At first glance it seems like:
> if ( imap == NULL )
> {
> dt_dprintk(" -> no map, ignoring\n");
> goto fail;
> }
> Should become:
> if ( imap == NULL )
> {
> dt_dprintk(" -> no map, ignoring\n");
> return 0;
> }
>
> Can you test that and if it is correct submit it as a patch please.
>
>> ...
>> }
>>
>> 2) Dom0 fails to boot with GICv3. It hangs just after GICv3 initialization.
>>
>> To know which is last distributor/re-distributor registers read, I
>> have added debug prints
>> in GICD & GICR mmio handlers in Xen. But with your patches Linux driver never
>> traps to Xen to read/write GICD/GICR registers. If I revert back this
>> patch series,
>> I see the traps.
>
> Where "this patch series" is this:
>
> $ git log --oneline
> d7f132c762d1359f03b2b5b89406daf39d8aefc0..467e5cbb2ffc5e0994c4cb584b7ace6a01a727af
> 467e5cb xen: arm: consolidate mmio and irq mapping to dom0
> f65399f xen: arm: Import of_bus PCI entry from Linux (as a dt_bus entry)
> 864f82a xen: arm: map child MMIO and IRQs to dom0 for PCI bus DT nodes.
> eed5e39 xen: arm: drop redundant extra call to vgic_reserve_virq
> f9d08f4 xen: dt: add dt_for_each_range helper
> 5cefb30 xen: dt: add dt_for_each_irq_map helper
> $
>
> ?
>
> That's rather strange, nothing here should be interacting with the vgic
> trapping for GICD/GICR.
>
> About the only thing I can imagine is that something has incorrectly
> created a p2m mapping over the GICD/GICR addresses. If that is the case
> then it ought to be pretty apparent from the logs with DT_DEBUG enabled
> in domain_build.c.
>
> If it isn't apparent from the debug log then please could you bisect
> down to a specific patch.
I found the reason. There is some discrepancy with DT which is overlapping
with GIC address space. It took a day to figure out.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |