@@ -125,9 +125,26 @@ static const char * const vexpress_dt_compat[] __initdata =
NULL
};
+static const struct dt_device_match vexpress_blacklist_dev[] __initconst =
+{
+ /* Cache Coherent Interconnect */
+ DT_MATCH_COMPATIBLE("arm,cci-400"),
+ DT_MATCH_COMPATIBLE("arm,cci-400-pmu"),
+ /* Video device
+ * TODO: remove it once memreserve is handled properly by Xen
+ */
+ DT_MATCH_COMPATIBLE("arm,hdlcd"),
+ /* Hardware power management */
+ DT_MATCH_COMPATIBLE("arm,vexpress-reset"),
+ DT_MATCH_COMPATIBLE("arm,vexpress-reboot"),
+ DT_MATCH_COMPATIBLE("arm,vexpress-shutdown"),
+ { /* sentinel */ },
+};
+
PLATFORM_START(vexpress, "VERSATILE EXPRESS")
.compatible = vexpress_dt_compat,
.reset = vexpress_reset,
+ .blacklist_dev = vexpress_blacklist_dev,
PLATFORM_END
/*
On Versatile there are a bunch of devices which must not be pass-through to any guest (power management and cache coherency devices). This commit also blacklists the HDLCD device because Xen is unable to correctly map the framebuffer into dom0. Therefore, when Linux will try to access to the framebuffer, Xen will receive a non-handled data access. Signed-off-by: Julien Grall <julien.grall@linaro.org> --- Changes in v3: - Fix typoes in commit message Changes in v2: - Fix typoes in commit message --- xen/arch/arm/platforms/vexpress.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+)