aboutsummaryrefslogtreecommitdiffstats
path: root/xen/arch
diff options
context:
space:
mode:
authorJulien Grall <julien.grall@linaro.org>2013-09-13 13:49:28 +0100
committerIan Campbell <ian.campbell@citrix.com>2013-09-17 15:29:03 +0100
commitc04b69e769ce1a5deed07ad41314c4aa25ee2596 (patch)
treee764c06702902741f3081c8e899e6fd6b0d042ca /xen/arch
parentcb869df938b2a1480a079a2ea534af03da3ee3dc (diff)
downloadxen-c04b69e769ce1a5deed07ad41314c4aa25ee2596.tar.gz
xen-c04b69e769ce1a5deed07ad41314c4aa25ee2596.tar.bz2
xen-c04b69e769ce1a5deed07ad41314c4aa25ee2596.zip
xen/arm: vexpress: Blacklist a list of board specific devices
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> Acked-by: Ian Campbell <ian.campbell@citrix.com>
Diffstat (limited to 'xen/arch')
-rw-r--r--xen/arch/arm/platforms/vexpress.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/xen/arch/arm/platforms/vexpress.c b/xen/arch/arm/platforms/vexpress.c
index 6f7dc2c811..298c141844 100644
--- a/xen/arch/arm/platforms/vexpress.c
+++ b/xen/arch/arm/platforms/vexpress.c
@@ -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
/*