From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by mx.groups.io with SMTP id smtpd.web09.3622.1576624611990614130 for ; Tue, 17 Dec 2019 15:16:52 -0800 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 192.55.52.43, mailfrom: maurice.ma@intel.com) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga105.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 17 Dec 2019 15:16:51 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.69,327,1571727600"; d="scan'208";a="247661157" Received: from orsmsx101.amr.corp.intel.com ([10.22.225.128]) by fmsmga002.fm.intel.com with ESMTP; 17 Dec 2019 15:16:51 -0800 Received: from orsmsx105.amr.corp.intel.com ([169.254.2.174]) by ORSMSX101.amr.corp.intel.com ([169.254.8.147]) with mapi id 14.03.0439.000; Tue, 17 Dec 2019 15:16:51 -0800 From: "Ma, Maurice" To: "Dong, Guo" CC: "You, Benjamin" , "u14935@gmail.com" , "devel@edk2.groups.io" Subject: Re: [edk2-devel] [PATCH] UefiPayloadPkg/BootManager: Add PS2 keyboard support Thread-Topic: [edk2-devel] [PATCH] UefiPayloadPkg/BootManager: Add PS2 keyboard support Thread-Index: AQHVr67We7sQTr88GEKn5sG2seuqDqe/AGWw Date: Tue, 17 Dec 2019 23:16:50 +0000 Message-ID: <7AAC936950815649B5F88FAE785306C2F70AB2DF@ORSMSX105.amr.corp.intel.com> References: <20191210230851.17712-1-guo.dong@intel.com> In-Reply-To: <20191210230851.17712-1-guo.dong@intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ctpclassification: CTP_NT x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiMmY2ZjEzZDUtYWVhZS00ODQwLWEyYWYtMDRjNGJkYjc4OWI2IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiVmN4WGpGV1MrRm16SHpuYTZBSVVlVEptWXpnNDJqWU5sTW0ybmE1cE5EVWR5YkQrUXRaeXJPRnBSdkxjbnhcLzQifQ== dlp-product: dlpe-windows dlp-version: 11.2.0.6 dlp-reaction: no-action x-originating-ip: [10.22.254.138] MIME-Version: 1.0 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hi, Guo, Since PS2 keyboard is not commonly seen anymore, do you think it is bette= r to define a control variable in DSC so that the PS2 driver can be easily = added or removed using build command line ? Thanks Maurice > -----Original Message----- > From: Dong, Guo > Sent: Tuesday, December 10, 2019 15:09 > To: devel@edk2.groups.io > Cc: Ma, Maurice ; You, Benjamin > ; Dong, Guo ; > u14935@gmail.com > Subject: [edk2-devel] [PATCH] UefiPayloadPkg/BootManager: Add PS2 > keyboard support >=20 > Add PS2 keyboard support by default. > REF:https://bugzilla.tianocore.org/show_bug.cgi?id=3D2316 >=20 > This patch adds PS2 keyboard support in boot manager, and build PS2 > keyboard driver and SIO driver by default. >=20 > Signed-off-by: Guo Dong > --- > UefiPayloadPkg/Library/PlatformBootManagerLib/PlatformConsole.c | 25 > ++++++++++++++++++++----- > UefiPayloadPkg/UefiPayloadPkg.fdf | 2 ++ > UefiPayloadPkg/UefiPayloadPkgIa32.dsc | 2 ++ > UefiPayloadPkg/UefiPayloadPkgIa32X64.dsc | 2 ++ > 4 files changed, 26 insertions(+), 5 deletions(-) >=20 > diff --git > a/UefiPayloadPkg/Library/PlatformBootManagerLib/PlatformConsole.c > b/UefiPayloadPkg/Library/PlatformBootManagerLib/PlatformConsole.c > index ee2d8c8d1e..a27cc552ab 100644 > --- a/UefiPayloadPkg/Library/PlatformBootManagerLib/PlatformConsole.c > +++ b/UefiPayloadPkg/Library/PlatformBootManagerLib/PlatformConsole.c > @@ -44,6 +44,9 @@ SPDX-License-Identifier: BSD-2-Clause-Patent #define > gPnp16550ComPort \ > PNPID_DEVICE_PATH_NODE(0x0501) >=20 > +#define gPnpPs2Keyboard \ > + PNPID_DEVICE_PATH_NODE(0x0303) > + > #define gUartVendor \ > { \ > { \ > @@ -87,7 +90,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent > DEVICE_PATH_MESSAGING_PC_ANSI \ > } >=20 > - > +ACPI_HID_DEVICE_PATH gPnpPs2KeyboardDeviceNode =3D > gPnpPs2Keyboard; > ACPI_HID_DEVICE_PATH gPnp16550ComPortDeviceNode =3D > gPnp16550ComPort; > UART_DEVICE_PATH gUartDeviceNode =3D gUart; > VENDOR_DEVICE_PATH gTerminalTypeDeviceNode =3D gPcAnsiTermina= l; > @@ -109,12 +112,15 @@ EFI_DEVICE_PATH_PROTOCOL > *gPlatformRootBridges[] =3D { > BOOLEAN mDetectVgaOnly; >=20 > /** > - Add UART to ConOut, ConIn, ErrOut. > + Add IsaKeyboard to ConIn; add IsaSerial to ConOut, ConIn, ErrOut. >=20 > - @param[in] DeviceHandle - LPC device path. > + @param[in] DeviceHandle Handle of the LPC Bridge device. >=20 > - @retval EFI_SUCCESS - Serial console is added to ConOut, ConIn, and > ErrOut. > - @retval EFI_STATUS - No serial console is added. > + @retval EFI_SUCCESS Console devices on the LPC bridge have been added > to > + ConOut, ConIn, and ErrOut. > + > + @return Error codes, due to EFI_DEVICE_PATH_PROTOCOL miss= ing > + from DeviceHandle. > **/ > EFI_STATUS > PrepareLpcBridgeDevicePath ( > @@ -123,6 +129,7 @@ PrepareLpcBridgeDevicePath ( { > EFI_STATUS Status; > EFI_DEVICE_PATH_PROTOCOL *DevicePath; > + EFI_DEVICE_PATH_PROTOCOL *TempDevicePath; >=20 > DevicePath =3D NULL; > Status =3D gBS->HandleProtocol ( > @@ -133,10 +140,18 @@ PrepareLpcBridgeDevicePath ( > if (EFI_ERROR (Status)) { > return Status; > } > + TempDevicePath =3D DevicePath; > + > + // > + // Register Keyboard > + // > + DevicePath =3D AppendDevicePathNode (DevicePath, > + (EFI_DEVICE_PATH_PROTOCOL *)&gPnpPs2KeyboardDeviceNode); > + EfiBootManagerUpdateConsoleVariable (ConIn, DevicePath, NULL); >=20 > // > // Register COM1 > // > + DevicePath =3D TempDevicePath; > DevicePath =3D AppendDevicePathNode ((EFI_DEVICE_PATH_PROTOCOL > *)NULL, (EFI_DEVICE_PATH_PROTOCOL *)&gUartDeviceVendorNode); > DevicePath =3D AppendDevicePathNode (DevicePath, > (EFI_DEVICE_PATH_PROTOCOL *)&gUartDeviceNode); > DevicePath =3D AppendDevicePathNode (DevicePath, > (EFI_DEVICE_PATH_PROTOCOL *)&gTerminalTypeDeviceNode); diff --git > a/UefiPayloadPkg/UefiPayloadPkg.fdf b/UefiPayloadPkg/UefiPayloadPkg.fdf > index 4cd88a3f85..b20ab82f47 100644 > --- a/UefiPayloadPkg/UefiPayloadPkg.fdf > +++ b/UefiPayloadPkg/UefiPayloadPkg.fdf > @@ -120,6 +120,8 @@ INF > MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciHostBridgeDxe.inf > # ISA Support > # > INF MdeModulePkg/Universal/SerialDxe/SerialDxe.inf > +INF OvmfPkg/SioBusDxe/SioBusDxe.inf > +INF MdeModulePkg/Bus/Isa/Ps2KeyboardDxe/Ps2KeyboardDxe.inf >=20 > # > # Console Support > diff --git a/UefiPayloadPkg/UefiPayloadPkgIa32.dsc > b/UefiPayloadPkg/UefiPayloadPkgIa32.dsc > index 11cf17ca06..c9c2a87940 100644 > --- a/UefiPayloadPkg/UefiPayloadPkgIa32.dsc > +++ b/UefiPayloadPkg/UefiPayloadPkgIa32.dsc > @@ -491,6 +491,8 @@ > # ISA Support > # > MdeModulePkg/Universal/SerialDxe/SerialDxe.inf > + OvmfPkg/SioBusDxe/SioBusDxe.inf > + MdeModulePkg/Bus/Isa/Ps2KeyboardDxe/Ps2KeyboardDxe.inf >=20 > # > # Console Support > diff --git a/UefiPayloadPkg/UefiPayloadPkgIa32X64.dsc > b/UefiPayloadPkg/UefiPayloadPkgIa32X64.dsc > index 5b7994a62c..8dfc9e189c 100644 > --- a/UefiPayloadPkg/UefiPayloadPkgIa32X64.dsc > +++ b/UefiPayloadPkg/UefiPayloadPkgIa32X64.dsc > @@ -492,6 +492,8 @@ > # ISA Support > # > MdeModulePkg/Universal/SerialDxe/SerialDxe.inf > + OvmfPkg/SioBusDxe/SioBusDxe.inf > + MdeModulePkg/Bus/Isa/Ps2KeyboardDxe/Ps2KeyboardDxe.inf >=20 > # > # Console Support > -- > 2.16.2.windows.1