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

Re: [Xen-devel] [PATCH] xen/arm: Black list everything with a PPI



Sorry Just sent the wrong patch , Please ignore this.

On Fri, May 3, 2019 at 10:13 PM Amit Singh Tomar <amittomer25@xxxxxxxxx> wrote:
>
> XEN should not forward PPIs to Dom0 as it only support SPIs.
> One of solution to this problem is to skip any device that
> uses PPI source completely while building domain itself.
>
> This patch goes through all the interrupt sources of device and skip it
> if one of interrupt source is PPI. It fixes XEN boot on i.MX8MQ by
> skipping PMU node.
>
> Suggested-by:  Julien Grall <julien.grall@xxxxxxx>
> Signed-off-by: Amit Singh Tomar <amittomer25@xxxxxxxxx>
> ---
>     * This replaces following patch.
>       https://patchwork.kernel.org/patch/10899881/
> ---
>  xen/arch/arm/domain_build.c | 17 ++++++++++++++++-
>  1 file changed, 16 insertions(+), 1 deletion(-)
>
> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> index d983677..0ae54db 100644
> --- a/xen/arch/arm/domain_build.c
> +++ b/xen/arch/arm/domain_build.c
> @@ -1334,6 +1334,7 @@ static int __init handle_node(struct domain *d, struct 
> kernel_info *kinfo,
>          DT_MATCH_COMPATIBLE("arm,cortex-a15-pmu"),
>          DT_MATCH_COMPATIBLE("arm,cortex-a53-edac"),
>          DT_MATCH_COMPATIBLE("arm,armv8-pmuv3"),
> +        DT_MATCH_COMPATIBLE("arm,cortex-a53-pmu"),
>          DT_MATCH_PATH("/cpus"),
>          DT_MATCH_TYPE("memory"),
>          /* The memory mapped timer is not supported by Xen. */
> @@ -1353,7 +1354,7 @@ static int __init handle_node(struct domain *d, struct 
> kernel_info *kinfo,
>          { /* sentinel */ },
>      };
>      struct dt_device_node *child;
> -    int res;
> +    int res, i, nirq, irq_id;
>      const char *name;
>      const char *path;
>
> @@ -1399,6 +1400,20 @@ static int __init handle_node(struct domain *d, struct 
> kernel_info *kinfo,
>          return 0;
>      }
>
> +    /* Skip the node, using PPI source */
> +    nirq = dt_number_of_irq(node);
> +
> +    for ( i = 0 ; i < nirq ; i++ )
> +    {
> +        irq_id = platform_get_irq(node, i);
> +
> +        if ( irq_id >= 16 && irq_id < 32 )
> +        {
> +            dt_dprintk(" Skip node with (PPI source)\n");
> +            return 0;
> +        }
> +    }
> +
>      /*
>       * Xen is using some path for its own purpose. Warn if a node
>       * already exists with the same path.
> --
> 2.7.4
>

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel

 


Rackspace

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