[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH for-4.21] x86/hvm: fix reading from 0xe9 IO port if port E9 hack is active


  • To: Alejandro Vallejo <alejandro.garciavallejo@xxxxxxx>
  • From: Roger Pau Monné <roger.pau@xxxxxxxxxx>
  • Date: Fri, 3 Oct 2025 10:18:10 +0200
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com; dkim=pass header.d=citrix.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=psaBbf1ss6nYZU78PxYX/h1BWlBoxVQN5YTSBfKgEL0=; b=nvb12BJBkFmX0orOMPeKnUnbl4g9DJVgKDABs8tbNqXazoZLb1xMHplf4PTJk0XU32flVWEB1/jg+ZQplMnT5Sj+ToFRRvBgfGa3D03tPvT68w6ZK8nGjbM5WrYjiVeS/dm9ufjZI9fzeIrO4TW/bH0KPPtCT8K17Nmpt8e+zpc0UIrj7EBLaKT+bkQku8miBwRb3vdw2jBmBPkRaYy/Z8IpSuzAU6I+fj5JtJ9toJQH2DICR3Ag0Jft+Y4akj6ElfDTt0gAm1Wf/oD0Z9skn/wgztqp5km5yICpeEBW6Mi5kLgqjBJUqquPhZycfbaS6asJzgLGxPs7IlnnGNukVw==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Ua29/l3W3qRJsQqjEe2d5jke1RHCY5qVdtc/wwQlP71WXMH70qhtoQOkLEAGMEKH09KvFTVlnqB2qQ3z28vHpBHgQtv0oracpDyaQbAfSy6fyfWEUC2zen9yJFWfQArkd2zXU40MFR3esKP2339f3rN4yMBMHqSDgAg+l7U6T4Ofjh7Bkt6tfaGs8OhL/0FdL7f/PUgfwdMKXUUot8Sspi6uprOXrSE/zwq8TTMQYkYRonlxorO2nzn/l7liDbhs+mTsiqg2VVzG19rcsk1yHYR1ncn3T/6SsYlWjRi8bBU8GoOUeWpzhQ6CW4Jnd84YBgWHWqYlzAeLIRv9oaoMaQ==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=citrix.com;
  • Cc: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, xen-devel@xxxxxxxxxxxxxxxxxxxx, Jan Beulich <jbeulich@xxxxxxxx>, Oleksii Kurochko <oleksii.kurochko@xxxxxxxxx>, Xen-devel <xen-devel-bounces@xxxxxxxxxxxxxxxxxxxx>
  • Delivery-date: Fri, 03 Oct 2025 08:18:33 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

On Thu, Oct 02, 2025 at 04:56:48PM +0200, Alejandro Vallejo wrote:
> On Thu Oct 2, 2025 at 4:17 PM CEST, Roger Pau Monné wrote:
> > On Thu, Oct 02, 2025 at 04:02:00PM +0200, Alejandro Vallejo wrote:
> >> On Thu Oct 2, 2025 at 3:38 PM CEST, Roger Pau Monné wrote:
> >> > On Thu, Oct 02, 2025 at 11:37:36AM +0100, Andrew Cooper wrote:
> >> >> On 02/10/2025 11:22 am, Roger Pau Monne wrote:
> >> >> > Reading from the E9 port if the emergency console is active should 
> >> >> > return
> >> >> > 0xe9 according to the documentation from Bochs:
> >> >> >
> >> >> > https://bochs.sourceforge.io/doc/docbook/user/bochsrc.html
> >> >> >
> >> >> > See `port_e9_hack` section description.
> >> >> >
> >> >> > Fix Xen so it also returns the port address.  OSes can use it to 
> >> >> > detect
> >> >> > whether the emergency console is available or not.
> >> >> >
> >> >> > Fixes: d1bd157fbc9b ("Big merge the HVM full-virtualisation 
> >> >> > abstractions.")
> >> >> > Signed-off-by: Roger Pau Monné <roger.pau@xxxxxxxxxx>
> >> >> 
> >> >> Reviewed-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
> >> >> 
> >> >> That's been wrong for rather a long time.  How did you find it?
> >> >
> >> > I came across the documentation above and I didn't remember Xen
> >> > returning any value for reads, which sadly was indeed true.
> >> >
> >> > This was because I had the intention to suggest Alejandro to (also?) use
> >> > the port 0xe9 hack for printing from XTF, which should work for both
> >> > Xen and QEMU.
> >> 
> >> QEMU doesn't support 0xE9 though?
> >
> > AFAICT it does:
> >
> > https://wiki.osdev.org/QEMU#The_debug_console
> >
> > However when running QEMU on Xen as a device model writes to 0xe9 are
> > handled in the hypervisor, and never forwarded to any device model.
> >
> > Regards, Roger.
> 
> The more you know. I searched for it once upon a time and couldn't find it.
> Thanks for the pointer.
> 
> Regardless, "-debugcon stdio" is functionally equivalent to "-serial stdio"
> and the latter can be adapted to work on real hardware too.

The emulated serial is possibly equivalent to the 0xe9 hack in QEMU,
as I expect the serial is mostly setup to "just work".  On native you
likely need to configure the baud rate &c, plus implement flow
control?

Is there any testing XTF should do to ensure the serial is there,
before blindly writing at 0x3f8?

Thanks, Roger.



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.