[PATCH v2 0/8] board: ten64: add USB Hub (USB5744) management support
Mathew McBride
matt at traverse.com.au
Tue Apr 21 02:04:33 CEST 2026
The main public Ten64 board version (RevC) has a Microchip/SMSC
USB hub (USB5744) connected to the second USB controller on the
LS1088A.
The USB5744 is configured (by bootstrap pins) not to start automatically,
rather the firmware has to issue the start commands to the USB5744
over I2C.
The rationale for this is to allow certain ports to be disabled,
namely the M.2 Key B slot where the USB3 lanes need to be disabled
for a card that is PCI Express only (as the USB3 pins are shared
with a PCIe lane).
(The functionality for this scenario is not present in the mainline
USB5744 driver at this time).
Further testing revealed that some operating systems get stuck at boot
when they start their usb5744 driver, so we hide the USB Hub from
operating systems by deleting references (fixup) in the FDT prior to handover.
Similarly, references in U-Boot's internal FDT need to be deleted
when running on a board without the USB hub present.
CI pipeline results are here:
https://github.com/u-boot/u-boot/pull/924
I had to change the gpio.h #include in usb_onboard_hub.c to
asm-generic to fix a compile issue (missing stdint types).
The CI did not pick up any issues with this.
Signed-off-by: Mathew McBride <matt at traverse.com.au>
---
Changes in v2:
- Add missing CONFIG_OF_BOARD_FIXUP to the board defconfig
so that board_fix_fdt is called.
- Call usb_init late in the init sequence (before CLI / bootflow)
to ensure the USB hub is initialized and usable before
any downstream users.
- Remove 'local' copies of the board dts in arch/arm/dts that
are no longer required after OF_UPSTREAM conversion.
However, the board specific -u-boot.dtsi needs to remain
to pick up the SoC specific -u-boot.dtsi.
(Thanks to Fabio Estevam for pointing this out)
- Remove error print in ft_board_setup if USB hub nodes
not found (e.g if the control FDT is passed to the OS,
the fixup has already been done by board_fix_fdt,
causing a false error notification).
- Link to v1: https://lore.kernel.org/r/20260409-ten64-add-usb5744-v1-0-2094496f72c8@traverse.com.au
---
Mathew McBride (8):
usb: onboard-hub: fix compile issue with gpio.h import
board: ten64: add fdt fixup to hide usb hub topology
board: ten64: remove USB hub references from internal FDT when needed
configs: ten64: enable OF_FIXUP
configs: ten64: enable USB_ONBOARD_HUB (USB5744) option
configs: ten64: switch to OF_UPSTREAM
arm: dts: remove local copy Ten64 board DTS
board: ten64: start USB stack in late init
arch/arm/dts/fsl-ls1088a-ten64-u-boot.dtsi | 8 -
arch/arm/dts/fsl-ls1088a-ten64.dts | 388 -----------------------------
board/traverse/ten64/ten64.c | 67 ++++-
common/usb_onboard_hub.c | 2 +-
configs/ten64_tfa_defconfig | 5 +-
5 files changed, 71 insertions(+), 399 deletions(-)
---
base-commit: 70fd0c3bb7c26d42f24d10145dd5f3168ac92eac
change-id: 20260408-ten64-add-usb5744-0ad5f6ad9f40
Best regards,
--
Mathew McBride <matt at traverse.com.au>
More information about the U-Boot
mailing list