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
