Allows for the conditional inclusion of NS16550 UART driver on the x86 platform rather than having it always enabled.
The default configuration for the HAS_NS16550 option remains 'y' on x86, so the behavior out of the box remains unchanged. The addition of the option allows advanced users to enable/disable the inclusion of the NS16550 UART driver. Signed-off-by: Derek Straka <de...@asterius.io> --- xen/arch/x86/Kconfig | 1 - xen/drivers/char/Kconfig | 4 ++-- xen/include/xen/serial.h | 7 ++++++- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/xen/arch/x86/Kconfig b/xen/arch/x86/Kconfig index 265fd79..8a122df 100644 --- a/xen/arch/x86/Kconfig +++ b/xen/arch/x86/Kconfig @@ -15,7 +15,6 @@ config X86 select HAS_MEM_ACCESS select HAS_MEM_PAGING select HAS_MEM_SHARING - select HAS_NS16550 select HAS_PASSTHROUGH select HAS_PCI select HAS_PDX diff --git a/xen/drivers/char/Kconfig b/xen/drivers/char/Kconfig index 51343d0..c87e018 100644 --- a/xen/drivers/char/Kconfig +++ b/xen/drivers/char/Kconfig @@ -1,6 +1,6 @@ config HAS_NS16550 - bool - default y + bool "NS16550 UART" if EXPERT = "y" + default y if X86 help This selects the 16550-series UART support. For most systems, say Y. diff --git a/xen/include/xen/serial.h b/xen/include/xen/serial.h index 1212a12..343779c 100644 --- a/xen/include/xen/serial.h +++ b/xen/include/xen/serial.h @@ -167,9 +167,14 @@ struct ns16550_defaults { int irq; /* default irq */ unsigned long io_base; /* default io_base address */ }; + +#ifdef CONFIG_HAS_NS16550 void ns16550_init(int index, struct ns16550_defaults *defaults); -void ehci_dbgp_init(void); +#else +static inline void ns16550_init(int index, struct ns16550_defaults *defaults) {} +#endif +void ehci_dbgp_init(void); void arm_uart_init(void); struct physdev_dbgp_op; -- 2.7.4 _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel