Let Arm code ask whether a domain has an SBSA VUART. Realm validation
uses this to keep the clear-text debug console behind a Kconfig choice.

Signed-off-by: Koichiro Den <[email protected]>
---
 xen/arch/arm/include/asm/vpl011.h | 5 +++++
 xen/arch/arm/vpl011.c             | 5 +++++
 2 files changed, 10 insertions(+)

diff --git a/xen/arch/arm/include/asm/vpl011.h 
b/xen/arch/arm/include/asm/vpl011.h
index cc838682815c..35d08556785a 100644
--- a/xen/arch/arm/include/asm/vpl011.h
+++ b/xen/arch/arm/include/asm/vpl011.h
@@ -69,6 +69,7 @@ struct vpl011_init_info {
 int domain_vpl011_init(struct domain *d,
                        struct vpl011_init_info *info);
 void domain_vpl011_deinit(struct domain *d);
+bool domain_has_vpl011(const struct domain *d);
 int vpl011_rx_char_xen(struct domain *d, char c);
 #else
 static inline int domain_vpl011_init(struct domain *d,
@@ -78,6 +79,10 @@ static inline int domain_vpl011_init(struct domain *d,
 }
 
 static inline void domain_vpl011_deinit(struct domain *d) { }
+static inline bool domain_has_vpl011(const struct domain *d)
+{
+    return false;
+}
 #endif
 #endif  /* _VPL011_H_ */
 
diff --git a/xen/arch/arm/vpl011.c b/xen/arch/arm/vpl011.c
index d0d17c76b72c..05a03a5ce5d0 100644
--- a/xen/arch/arm/vpl011.c
+++ b/xen/arch/arm/vpl011.c
@@ -747,6 +747,11 @@ out:
     return rc;
 }
 
+bool domain_has_vpl011(const struct domain *d)
+{
+    return d->arch.vpl011.backend.dom.ring_buf != NULL;
+}
+
 void domain_vpl011_deinit(struct domain *d)
 {
     struct vpl011 *vpl011 = &d->arch.vpl011;
-- 
2.51.0


Reply via email to