From patchwork Fri Jun 24 15:26:25 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: MkfsSion X-Patchwork-Id: 12894775 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 21A1EC433EF for ; Fri, 24 Jun 2022 15:30:33 +0000 (UTC) Received: from localhost ([::1]:44846 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1o4lGS-0000vf-3b for qemu-devel@archiver.kernel.org; Fri, 24 Jun 2022 11:30:32 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:37564) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o4lDQ-00048H-Tv for qemu-devel@nongnu.org; Fri, 24 Jun 2022 11:27:24 -0400 Received: from mail-108-mta0.mxroute.com ([136.175.108.0]:46487) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1o4lDP-0006en-3N for qemu-devel@nongnu.org; Fri, 24 Jun 2022 11:27:24 -0400 Received: from filter006.mxroute.com ([140.82.40.27] filter006.mxroute.com) (Authenticated sender: mN4UYu2MZsgR) by mail-108-mta0.mxroute.com (ZoneMTA) with ESMTPSA id 1819653230500028a7.002 for (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES128-GCM-SHA256); Fri, 24 Jun 2022 15:27:19 +0000 X-Zone-Loop: 872a4eab8dd1b4dff377a70685c94e77e937553f303b X-Originating-IP: [140.82.40.27] DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mkfssion.com; s=x; h=Content-Transfer-Encoding:MIME-Version:Message-Id:Date :Subject:Cc:To:From:Sender:Reply-To:Content-Type:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:In-Reply-To:References:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=EqNlKr6yIv9MTP6XJewjMRBR6Y+N7XbK9fI0jnMDGvY=; b=s6gcQDCn+NwKv0RRVIbZyLsMAV O1eSo09f3+bswbql3TYmKCBqS87xEgHurTAK8y4ELETL99SsHLlKc4q33u5TZscZXux3eA1l61qGp IexbB/fkfXxIAPYSmRCVQoDywG7IBqByjCSkgmILeDzmbaD72ibYelUrBw4sZEv/VlGKm/sI0Nqfo A0yd2CaOiNFy8N4g0bXSYqhZVOefZsfVvKb+Q8DM876AIebLg41HgYrXP76NI0LuV+VA+xMs2ekfE Zrukl/4gNKI60lJ31mtDLBCrJHx95QiYR3d108ktPUjY0KI+ajn3nszNkprmymJXWsguCXVT22FAt RfVubYsg==; From: MkfsSion To: qemu-devel@nongnu.org Cc: MkfsSion , Hongren Zheng , "Canokeys.org" , Gerd Hoffmann Subject: [PATCH v2 1/2] hw: canokey: Remove HS support as not compliant to the spec Date: Fri, 24 Jun 2022 23:26:25 +0800 Message-Id: <20220624152626.11565-1-mkfssion@mkfssion.com> MIME-Version: 1.0 X-AuthUser: mkfssion@mkfssion.com Received-SPF: pass client-ip=136.175.108.0; envelope-from=mkfssion@mkfssion.com; helo=mail-108-mta0.mxroute.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" Canokey core currently using 16 bytes as maximum packet size for control endpoint, but to run the device in high-speed a 64 bytes maximum packet size is required according to USB 2.0 specification. Since we don't acutally need to run the device in high-speed, simply don't assign high member in USBDesc. When canokey-qemu is used with xhci, xhci would drive canokey in high speed mode, since the bcdUSB in canokey-core is 2.1, yet canokey-core set bMaxPacketSize0 to be 16, this is out of the spec as the spec said that ``The allowable maximum control transfer data payload sizes...for high-speed devices, it is 64 bytes''. In this case, usb device validation in Windows 10 LTSC 2021 as the guest would fail. It would complain USB\DEVICE_DESCRIPTOR_VALIDATION_FAILURE. Note that bcdUSB only identifies the spec version the device complies, but it has no indication of its speed. So it is allowed for the device to run in FS but comply the 2.1 spec. To solve the issue we decided to just drop the high speed support. This only affects usb-ehci as usb-ehci would complain speed mismatch when FS device is attached to a HS port. That's why the .high member was initialized in the first place. Meanwhile, xhci is not affected as it works well with FS device. Since everyone is now using xhci, it does no harm to most users. Suggested-by: Hongren (Zenithal) Zheng Signed-off-by: YuanYang Meng --- hw/usb/canokey.c | 1 - 1 file changed, 1 deletion(-) diff --git a/hw/usb/canokey.c b/hw/usb/canokey.c index 4a08b1cbd7..6a7ab965a5 100644 --- a/hw/usb/canokey.c +++ b/hw/usb/canokey.c @@ -56,7 +56,6 @@ static const USBDesc desc_canokey = { .iSerialNumber = STR_SERIALNUMBER, }, .full = &desc_device_canokey, - .high = &desc_device_canokey, .str = desc_strings, }; From patchwork Fri Jun 24 15:26:26 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: MkfsSion X-Patchwork-Id: 12894774 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 39A2BC433EF for ; Fri, 24 Jun 2022 15:29:33 +0000 (UTC) Received: from localhost ([::1]:43972 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1o4lFU-0000NI-5S for qemu-devel@archiver.kernel.org; Fri, 24 Jun 2022 11:29:32 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:37624) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o4lDf-0004qk-UB for qemu-devel@nongnu.org; Fri, 24 Jun 2022 11:27:39 -0400 Received: from mail-108-mta16.mxroute.com ([136.175.108.16]:33141) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1o4lDd-0006fl-DT for qemu-devel@nongnu.org; Fri, 24 Jun 2022 11:27:39 -0400 Received: from filter006.mxroute.com ([140.82.40.27] filter006.mxroute.com) (Authenticated sender: mN4UYu2MZsgR) by mail-108-mta16.mxroute.com (ZoneMTA) with ESMTPSA id 18196534fc900028a7.002 for (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES128-GCM-SHA256); Fri, 24 Jun 2022 15:27:31 +0000 X-Zone-Loop: 46311864f7bb84992b755e2cefb2b5597deac933356d X-Originating-IP: [140.82.40.27] DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mkfssion.com; s=x; h=Content-Transfer-Encoding:MIME-Version:References: In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To:Content-Type: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=lsj4poOhkRXMO+Ri5SPBvoTEDMYzgBAursYt1KkJfpE=; b=aleDj7eV7VADYCVy5DgIhA55Ps 4OtRzdugITf8vLRpiTQKlISbRNcPC7lX6tcdDpWnZs9sGmmKddIssAgTj3DqshVafIQ/Ulxyw3dij YhRRI5NBPLGsi0imYwYCrIziKv9FsRAJDc14XImHlob260n8C07HgUyKW8YChaMWa2AnPfCL8GjYl kt8kxUAX9ME1N975GxLRk5o5RB5uwGnfrul5jf0Fks4jepE9n42odcjK/ZoPeB8tDf0uI3MgTGir3 FQP8499Taf7zk0+9eONINBRtCAxV0pd4/RbwqLQ6x/glxzVOr9GbrPWNyjNb2+zT4JC1j3NbO2dS1 NnFdwVFA==; From: MkfsSion To: qemu-devel@nongnu.org Cc: MkfsSion , Hongren Zheng , "Canokeys.org" Subject: [PATCH v2 2/2] docs/system/devices/canokey: Document limitations on usb-ehci Date: Fri, 24 Jun 2022 23:26:26 +0800 Message-Id: <20220624152626.11565-2-mkfssion@mkfssion.com> In-Reply-To: <20220624152626.11565-1-mkfssion@mkfssion.com> References: <20220624152626.11565-1-mkfssion@mkfssion.com> MIME-Version: 1.0 X-AuthUser: mkfssion@mkfssion.com Received-SPF: pass client-ip=136.175.108.16; envelope-from=mkfssion@mkfssion.com; helo=mail-108-mta16.mxroute.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" Suggested-by: Hongren (Zenithal) Zheng Signed-off-by: MkfsSion --- docs/system/devices/canokey.rst | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/docs/system/devices/canokey.rst b/docs/system/devices/canokey.rst index 169f99b8eb..650702ad8a 100644 --- a/docs/system/devices/canokey.rst +++ b/docs/system/devices/canokey.rst @@ -146,15 +146,9 @@ multiple CanoKey QEMU running, namely you can not Also, there is no lock on canokey-file, thus two CanoKey QEMU instance can not read one canokey-file at the same time. -Another limitation is that this device is not compatible with ``qemu-xhci``, -in that this device would hang when there are FIDO2 packets (traffic on -interrupt endpoints). If you do not use FIDO2 then it works as intended, -but for full functionality you should use old uhci/ehci bus and attach canokey -to it, for example - -.. parsed-literal:: - - |qemu_system| -device piix3-usb-uhci,id=uhci -device canokey,bus=uhci.0 +Another limitation is that this device is not compatible with ``usb-ehci`` +since we removed high-speed mode support. When a full-speed device attach +to a high-speed port, ``usb-ehci`` would complain about speed mismatch. References ==========