[PATCH v2 2/8] board: ten64: add fdt fixup to hide usb hub topology
Simon Glass
sjg at chromium.org
Wed Apr 22 00:50:44 CEST 2026
Hi Mathew,
On 2026-04-21T00:04:33, Mathew McBride <matt at traverse.com.au> wrote:
> board: ten64: add fdt fixup to hide usb hub topology
>
> The USB Hub (microchip,usb5744) can enter a dis-/reconnect loop
> if a driver tries to re-initialise the hub over I2C.
>
> On the Ten64 board, this process only needs to be run once
> per system reset cycle, which is carried out by U-Boot.
>
> As there are distributions shipping with the affected
> driver by default, the best solution is to remove
> the USB hub toplogy information from the FDT passed
> to the operating system, so the OS won't attempt
> to re-initialise the USB hub under any circumstance.
>
> Signed-off-by: Mathew McBride <matt at traverse.com.au>
>
> board/traverse/ten64/ten64.c | 45 ++++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 45 insertions(+)
> diff --git a/board/traverse/ten64/ten64.c b/board/traverse/ten64/ten64.c
> @@ -186,6 +186,50 @@ void fdt_fixup_board_enet(void *fdt)
> +/* The onboard USB hub driver (microchip,usb5744)
> + * can cause a disconnect-reconnect loop if the operating system
> + * attempts to re-initalise the hub after U-Boot has already done it.
Typo: re-initalise -> re-initialise
> diff --git a/board/traverse/ten64/ten64.c b/board/traverse/ten64/ten64.c
> @@ -251,6 +295,7 @@ int ft_board_setup(void *blob, struct bd_info *bd)
> + fdt_fixup_usb_hub(blob);
> return 0;
The return value of fdt_fixup_usb_hub() is ignored here. I understand
from the cover letter this is intentional (when the control FDT is
passed to the OS, the fixup has already been done by board_fix_fdt),
but a short comment explaining why would be useful.
Regards,
Simon
More information about the U-Boot
mailing list