[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 |