From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail01.congatec.net (mail01.congatec.net [81.169.130.245]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id C59D41A1E13 for ; Tue, 2 Aug 2016 12:16:30 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by mail01.congatec.net (Postfix) with ESMTP id E14095E0237; Tue, 2 Aug 2016 21:16:28 +0200 (CEST) X-Virus-Scanned: by amavisd-new at congatec.com Received: from mail01.congatec.net ([127.0.0.1]) by localhost (mail01.congatec.net [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id j4qe55LenpE5; Tue, 2 Aug 2016 21:16:26 +0200 (CEST) Received: from conus01.congatec.local (unknown [209.242.146.170]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail01.congatec.net (Postfix) with ESMTPS id B46305E0250; Tue, 2 Aug 2016 21:16:25 +0200 (CEST) In-Reply-To: <0015e1368c8743f7a0834fa4cc913ccc@ausx13mpc122.AMER.DELL.COM> References: <0015e1368c8743f7a0834fa4cc913ccc@ausx13mpc122.AMER.DELL.COM> To: Cc: MIME-Version: 1.0 X-KeepSent: 9E3AF4AE:439F60CC-88258003:00605A12; type=4; name=$KeepSent X-Mailer: IBM Notes Release 9.0.1FP4 June 08, 2015 Message-ID: From: Aaron.Pop@congatec.com Date: Tue, 2 Aug 2016 12:16:24 -0700 X-MIMETrack: Serialize by Router on conus01/SRV/congatec(Release 9.0.1FP5|November 22, 2015) at 08/02/2016 12:16:25 PM, Serialize complete at 08/02/2016 12:16:25 PM X-Content-Filtered-By: Mailman/MimeDel 2.1.21 Subject: Re: Foreign keyboard support in UEFI X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 02 Aug 2016 19:16:31 -0000 Content-Type: text/plain; charset="US-ASCII" Hi Senthil, Multi language keyboards support should be pretty transparent to an application. The simple text input protocols are designed to return a unicode character, and the protocols leave the mapping of keypress into the current keyboard layout to the system firmware. Keyboard layouts are installed into the Hii database, and then a set keyboard layout call is made to tell the system which keyboard layout to use. Each regional keyboard has a different layout ( https://msdn.microsoft.com/en-us/goglobal/bb964651.aspx). The UEFI specification (section 31.2.4) maps a keyboard into an enumerated value (EFI_KEY in MdePkg\Include\Uefi\UefiInternalFormRepresentation.h) and that enumerated value is used as an index into the keyboard layout data to return a unicode character for a specific keypress. If you are not getting a valid return character when you press a key on a usb keyboard, then there is a chance that the UsbKbDxe driver does not consider the key you pressed as a valid Usb key for the given keyboard layout. USB keyboards return a Usage ID for a given key press ( http://www.usb.org/developers/hidpage/Hut1_12v2.pdf). The EDK2 Usb keyboard driver (MdeModulePkg/Bus/Usb/UsbKbDxe) retrieves the USB usage id and translates it into an EFI_KEY_DATA entry by using the tables in the top of the Keyboard.c file (EfiKeyToUsbKeyCodeConvertionTable and mUsbKeyboardLayoutBin). It is possible that your system does not correctly map the hid usage id to a valid EFI_KEY enum based on the current keyboard mapping layout. I hope this gives you enough information to start to figure out your issue. From: To: Date: 08/01/2016 09:53 PM Subject: [edk2] Foreign keyboard support in UEFI Sent by: "edk2-devel" Hi, Any one shed some light on supporting multi language key board support on UEFI application? Scan code received from EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL not returns value for certain keys in German/Arabic USB keyboard. We are also not sure in mapping UEFI code from EFI_HII_DATABASE_PROTOCOL.GetKeyBoardLayOut()). Thanks Senthil _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel