{"id":2231638,"url":"http://patchwork.ozlabs.org/api/patches/2231638/?format=json","web_url":"http://patchwork.ozlabs.org/project/uboot/patch/20260501-ten64-add-usb5744-v3-2-234c5b2f8c6f@traverse.com.au/","project":{"id":18,"url":"http://patchwork.ozlabs.org/api/projects/18/?format=json","name":"U-Boot","link_name":"uboot","list_id":"u-boot.lists.denx.de","list_email":"u-boot@lists.denx.de","web_url":null,"scm_url":null,"webscm_url":null,"list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<20260501-ten64-add-usb5744-v3-2-234c5b2f8c6f@traverse.com.au>","list_archive_url":null,"date":"2026-05-01T01:36:03","name":"[v3,2/8] board: ten64: add fdt fixup to hide usb hub topology","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"13394849ebacb9e32d894ab8fc29ebbe27a0456c","submitter":{"id":72945,"url":"http://patchwork.ozlabs.org/api/people/72945/?format=json","name":"Mathew McBride","email":"matt@traverse.com.au"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/uboot/patch/20260501-ten64-add-usb5744-v3-2-234c5b2f8c6f@traverse.com.au/mbox/","series":[{"id":502413,"url":"http://patchwork.ozlabs.org/api/series/502413/?format=json","web_url":"http://patchwork.ozlabs.org/project/uboot/list/?series=502413","date":"2026-05-01T01:36:01","name":"board: ten64: add USB Hub (USB5744) management support","version":3,"mbox":"http://patchwork.ozlabs.org/series/502413/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/2231638/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2231638/checks/","tags":{},"related":[],"headers":{"Return-Path":"<u-boot-bounces@lists.denx.de>","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=traverse.com.au header.i=@traverse.com.au\n header.a=rsa-sha256 header.s=fm1 header.b=TQpmwlgm;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=messagingengine.com header.i=@messagingengine.com\n header.a=rsa-sha256 header.s=fm2 header.b=kickeYzl;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de\n (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de;\n envelope-from=u-boot-bounces@lists.denx.de; receiver=patchwork.ozlabs.org)","phobos.denx.de;\n dmarc=none (p=none dis=none) header.from=traverse.com.au","phobos.denx.de;\n spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de","phobos.denx.de;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=traverse.com.au header.i=@traverse.com.au\n header.b=\"TQpmwlgm\";\n\tdkim=pass (2048-bit key;\n unprotected) header.d=messagingengine.com header.i=@messagingengine.com\n header.b=\"kickeYzl\";\n\tdkim-atps=neutral","phobos.denx.de; dmarc=none (p=none dis=none)\n header.from=traverse.com.au","phobos.denx.de;\n spf=pass smtp.mailfrom=matt@traverse.com.au"],"Received":["from phobos.denx.de (phobos.denx.de\n [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g6DCp0wqZz1yGq\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 01 May 2026 11:36:38 +1000 (AEST)","from h2850616.stratoserver.net (localhost [IPv6:::1])\n\tby phobos.denx.de (Postfix) with ESMTP id 403ED83A91;\n\tFri,  1 May 2026 03:36:21 +0200 (CEST)","by phobos.denx.de (Postfix, from userid 109)\n id 47ABC843D4; Fri,  1 May 2026 03:36:20 +0200 (CEST)","from fhigh-a7-smtp.messagingengine.com\n (fhigh-a7-smtp.messagingengine.com [103.168.172.158])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits))\n (No client certificate requested)\n by phobos.denx.de (Postfix) with ESMTPS id 4B3DE839D5\n for <u-boot@lists.denx.de>; Fri,  1 May 2026 03:36:18 +0200 (CEST)","from phl-compute-05.internal (phl-compute-05.internal [10.202.2.45])\n by mailfhigh.phl.internal (Postfix) with ESMTP id 8B7CE14000B2;\n Thu, 30 Apr 2026 21:36:17 -0400 (EDT)","from phl-frontend-04 ([10.202.2.163])\n by phl-compute-05.internal (MEProxy); Thu, 30 Apr 2026 21:36:17 -0400","by mail.messagingengine.com (Postfix) with ESMTPA; Thu,\n 30 Apr 2026 21:36:14 -0400 (EDT)"],"X-Spam-Checker-Version":"SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de","X-Spam-Level":"","X-Spam-Status":"No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED,\n DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED,\n SPF_HELO_PASS,SPF_PASS autolearn=ham autolearn_force=no version=3.4.2","DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/relaxed; d=traverse.com.au;\n h=cc:cc:content-transfer-encoding:content-type:content-type\n :date:date:from:from:in-reply-to:in-reply-to:message-id\n :mime-version:references:reply-to:subject:subject:to:to; s=fm1;\n t=1777599377; x=1777685777; bh=s5CzRRE5oSlKir55IYhFzAAb4QdoeJCd\n hohUueNhuVU=; b=TQpmwlgmm5deKxq91cSA6r8FJazUXNRHs5n5+DaqxNOWTRyK\n GLqeQJMJNz8IVca+GY2HuR7tJv8tSIEuiDB8tZJmTZ2v/PSqiuN3dkr2mPeSV26Q\n QLTZwn73RfYCVY4jDp/K2ZL3ypxNlK3Zf1tFE5aD4LzEt2VMJj7mVKM9oE8EDhD9\n qapJ2t7oYyyu/3w0kO0v30uXja9Zvf9ylTeWT9/wLw2gC2NTVq+jKIn4cjpzDUAI\n yFfBygL5h9zc/XzzpwJV8Ihlyl+az0SZm89eCQbJj8W5GMaH1OgyrLU4f5b0EeUk\n uS7pynpP6TKXHLOySBmJoK1jkn7q68MYfYjNWA==","v=1; a=rsa-sha256; c=relaxed/relaxed; d=\n messagingengine.com; h=cc:cc:content-transfer-encoding\n :content-type:content-type:date:date:feedback-id:feedback-id\n :from:from:in-reply-to:in-reply-to:message-id:mime-version\n :references:reply-to:subject:subject:to:to:x-me-proxy\n :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1777599377; x=\n 1777685777; bh=s5CzRRE5oSlKir55IYhFzAAb4QdoeJCdhohUueNhuVU=; b=k\n ickeYzlm6Ilc8zVvq4ppGEcuZNxl5NL3v0NVWSlh5rcx1XpzBOdFF6rd0T7TfE/O\n TSPNZfpBqSZeG2Bfgyeb2TfTUieudmlXkKVWpNLa7Q0wAt5liXAYSX4Ki0BVMe1I\n Lz+1cFD9SFn8EK+Pry8ncjheis5VCUXVmvoYZj8iOqd3Q8msblbylQYthk3rMK8A\n AqlmTjSmXWXNnnjbOz9QMHOUGrp83IFmxQLzmi7ioP3A65LVX8Aue78Grc5LcRlt\n yP7wPC26P9AzBR7tAEA45bSp2qMMyLmPHCABq/rbMlLloWUsdlEauIjxEfTtJMmu\n OCr1G6PducVk+QPojyzrQ=="],"X-ME-Sender":"<xms:kQP0adMu4B-1vwiW5jgc8Fv6_fY_9KHrFVy5RXMdqauVxr4BaR6cog>\n <xme:kQP0aTCDflHcdmXbJAHVczYw7OWoH9NP66I6n1zlKQhJubKHWqg3aV9f5bGcZw53d\n YRPIjPbW0q8LO3AIoXZNnXov5oIiLFt0O98znlamqYYGTvISzAzgufH>","X-ME-Received":"\n <xmr:kQP0aW7TGElKP5JResmnYrW3y3LRAeUUT-cyiOAM3MP1F1wj12WENN5Ix6yxujYH8IEk3rfIKykfo1EHk-3wLusPwJUjSxaoCrzx6bC5omlZDYpk1EoU9DDM>","X-ME-Proxy-Cause":"\n gggruggvucftvghtrhhoucdtuddrgeefhedrtddtgdekkeeltdcutefuodetggdotefrod\n ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpuffrtefokffrpgfnqfghnecuuegr\n ihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjug\n hrpefhfffugggtgffkfhgjvfevofesthejredtredtjeenucfhrhhomhepofgrthhhvgif\n ucfotgeurhhiuggvuceomhgrthhtsehtrhgrvhgvrhhsvgdrtghomhdrrghuqeenucggtf\n frrghtthgvrhhnpeffvddthfeklefffffgjeekfeetueehhfeigfffgfekudeujeehffet\n ffeltefgheenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhroh\n hmpehmrghtthesthhrrghvvghrshgvrdgtohhmrdgruhdpnhgspghrtghpthhtohepuddt\n pdhmohguvgepshhmthhpohhuthdprhgtphhtthhopehmrghtthesthhrrghvvghrshgvrd\n gtohhmrdgruhdprhgtphhtthhopehluhhkrghsiidrtgiivggthhhofihskhhisehthhgr\n uhhmrghtvggtrdgtohhmpdhrtghpthhtohepshhjghestghhrhhomhhiuhhmrdhorhhgpd\n hrtghpthhtohepuhdqsghoohhtsehlihhsthhsrdguvghngidruggvpdhrtghpthhtohep\n mhhitghhrghlrdhsihhmvghksegrmhgurdgtohhmpdhrtghpthhtohepmhgrrhgvkhdrvh\n grshhuthesmhgrihhlsghogidrohhrghdprhgtphhtthhopehprggumhgrrhgrohdrsggv\n ghgrrhhisegrmhgurdgtohhmpdhrtghpthhtohepphgvnhhgrdhfrghnsehngihprdgtoh\n hmpdhrtghpthhtohepqhhuvghnthhinhdrshgthhhulhiisegthhgvrhhrhidruggv","X-ME-Proxy":"<xmx:kQP0aV5R8ZOut7ylNQUsBhQWy-1n8zQMNHyaRP8wWJ9ukAMFrcQmZA>\n <xmx:kQP0aQSCQuc0CJ9rkHUiY21RZ02gwafquGTSQVcBIlW6cUiQXGhMqg>\n <xmx:kQP0aV8EQ05LKYtgtY04-7YVZSgla474qt1WgBc9cJQt7g0BrSaICw>\n <xmx:kQP0aZb4hHti4X5i-tTIW210dfXSL6poR9eDmUR3DcIXw_NNI7ZTUg>\n <xmx:kQP0aQLZsphtCQVDdEW32biL7nFPUU_OyL5BHkSWvkkZ9m5CSA2Y0abg>","Feedback-ID":"i426947f3:Fastmail","From":"Mathew McBride <matt@traverse.com.au>","Date":"Fri, 01 May 2026 11:36:03 +1000","Subject":"[PATCH v3 2/8] board: ten64: add fdt fixup to hide usb hub\n topology","MIME-Version":"1.0","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"7bit","Message-Id":"<20260501-ten64-add-usb5744-v3-2-234c5b2f8c6f@traverse.com.au>","References":"<20260501-ten64-add-usb5744-v3-0-234c5b2f8c6f@traverse.com.au>","In-Reply-To":"<20260501-ten64-add-usb5744-v3-0-234c5b2f8c6f@traverse.com.au>","To":"u-boot@lists.denx.de","Cc":"Tom Rini <trini@konsulko.com>,\n Lukasz Czechowski <lukasz.czechowski@thaumatec.com>,\n Quentin Schulz <quentin.schulz@cherry.de>,\n Michal Simek <michal.simek@amd.com>, Marek Vasut <marek.vasut@mailbox.org>,\n Padmarao Begari <padmarao.begari@amd.com>, Peng Fan <peng.fan@nxp.com>,\n Simon Glass <sjg@chromium.org>, Mathew McBride <matt@traverse.com.au>","X-Mailer":"b4 0.14.3","X-Developer-Signature":"v=1; a=ed25519-sha256; t=1777599366; l=3027;\n i=matt@traverse.com.au; s=20260115; h=from:subject:message-id;\n bh=JDvtegEwryJLKC2uFgGsfv2hKajLJEvf4JWmN1hiI6U=;\n b=o68defjjDuT30zzxk0o1b6Wean0nXueHujmBiwTmOwzIULTgsGk3XSmyAJ0nACPeIWurN0Nuz\n 8opuGA4DRUeBFPc2d9AM82da5rVb2eK1V676fS69RxaGxBmQGZNFsX3","X-Developer-Key":"i=matt@traverse.com.au; a=ed25519;\n pk=SM+aGm9Y2fPJ2prfH/b5lab73fTBrKL5UsJwdzv7Pbg=","X-BeenThere":"u-boot@lists.denx.de","X-Mailman-Version":"2.1.39","Precedence":"list","List-Id":"U-Boot discussion <u-boot.lists.denx.de>","List-Unsubscribe":"<https://lists.denx.de/options/u-boot>,\n <mailto:u-boot-request@lists.denx.de?subject=unsubscribe>","List-Archive":"<https://lists.denx.de/pipermail/u-boot/>","List-Post":"<mailto:u-boot@lists.denx.de>","List-Help":"<mailto:u-boot-request@lists.denx.de?subject=help>","List-Subscribe":"<https://lists.denx.de/listinfo/u-boot>,\n <mailto:u-boot-request@lists.denx.de?subject=subscribe>","Errors-To":"u-boot-bounces@lists.denx.de","Sender":"\"U-Boot\" <u-boot-bounces@lists.denx.de>","X-Virus-Scanned":"clamav-milter 0.103.8 at phobos.denx.de","X-Virus-Status":"Clean"},"content":"The USB Hub (microchip,usb5744) can enter a dis-/reconnect loop\nif a driver tries to re-initialise the hub over I2C.\n\nOn the Ten64 board, this process only needs to be run once\nper system reset cycle, which is carried out by U-Boot.\n\nAs there are distributions shipping with the affected\ndriver by default, the best solution is to remove\nthe USB hub topology information from the FDT passed\nto the operating system, so the OS won't attempt\nto re-initialise the USB hub under any circumstance.\n\nSigned-off-by: Mathew McBride <matt@traverse.com.au>\n---\n board/traverse/ten64/ten64.c | 57 ++++++++++++++++++++++++++++++++++++++++++++\n 1 file changed, 57 insertions(+)","diff":"diff --git a/board/traverse/ten64/ten64.c b/board/traverse/ten64/ten64.c\nindex d41bd2e9dee..c5fbf4b4a04 100644\n--- a/board/traverse/ten64/ten64.c\n+++ b/board/traverse/ten64/ten64.c\n@@ -186,6 +186,58 @@ void fdt_fixup_board_enet(void *fdt)\n \t\tfdt_status_fail(fdt, offset);\n }\n \n+/* The onboard USB hub driver (microchip,usb5744)\n+ * can cause a disconnect-reconnect loop if the operating system\n+ * attempts to re-initialise the hub after U-Boot has already done it.\n+ * (This process only needs to be done once per system RESET cycle)\n+ *\n+ * To avoid this condition, make the hub topology invisible\n+ * to the operating system.\n+ * It is also required to remove the hub on boards\n+ * without it (RevD).\n+ *\n+ * The USB hub fixup may fail for legitimate reasons:\n+ * 1. FDT has already been fixed. For example, the control\n+ *    FDT previously modified by board_fix_fdt is\n+ *    re-used for bootflow.\n+ * 2. The FDT blob is based on an older version\n+ *    without the hub topology, such as older OpenWrt\n+ *    FIT images with their own device tree.\n+ */\n+int fdt_fixup_usb_hub(void *fdt)\n+{\n+\tint usb1_hub2744_offset, usb1_hub5744_offset;\n+\tint i2c_usb5744_offset;\n+\tint err;\n+\n+\tusb1_hub2744_offset = fdt_path_offset(fdt, \"/soc/usb@3110000/hub@1\");\n+\n+\tif (usb1_hub2744_offset < 0)\n+\t\treturn usb1_hub2744_offset;\n+\n+\terr = fdt_del_node(fdt, usb1_hub2744_offset);\n+\tif (err)\n+\t\treturn err;\n+\n+\tusb1_hub5744_offset = fdt_path_offset(fdt, \"/soc/usb@3110000/hub@2\");\n+\tif (usb1_hub5744_offset < 0)\n+\t\treturn usb1_hub5744_offset;\n+\n+\terr = fdt_del_node(fdt, usb1_hub5744_offset);\n+\tif (err)\n+\t\treturn err;\n+\n+\ti2c_usb5744_offset = fdt_path_offset(fdt, \"/soc/i2c@2000000/usb-hub@2d\");\n+\tif (i2c_usb5744_offset < 0)\n+\t\treturn i2c_usb5744_offset;\n+\n+\terr = fdt_setprop_string(fdt, i2c_usb5744_offset, \"status\", \"disabled\");\n+\tif (err)\n+\t\treturn err;\n+\n+\treturn 0;\n+}\n+\n /* Called after SoC board_late_init in fsl-layerscape/soc.c */\n int fsl_board_late_init(void)\n {\n@@ -251,6 +303,11 @@ int ft_board_setup(void *blob, struct bd_info *bd)\n \n \tfdt_fixup_icid(blob);\n \n+\t/* This fixup may fail for legitimate\n+\t * reasons (see comments for fdt_fixup_usb_hub).\n+\t * Hence, errors with it are silently ignored.\n+\t */\n+\tfdt_fixup_usb_hub(blob);\n \treturn 0;\n }\n \n","prefixes":["v3","2/8"]}