[{"id":3685498,"web_url":"http://patchwork.ozlabs.org/comment/3685498/","msgid":"<0abcf804-f16f-43b6-a345-e14642e54718@kaod.org>","list_archive_url":null,"date":"2026-05-04T05:27:37","subject":"Re: [PATCH v6 00/11] hw/usb/ehci: Add 64-bit descriptor addressing\n support","submitter":{"id":68548,"url":"http://patchwork.ozlabs.org/api/people/68548/","name":"Cédric Le Goater","email":"clg@kaod.org"},"content":"On 5/4/26 04:53, Jamin Lin wrote:\n> EHCI supports 64-bit addressing through the CTRLDSSEGMENT register,\n> which provides the upper 32 bits of descriptor addresses when the\n> controller advertises 64-bit capability.\n> \n> Currently QEMU EHCI model only partially supports this functionality and\n> descriptor addresses are effectively treated as 32-bit. This becomes\n> problematic on systems where system memory is located above the 4GB\n> boundary.\n> \n> The Linux EHCI driver enables 64-bit addressing if the controller\n> advertises the capability. During initialization it programs the\n> segment register to zero:\n> \n>    https://github.com/torvalds/linux/blob/master/drivers/usb/host/ehci-hcd.c#L600\n> \n> The driver also notes that descriptor structures allocated from the\n> DMA pool use segment zero semantics. Descriptor memory is allocated\n> using the DMA API and platforms may configure a 64-bit DMA mask,\n> allowing descriptor memory to be placed above 4GB.\n> \n> On AST2700 platforms, system DRAM is mapped at 0x400000000. As a\n> result, descriptor addresses constructed directly from the EHCI\n> registers do not match the actual system addresses used by the\n> controller when accessing queue heads (QH) and queue element transfer\n> descriptors (qTD).\n> \n> This patch series implements full 64-bit descriptor addressing support\n> in the EHCI emulation. Descriptor address handling is updated to use\n> 64-bit values and the descriptor structures (QH, qTD, iTD and siTD)\n> are extended to support the upper address bits provided by the segment\n> register.\n> \n> Add a ctrldssegment-default property so platforms can provide a\n> descriptor address offset when constructing descriptor addresses.\n> This allows systems where DRAM resides above 4GB to access EHCI\n> descriptors correctly.\n> \n> The AST2700 machine uses this property to account for its DRAM mapping\n> at 0x400000000 and enables 64-bit EHCI DMA addressing.\n> \n> Test Result:\n> 1. EHCI 32bits with ast2600-evb machine\n> Command line:\n> ./build/qemu-system-arm \\\n>    -machine ast2600-evb \\\n>    -m 1G \\\n>    -drive file=image-bmc,if=mtd,format=raw \\\n>    -nographic \\\n>    -device usb-kbd,bus=usb-bus.1,id=mykbd \\\n>    -drive id=usbdisk,if=none,file=image0.ext4,format=raw \\\n>    -device usb-storage,bus=usb-bus.1,id=mystorage,drive=usbdisk\n>    -snapshot \\\n>    -nographic\n> Result:\n> unable to initialize usb specBus 001 Device 001: ID 1d6b:0002 Linux 6.18.3-v00.08.01-g172b7e27a30d ehci_hcd EHCI Host Controller\n> Bus 001 Device 002: ID 0627:0001 QEMU QEMU USB Keyboard\n> Bus 001 Device 003: ID 46f4:0001 QEMU QEMU USB HARDDRIVE\n> Bus 002 Device 001: ID 1d6b:0001 Linux 6.18.3-v00.08.01-g172b7e27a30d uhci_hcd Generic UHCI Host Controller\n> \n> 2. EHCI 64bits with ast2700a2-evb machine\n> Command line:\n> ./build/qemu-system-aarch64 -M ast2700a2-evb -nographic\\\n>   -bios ast27x0_bootrom.bin \\\n>   -drive file=image-bmc,format=raw,if=mtd \\\n>   -snapshot \\\n>   -device usb-kbd,bus=usb-bus.3,id=mykbd \\\n>   -drive id=usbdisk,if=none,file=image0.ext4,format=raw \\\n>   -device usb-storage,bus=usb-bus.3,id=mystorage,drive=usbdisk\n> Result:\n> root@ast2700-default:~# lsusb\n> unable to initialize usb specBus 001 Device 001: ID 1d6b:0001 Linux 6.18.3-v00.08.01-g172b7e27a30d uhci_hcd Generic UHCI Host Controller\n> Bus 002 Device 001: ID 1d6b:0002 Linux 6.18.3-v00.08.01-g172b7e27a30d ehci_hcd EHCI Host Controller\n> Bus 002 Device 002: ID 0627:0001 QEMU QEMU USB Keyboard\n> Bus 002 Device 003: ID 46f4:0001 QEMU QEMU USB HARDDRIVE\n>   \n> v1\n>   1. Fix checkpatch coding style issues\n>   2. Implement 64-bit addressing for QH/qTD/iTD/siTD descriptors\n>   3. Add descriptor address offset property\n>   4. Enable 64-bit EHCI DMA addressing on AST2700\n>   5. Configure descriptor address offset for AST2700\n> \n> v2\n>   1. Remove unused EHCIfstn structure and dead code\n>   2. Replace fprintf(stderr, ...) with qemu_log_mask(LOG_GUEST_ERROR)\n>   3. Replace DPRINTF debug logs with trace events\n>   4. Add functional tests for USB EHCI on AST2600 and AST2700 A1/A2\n>   5. Fix review issue\n> \n> v3:\n>   1. Add Migration version test function\n>   2. Add EHCI 64-bit buffer pointer fields description in commit log\n> \n> v4:\n>   1. Reorder patches in the series\n>   2. Fix EHCI migration issues\n>   3. Introduce a common properties macro for both sysbus and PCI\n>   4. Drop the descriptor address offset property\n>   5. Add ctrldssegment-default property\n>   6. Address review comments\n> \n> v5:\n>   1. Add 11.0 machine compatibility properties\n> \n> v6:\n>   1. Update reviewer suggested improvements.\n>    \n> Jamin Lin (11):\n>    tests/functional/arm/test_aspeed_ast2600_sdk: Add USB EHCI test for\n>      AST2600 SDK\n>    hw/usb/hcd-ehci: Change descriptor addresses to 64-bit with migration\n>      compatibility\n>    hw/usb/hcd-ehci: Add property to advertise 64-bit addressing\n>      capability\n>    hw/usb/hcd-ehci: Implement 64-bit QH descriptor addressing\n>    hw/usb/hcd-ehci: Implement 64-bit qTD descriptor addressing\n>    hw/usb/hcd-ehci: Implement 64-bit iTD descriptor addressing\n>    hw/usb/hcd-ehci: Implement 64-bit siTD descriptor addressing\n>    hw/usb/hcd-ehci: Add ctrldssegment-default property\n>    hw/arm/aspeed_ast27x0: Set EHCI ctrldssegment-default\n>    hw/arm/aspeed_ast27x0: Enable 64-bit EHCI DMA addressing\n>    tests/functional/aarch64/test_aspeed_ast2700: Add USB EHCI test for\n>      AST2700 A1/A2\n> \n>   hw/usb/hcd-ehci.h                             |  29 +++-\n>   hw/arm/aspeed_ast27x0.c                       |   5 +\n>   hw/core/machine.c                             |   5 +-\n>   hw/usb/hcd-ehci.c                             | 162 +++++++++++++-----\n>   hw/usb/trace-events                           |  26 +--\n>   .../aarch64/test_aspeed_ast2700a1.py          |   7 +\n>   .../aarch64/test_aspeed_ast2700a2.py          |   7 +\n>   .../functional/arm/test_aspeed_ast2600_sdk.py |   7 +\n>   8 files changed, 185 insertions(+), 63 deletions(-)\n> \n\nApplied to\n\n     https://github.com/legoater/qemu aspeed-next\n\nPlease base future contributions on this branch.\n\nThanks,\n\nC.","headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=kaod.org header.i=@kaod.org header.a=rsa-sha256\n header.s=ovhmo393970-selector1 header.b=PSG1kKWx;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists1p.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)","garm.ovh; auth=pass\n (GARM-98R002f6cc7758-4e17-4e0f-a32e-5039ca775709,\n 6CC5FA71F9BBCB93EEE0D9DCB002DEB149E91A90) smtp.auth=clg@kaod.org"],"Received":["from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g89DL3jYYz1yJV\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 04 May 2026 15:28:48 +1000 (AEST)","from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists1p.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-devel-bounces@nongnu.org>)\n\tid 1wJlqP-0001AT-RQ; Mon, 04 May 2026 01:27:49 -0400","from eggs.gnu.org ([2001:470:142:3::10])\n by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <clg@kaod.org>) id 1wJlqN-00019h-Uo\n for qemu-devel@nongnu.org; Mon, 04 May 2026 01:27:48 -0400","from 7.mo533.mail-out.ovh.net ([54.36.140.182])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <clg@kaod.org>) id 1wJlqJ-0000P4-Ts\n for qemu-devel@nongnu.org; Mon, 04 May 2026 01:27:47 -0400","from director3.derp.mail-out.ovh.net\n (director3.derp.mail-out.ovh.net [152.228.215.222])\n by mo533.mail-out.ovh.net (Postfix) with ESMTPS id 4g89C00PKyz5wNd;\n Mon,  4 May 2026 05:27:40 +0000 (UTC)","from director3.derp.mail-out.ovh.net\n (director3.derp.mail-out.ovh.net. [127.0.0.1])\n by director3.derp.mail-out.ovh.net (inspect_sender_mail_agent) with SMTP\n for <jamin_lin@aspeedtech.com>; Mon,  4 May 2026 05:27:39 +0000 (UTC)","from mta7.priv.ovhmail-u2.ea.mail.ovh.net (unknown [10.109.249.47])\n by director3.derp.mail-out.ovh.net (Postfix) with ESMTPS id\n 4g89Bz6J6Wz5x0c; Mon,  4 May 2026 05:27:39 +0000 (UTC)","from kaod.org (unknown [10.1.6.5])\n (Authenticated sender: clg@kaod.org)\n by mta7.priv.ovhmail-u2.ea.mail.ovh.net (Postfix) with ESMTPSA id\n 161EC2034CE;\n Mon,  4 May 2026 05:27:38 +0000 (UTC)"],"X-OVh-ClientIp":"82.64.250.170","Message-ID":"<0abcf804-f16f-43b6-a345-e14642e54718@kaod.org>","Date":"Mon, 4 May 2026 07:27:37 +0200","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH v6 00/11] hw/usb/ehci: Add 64-bit descriptor addressing\n support","To":"Jamin Lin <jamin_lin@aspeedtech.com>,\n \"philmd@linaro.org\" <philmd@linaro.org>,\n \"peterx@redhat.com\" <peterx@redhat.com>,\n Peter Maydell <peter.maydell@linaro.org>,\n Steven Lee <steven_lee@aspeedtech.com>, Troy Lee <leetroy@gmail.com>,\n Kane Chen <kane_chen@aspeedtech.com>,\n Andrew Jeffery <andrew@codeconstruct.com.au>, Joel Stanley <joel@jms.id.au>,\n Zhao Liu <zhao1.liu@intel.com>, \"open list:ASPEED BMCs\"\n <qemu-arm@nongnu.org>, \"open list:All patches CC here\"\n <qemu-devel@nongnu.org>","Cc":"Troy Lee <troy_lee@aspeedtech.com>, \"farosas@suse.de\" <farosas@suse.de>,\n \"flwu@google.com\" <flwu@google.com>,\n \"nabihestefan@google.com\" <nabihestefan@google.com>","References":"<20260504025342.1452605-1-jamin_lin@aspeedtech.com>","Content-Language":"en-US, fr","From":"=?utf-8?q?C=C3=A9dric_Le_Goater?= <clg@kaod.org>","Autocrypt":"addr=clg@kaod.org; keydata=\n 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","In-Reply-To":"<20260504025342.1452605-1-jamin_lin@aspeedtech.com>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"7bit","x-ovh-tracer-id":"3335759949695265837","X-VR-SPAMSTATE":"OK","X-VR-SPAMSCORE":"-100","X-VR-SPAMCAUSE":"\n dmFkZTF8A9ScaUfl6AeYRVGEn7TFDt3MJjJSg5kQKHNWWIzEsnDHENq319vjOIB1BmUF4YpOxX6hARQ3RBTAJlil6C/8voMRqJibC4/SYxJ7TwY9kcVWDlhjJz4Fr51zHO+uL5vnYNYUr4NAyGyvB0VsEmSEg0HT0Nex5B54tf2P69RXo6Qx7ZSMtVohdJQh9lH/gLOwcYFnlfoNXutAGALi86wOICf4d1RFkSpnHSnp8uMKozwDx328JtP/ci9QsAn6M+fC1HW2R7L2qck72+GmcfaeJ0CkzUS+uPs4lEcr9ZDtqNJFDQawCXYGNxoAXRTO+0HY8RyST5j8hwRy1t+jZniJkPkbeKiXrVypJ6iHGdSNDjOwpWIap4G4avuj/rCMiSfkMIKvCrUYAy5MIOlInT5ptdj7xwS2ke+ji3BURVuJ/c9Om8Wd98c5WOp/ufnFtCh+LPsNXgFzrleQnXzFZKZpy+4zLW3PJQghpGqhkwg1msQuUBu2fX32/xVY6Gg9z1tJN3g5h8OIqM+NRElViF2O37jYbg7CAIWnDKl1amlEDEzjpr4PunAWMxnm9+PfMNuQEHinoTZHG0lQyoKusH7Sawv9EbRjQu6iNYc18lQ92y0yephGIu8R3X9O+KjuMGF40DOe1irtkejWlp/eQuKyNm4uyS2wAesoZBzCY/SogQ","DKIM-Signature":"a=rsa-sha256; bh=2rlOKzpVQvk1F9tHYaqd64iWpAGi1f76zbPtt3G0d+A=;\n c=relaxed/relaxed; d=kaod.org; h=From; s=ovhmo393970-selector1;\n t=1777872460; v=1;\n b=PSG1kKWxEEeQBwqshiwhyH0beZd5HhpIBjv8V8nuCav88f7aaIUGgasUw5icWmaHbpZI3d1g\n ma5iumnsjNTpgjCTFsLbM4nRyKn2MeaZ3QEWKAuT/0uQO5aRk1WexnZWFntCclTGiqkseDcAtiq\n H8yBjUlqg/CWi21w+wgN4osSgnOPzFMwxdFLqTeVYfmzsxPbg90e4dyu+xRKtr0YKOhABsmiQuc\n lzQw0l0gFaCzQif3Mx1D1QUoSYpY0jiwgSJCDdfatAoKN8//Qf0s3+4R/tzwt5jQnuAY/z1I/kR\n RyiBNrYVgb++oFy/SV5RY+dBGN/9vIuapNMlB3O2wUF/w==","Received-SPF":"pass client-ip=54.36.140.182; envelope-from=clg@kaod.org;\n helo=7.mo533.mail-out.ovh.net","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,\n DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,\n RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001,\n SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no","X-Spam_action":"no action","X-BeenThere":"qemu-devel@nongnu.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"qemu development <qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<https://lists.nongnu.org/archive/html/qemu-devel>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org"}}]