public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Gerd Hoffmann" <kraxel@redhat.com>
To: Laszlo Ersek <lersek@redhat.com>
Cc: devel@edk2.groups.io, "Ramesh R." <rameshr@ami.com>,
	Sivaraman Nainar <sivaramann@ami.com>,
	manickavasakam karpagavinayagam <manickavasakamk@ami.com>
Subject: Re: [edk2-devel] Intel NUC platform firmware -- no serial I/O support?
Date: Thu, 7 Apr 2022 14:50:15 +0200	[thread overview]
Message-ID: <20220407125015.bkz5e755mpvzdm3g@sirius.home.kraxel.org> (raw)
In-Reply-To: <d57aaf9c-4a6c-e41b-871e-3c7c79065753@redhat.com>

On Thu, Apr 07, 2022 at 12:49:38PM +0200, Laszlo Ersek wrote:
> > Disclaimer: Havn't used amt/vpro for a quite while.  But possibly
> > those drivers bind to the serial device which shows up when you enable
> > remote management and serial-over-lan support?
> 
> Hm... it boggles my mind a bit to think about this, but... considering
> Serial-over-LAN, what that would do, I expect, is provide a SerialIo
> protocol interface on top of *some* networking protocol (directly or
> indirectly).

The hardware I've used years ago had PCI devices.  A 16550 for
serial-over-lan (much like qemu -device pci-serial) and a PCI IDE
controller (for media redirect over network).

Serial-over-lan console works also for the linux kernel, just needs
"console=ttyS0,<magic-words-for-nonstandard-port-here>" on the command
line.

The PCI devices only show up when enabled in the management engine
configuration.

(that all was non-uefi capable hardware, so *really* long ago).

> But my goal here is to use the *serial port hardware* in the NUC.

Well, it at least looks like 16550 / ide hardware.  Not sure how this
is actually implemented, I suspect it is virtual, maybe port access
traps into SMM and it's emulated there.  Or the management engine can
intercept those port accesses somehow.

> This is PCI B/D/F 00:01.0, that is, "PIIX3", on QEMU. It is bound by
> "OvmfPkg/SioBusDxe", which is a bus driver. The one child that's
> relevant for us now is handle BB. On that child controller,
> "OvmfPkg/SioBusDxe" installs:
> - the Super-I/O protocol
> - the device path PciRoot(0x0)/Pci(0x1,0x0)/Serial(0x0).

> This is bound by "MdeModulePkg/Bus/Pci/PciSioSerialDxe", another bus
> driver. The child we care about is handle BE. On that child controller,
> "PciSioSerialDxe" installs:
> - the SerialIo protocol,
> - the device path
>   PciRoot(0x0)/Pci(0x1,0x0)/Serial(0x0)/Uart(115200,8,N,1)

Yep.

If today's hardware still works the same way I'd expect you have a
little driver taking the role of SioBusDxe, but binding to
PCI_CLASS_COMMUNICATION_SERIAL devices instead of a LPC bridge with
isa serial ports behind it.  Possibly the AMI drivers you've seen
are just that.

Does the NUC accept unsigned firmware updates?  If so we can maybe just
add a SioBusDxe driver variant customized for the NUC hardware ...

take care,
  Gerd


  reply	other threads:[~2022-04-07 12:50 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-04-07  7:46 Intel NUC platform firmware -- no serial I/O support? Laszlo Ersek
2022-04-07  8:00 ` [edk2-devel] " Gerd Hoffmann
2022-04-07 10:49   ` Laszlo Ersek
2022-04-07 12:50     ` Gerd Hoffmann [this message]
2022-04-07 14:12       ` Laszlo Ersek
2022-04-07 17:04         ` manickavasakam karpagavinayagam
2022-04-08  9:19           ` Laszlo Ersek
2022-04-12 18:40             ` manickavasakam karpagavinayagam
2022-04-13  6:06               ` Laszlo Ersek
2022-04-08  9:48         ` Gerd Hoffmann
2022-04-08 11:01           ` Laszlo Ersek
2022-10-06 15:07     ` Laszlo Ersek
2022-04-07 22:16 ` Nate DeSimone
2022-04-08  9:32   ` Laszlo Ersek

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-list 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=20220407125015.bkz5e755mpvzdm3g@sirius.home.kraxel.org \
    --to=devel@edk2.groups.io \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox