All of lore.kernel.org
 help / color / mirror / Atom feed
From: dmkhn@proton.me
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com,
	anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org,
	michal.orzel@amd.com, roger.pau@citrix.com, dmukhin@ford.com
Subject: Re: [PATCH v4 8/8] emul/vuart: introduce console forwarding enforcement via vUART
Date: Fri, 01 Aug 2025 01:51:00 +0000	[thread overview]
Message-ID: <aIwdfl/d8scL5MBQ@kraken> (raw)
In-Reply-To: <alpine.DEB.2.22.394.2507311709221.468590@ubuntu-linux-20-04-desktop>

On Thu, Jul 31, 2025 at 05:10:12PM -0700, Stefano Stabellini wrote:
> On Thu, 31 Jul 2025, dmkhn@proton.me wrote:
> > From: Denis Mukhin <dmukhin@ford.com>
> >
> > It may be useful to enforce console forwarding over the virtual UART. E.g.
> > hardware domain uses PV console by default, but it may be necessary to have
> > console forwarded to the hardware domain via emulated UART.
> >
> > Add CONFIG_VUART_CONSOLE_FOCUS to enforce such behavior.
> >
> > Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> 
> I realize that hyperlaunch is not merged yet, but I think this one would
> be best as a hyperlaunch configuration option rather than a kconfig. But
> it is certainly useful for testing until Hyperlaunch is merged!

Yep, I used that to test PVH dom0 w/ emulator.

re: configuration option: I agree and, initially I wanted to hook a flag to xl
/ dom0 command line opton which will say that emulated UART can accept
physical input.

But then decided to hook such capability via Kconfig for simplicity.

> 
> 
> > ---
> > Changes since v3:
> > - new patch
> > ---
> >  xen/arch/x86/domain.c         | 6 ++++++
> >  xen/common/emul/vuart/Kconfig | 5 +++++
> >  xen/drivers/char/console.c    | 2 +-
> >  3 files changed, 12 insertions(+), 1 deletion(-)
> >
> > diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
> > index 39b0c0b199b9..40ff92ad6c61 100644
> > --- a/xen/arch/x86/domain.c
> > +++ b/xen/arch/x86/domain.c
> > @@ -848,6 +848,12 @@ int arch_domain_create(struct domain *d,
> >      if ( is_hardware_domain(d) && is_pv_domain(d) )
> >          emflags |= XEN_X86_EMU_PIT;
> >
> > +    if ( IS_ENABLED(CONFIG_VUART_CONSOLE_FOCUS) &&
> > +         IS_ENABLED(CONFIG_VUART_NS16550) &&
> > +         is_hardware_domain(d) &&
> > +         is_hvm_domain(d) )
> > +        emflags |= XEN_X86_EMU_NS16550;
> > +
> >      if ( emflags & ~XEN_X86_EMU_ALL )
> >      {
> >          printk(XENLOG_G_ERR
> > diff --git a/xen/common/emul/vuart/Kconfig b/xen/common/emul/vuart/Kconfig
> > index ebefd90d913e..1069ca95f2db 100644
> > --- a/xen/common/emul/vuart/Kconfig
> > +++ b/xen/common/emul/vuart/Kconfig
> > @@ -51,4 +51,9 @@ config VUART_NS16550_DEBUG
> >  	help
> >  	  Enable development debugging.
> >
> > +config VUART_CONSOLE_FOCUS
> > +	bool "Console input forwarding via UART emulator"
> > +	help
> > +	  Enable physical console input forwarding to guest OS via emulated UART.
> > +
> >  endmenu
> > diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
> > index 93254979817b..d142f5511d61 100644
> > --- a/xen/drivers/char/console.c
> > +++ b/xen/drivers/char/console.c
> > @@ -597,7 +597,7 @@ static void __serial_rx(char c)
> >      if ( !d )
> >          return;
> >
> > -    if ( is_hardware_domain(d) )
> > +    if ( !IS_ENABLED(CONFIG_VUART_CONSOLE_FOCUS) && is_hardware_domain(d) )
> >      {
> >          /*
> >           * Deliver input to the hardware domain buffer, unless it is
> > --
> > 2.34.1
> >
> >



  reply	other threads:[~2025-08-01  1:51 UTC|newest]

Thread overview: 61+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-07-31 19:21 [PATCH v4 0/8] x86: introduce NS16550-compatible UART emulator dmkhn
2025-07-31 19:21 ` [PATCH v4 1/8] xen/domain: introduce common emulation flags dmkhn
2025-08-04  9:46   ` Jan Beulich
2025-08-05  0:54     ` dmkhn
2025-08-06 13:56       ` Roger Pau Monné
2025-08-07 17:54         ` dmkhn
2025-08-07 14:28       ` Oleksii Kurochko
2025-08-07 17:43         ` dmkhn
2025-07-31 19:21 ` [PATCH v4 2/8] emul/vuart: introduce framework for UART emulators dmkhn
2025-08-01  0:08   ` Stefano Stabellini
2025-08-01  2:54     ` dmkhn
2025-08-04 10:11   ` Jan Beulich
2025-08-09 18:55     ` dmkhn
2025-08-11  7:34       ` Jan Beulich
2025-08-11 23:55         ` dmkhn
2025-08-12  6:52           ` Jan Beulich
2025-08-14  6:32             ` dmkhn
2025-08-06 14:24   ` Roger Pau Monné
2025-08-07 19:12     ` dmkhn
2025-07-31 19:21 ` [PATCH v4 3/8] x86/domain: allocate d->{iomem,irq}_caps before arch-specific initialization dmkhn
2025-07-31 19:52   ` Grygorii Strashko
2025-07-31 20:21     ` dmkhn
2025-08-01  2:57       ` dmkhn
2025-07-31 23:20   ` Stefano Stabellini
2025-08-04 10:20   ` Jan Beulich
2025-08-07 18:59     ` dmkhn
2025-08-06 14:37   ` Roger Pau Monné
2025-08-07 18:57     ` dmkhn
2025-07-31 19:22 ` [PATCH v4 4/8] xen/8250-uart: update definitions dmkhn
2025-07-31 23:23   ` Stefano Stabellini
2025-08-04 10:23   ` Jan Beulich
2025-08-07 19:41     ` dmkhn
2025-07-31 19:22 ` [PATCH v4 5/8] emul/vuart-ns16550: introduce NS16550-compatible UART emulator (x86) dmkhn
2025-07-31 23:57   ` Stefano Stabellini
2025-08-01  3:28     ` dmkhn
2025-08-04 10:53   ` Jan Beulich
2025-08-09 18:37     ` dmkhn
2025-08-11  7:39       ` Jan Beulich
2025-08-12  0:06         ` dmkhn
2025-08-06 15:06   ` Roger Pau Monné
2025-08-06 17:24     ` Roger Pau Monné
2025-08-07 18:49     ` dmkhn
2025-07-31 19:22 ` [PATCH v4 6/8] tools/xl: enable NS16550-compatible UART emulator for HVM (x86) dmkhn
2025-08-04 10:54   ` Jan Beulich
2025-08-06 15:21   ` Roger Pau Monné
2025-08-25 14:49   ` Anthony PERARD
2025-08-25 15:03     ` Jan Beulich
2025-08-25 15:13       ` Anthony PERARD
2025-08-25 15:27         ` Jan Beulich
2025-08-25 15:39           ` Anthony PERARD
2025-08-25 15:45             ` Jan Beulich
2025-08-26  9:26     ` dmkhn
2025-07-31 19:22 ` [PATCH v4 7/8] tools/xl: enable NS16550-compatible UART emulator for PVH (x86) dmkhn
2025-08-01  0:46   ` Stefano Stabellini
2025-08-01  1:53     ` dmkhn
2025-08-04 11:06   ` Jan Beulich
2025-08-07 19:38     ` dmkhn
2025-07-31 19:22 ` [PATCH v4 8/8] emul/vuart: introduce console forwarding enforcement via vUART dmkhn
2025-08-01  0:10   ` Stefano Stabellini
2025-08-01  1:51     ` dmkhn [this message]
2025-08-06 13:48 ` [PATCH v4 0/8] x86: introduce NS16550-compatible UART emulator Roger Pau Monné

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=aIwdfl/d8scL5MBQ@kraken \
    --to=dmkhn@proton.me \
    --cc=andrew.cooper3@citrix.com \
    --cc=anthony.perard@vates.tech \
    --cc=dmukhin@ford.com \
    --cc=jbeulich@suse.com \
    --cc=julien@xen.org \
    --cc=michal.orzel@amd.com \
    --cc=roger.pau@citrix.com \
    --cc=sstabellini@kernel.org \
    --cc=xen-devel@lists.xenproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.