|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Minios-devel] [UNIKRAFT PATCH] plat/kvm: Option for serial baudrate (x86)
Hi Simon, this patch looks good, thanks.
Reviewed-by: Felipe Huici <felipe.huici@xxxxxxxxx>
On Fri, Mar 20, 2020 at 1:35 PM Simon Kuenzer <simon.kuenzer@xxxxxxxxx> wrote:
>
> Adds an option to select the baudrate for the serial port that is used
> for kernel and/or debug output. This is a useful for running the KVM
> port as bare-metal x86 instance.
>
> Signed-off-by: Simon Kuenzer <simon.kuenzer@xxxxxxxxx>
> ---
> plat/kvm/Config.uk | 22 ++++++++++++++++++++++
> plat/kvm/x86/serial_console.c | 18 ++++++++++++++++--
> 2 files changed, 38 insertions(+), 2 deletions(-)
>
> diff --git a/plat/kvm/Config.uk b/plat/kvm/Config.uk
> index 9aa8a632..3372b6c5 100644
> --- a/plat/kvm/Config.uk
> +++ b/plat/kvm/Config.uk
> @@ -41,6 +41,28 @@ config KVM_DEBUG_VGA_CONSOLE
> depends on ARCH_X86_64
> help
> Choose VGA console for the debug printing
> +
> +if (KVM_KVM_KERNEL_SERIAL_CONSOLE || KVM_DEBUG_SERIAL_CONSOLE) && ARCH_X86_64
> +menu "Serial console configuration"
> + choice
> + prompt "Baudrate"
> + default KVM_SERIAL_BAUD_115200
> +
> + config KVM_SERIAL_BAUD_115200
> + bool "115200"
> +
> + config KVM_SERIAL_BAUD_57600
> + bool "57600"
> +
> + config KVM_SERIAL_BAUD_38400
> + bool "38400"
> +
> + config KVM_SERIAL_BAUD_19200
> + bool "19200"
> + endchoice
> +endmenu
> +endif
> +
> endmenu
>
> config KVM_PCI
> diff --git a/plat/kvm/x86/serial_console.c b/plat/kvm/x86/serial_console.c
> index dc9eafa0..f46c69a2 100644
> --- a/plat/kvm/x86/serial_console.c
> +++ b/plat/kvm/x86/serial_console.c
> @@ -25,6 +25,7 @@
> * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
> */
>
> +#include <uk/config.h>
> #include <kvm-x86/serial_console.h>
> #include <x86/cpu.h>
>
> @@ -39,6 +40,19 @@
> #define COM1_DIV_LO (COM1 + 0)
> #define COM1_DIV_HI (COM1 + 1)
>
> +/* baudrate divisor */
> +#define COM1_BAUDDIV_HI 0x00
> +
> +#if CONFIG_KVM_SERIAL_BAUD_19200
> +#define COM1_BAUDDIV_LO 0x04
> +#elif CONFIG_KVM_SERIAL_BAUD_38400
> +#define COM1_BAUDDIV_LO 0x03
> +#elif CONFIG_KVM_SERIAL_BAUD_57600
> +#define COM1_BAUDDIV_LO 0x02
> +#else /* default, CONFIG_KVM_SERIAL_BAUD_115200 */
> +#define COM1_BAUDDIV_LO 0x01
> +#endif
> +
> #define DLAB 0x80
> #define PROT 0x03 /* 8N1 (8 bits, no parity, one stop bit) */
>
> @@ -46,8 +60,8 @@ void _libkvmplat_init_serial_console(void)
> {
> outb(COM1_INTR, 0x00); /* Disable all interrupts */
> outb(COM1_CTRL, DLAB); /* Enable DLAB (set baudrate divisor) */
> - outb(COM1_DIV_LO, 0x01);/* Set div to 1 (lo byte) 115200 baud */
> - outb(COM1_DIV_HI, 0x00);/* (hi byte) */
> + outb(COM1_DIV_LO, COM1_BAUDDIV_LO);/* Div (lo byte) */
> + outb(COM1_DIV_HI, COM1_BAUDDIV_HI);/* (hi byte) */
> outb(COM1_CTRL, PROT); /* Set 8N1, clear DLAB */
> }
>
> --
> 2.20.1
>
>
> _______________________________________________
> Minios-devel mailing list
> Minios-devel@xxxxxxxxxxxxxxxxxxxx
> https://lists.xenproject.org/mailman/listinfo/minios-devel
_______________________________________________
Minios-devel mailing list
Minios-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/minios-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |