{ /* sentinel */ },
};
struct dt_device_node *child;
- int res;
+ int res, i, nirq, irq_id;
const char *name;
const char *path;
return 0;
}
+ /*
+ * The vGIC does not support routing hardware PPIs to guest. So
+ * we need to skip any node using PPIs.
+ */
+ nirq = dt_number_of_irq(node);
+
+ for ( i = 0 ; i < nirq ; i++ )
+ {
+ irq_id = platform_get_irq(node, i);
+
+ /* PPIs ranges from ID 16 to 31 */
+ if ( irq_id >= 16 && irq_id < 32 )
+ {
+ dt_dprintk(" Skip it (using PPIs)\n");
+ return 0;
+ }
+ }
+
/*
* Xen is using some path for its own purpose. Warn if a node
* already exists with the same path.