public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* Terminal Binding to Serial IO Protocol
@ 2017-08-02 12:58 Cohen, Eugene
  0 siblings, 0 replies; only message in thread
From: Cohen, Eugene @ 2017-08-02 12:58 UTC (permalink / raw)
  To: edk2-devel@lists.01.org, ruiyu.ni@intel.com; +Cc: Dellaquila, Katie

Hi edk2 community, it's been a while.

We have a situation where we need to use instances of the SERIAL_IO_PROTOCOL to talk to hardware devices that are not part of a console.  As written today TerminalDxe's driver binding will consume any handle that implements the SERIAL_IO_PROTOCOL (like in a BDS connect-all case).  Clearly this is problematic when the device on the other side is not a terminal.  

The UEFI Specification does not limit the Serial IO protocol to console/terminal only applications yet the edk2 implementation of TerminalDxe effectively does this.

I'm looking for some advice on how to resolve this.

I think it's important for the BDS connect-all case to keep working so I don't think customizing the driver connect process at a BDS level is a good solution.

The UEFI Driver Binding architecture has a capable precedence system for determining which drivers get to control which devices (binding versioning, bus overrides, platform overrides) but I don't think this a proper use of the system since I understand that this system was intended for choosing the better of two possible drivers for the hardware (like a motherboard versus option rom for the same PCI network adapter).  In this case having TerminalDxe trying to connect to a non-terminal device isn't slightly worse, it's broken.  

We need a way to differentiate serial port types in the connect process.  Since the Serial IO protocol can't be used to detect what's on the other side we need to get the information from the platform with it having a list like:

Serial 0: console
Serial 1: fax
Serial 2: keyboard
Serial 3: mouse
Serial 4: console

so we would only want TerminalDxe to connect to instance 0 and 4 and leave the others alone.

Any ideas on how to best do this?

Thanks,

Eugene




^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2017-08-02 12:55 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-08-02 12:58 Terminal Binding to Serial IO Protocol Cohen, Eugene

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox