Hi, On Mon, May 11, 2026 at 8:31 AM Michal Simek <[email protected]> wrote: > > > > On 5/8/26 17:42, Simon Glass wrote: > > Hi Jens, > > > > On Thu, 7 May 2026 at 03:28, Jens Wiklander <[email protected]> > > wrote: > >> > >> Hi, > >> > >> This is a follow-up to Jerome's patchset [1], addressing previous feedback > >> regarding the monolithic nature of the driver update. > >> > >> The DWC3 USB driver was forked from the Linux kernel v3.19-rc1 eleven years > >> ago by commit 85d5e7075f33 ("usb: dwc3: add dwc3 folder from linux kernel > >> to u-boot"). Since then, not many kernel changes have been ported back into > >> U-Boot. > >> > >> This series synchronizes the DWC3 core with Linux v6.16-rc7. To provide > >> a clear audit trail and maintain bisectability, I have structured the > >> series as follows: > >> > >> 1. Restore to Baseline: The first commit reverts U-Boot-specific changes > >> to drivers/usb/dwc3 to return the directory to a clean v3.19-rc1 state. > >> 2. Milestone Imports: A sequence of 50+ commits follows, each performing > >> a "snapshot" import of the drivers/usb/dwc3 directory for every major > >> kernel version (v3.19 through v6.16-rc7). > >> 3. U-Boot Adaptation: The final commits (based on Jerome's original work) > >> re-introduce the necessary glue code, XHCI/UDC updates, and build fixes > >> required for U-Boot integration. > >> > >> The final diff is identical to [1]. I decided to stick with that for now to > >> focus on the method of how we import or update the code. > >> > >> Note that this is compile-tested only. The CI pipeline on source.denx.de > >> was used as an OK/NOK indicator [2]. > >> > >> The previous patchset was tested on xilinx_zynqmp_kria_defconfig and since > >> this diff is identical to the previous, it should still work on that > >> platform. With the help of a custom build script [3] and with an additional > >> patch [4], I could boot the Kria KV260 board and make it detect a USB SSD > >> plugged into one of its USB 3.0 ports. It certainly doesn't mean all > >> platforms using the DWC3 driver are still OK, but at least there is some > >> hope. If this breaks your platform I'd like to know, and if you can send a > >> fix it's even better. > >> > >> I tried cherry-picking all the 1000+ patches in v3.19-rc1..v6.16-rc7. There > >> were a few conflicts, even when backing out the original U-Boot patches on > >> top of the original v3.19-rc1 import. However, the resulting state still > >> diverged significantly from [1]. > >> > >> Instead, I've imported each new kernel in a separate commit. That way it's > >> very clear which kernel patches are included. Since there aren't too many > >> patches for each kernel I'm listing the relevant commits in the U-Boot > >> commit message for easier reference. I did this with a script so it's easy > >> to make changes, if the approach is OK but we need to tune it. With this > >> approach it should be easy to tell if a Fixes patch for the kernel might > >> also be needed here. > >> > >> Thanks, > >> Jens > >> > >> [1] > >> https://lore.kernel.org/all/[email protected]/ > >> [2] https://source.denx.de/u-boot/custodians/u-boot-tpm/-/pipelines/30004 > >> [3] > >> https://source.denx.de/u-boot/u-boot-extras/-/raw/master/contrib/jforissier/zynqmp_kv260_build.sh > >> [4] > >> https://gitlab.com/Linaro/trustedsubstrate/meta-ts/-/raw/master/meta-trustedsubstrate/recipes-bsp/u-boot/u-boot/zynqmp-kria-starter/0001-kv260-fix-usb.patch > >> > >> RFC v1 -> RFC v2: > >> - Split the v1 ("usb: dwc3: re-import from kernel v6.16-rc7") into ("usb: > >> dwc3: restore to original v3.19-rc1 kernel import"), ("usb: dwc3: > >> import > >> from kernel v3.19)..("usb: dwc3: import from kernel v6.16-rc7") > >> > >> Jens Wiklander (60): > >> usb: dwc3: restore to original v3.19-rc1 kernel import > >> usb: dwc3: import from kernel v3.19 > >> usb: dwc3: import from kernel v4.0 > >> usb: dwc3: import from kernel v4.1 > >> usb: dwc3: import from kernel v4.2 > >> usb: dwc3: import from kernel v4.3 > >> usb: dwc3: import from kernel v4.4 > >> usb: dwc3: import from kernel v4.5 > >> usb: dwc3: import from kernel v4.6 > >> usb: dwc3: import from kernel v4.7 > >> usb: dwc3: import from kernel v4.8 > >> usb: dwc3: import from kernel v4.9 > >> usb: dwc3: import from kernel v4.10 > >> usb: dwc3: import from kernel v4.11 > >> usb: dwc3: import from kernel v4.12 > >> usb: dwc3: import from kernel v4.13 > >> usb: dwc3: import from kernel v4.14 > >> usb: dwc3: import from kernel v4.15 > >> usb: dwc3: import from kernel v4.16 > >> usb: dwc3: import from kernel v4.17 > >> usb: dwc3: import from kernel v4.18 > >> usb: dwc3: import from kernel v4.19 > >> usb: dwc3: import from kernel v4.20 > >> usb: dwc3: import from kernel v5.0 > >> usb: dwc3: import from kernel v5.1 > >> usb: dwc3: import from kernel v5.2 > >> usb: dwc3: import from kernel v5.3 > >> usb: dwc3: import from kernel v5.4 > >> usb: dwc3: import from kernel v5.5 > >> usb: dwc3: import from kernel v5.6 > >> usb: dwc3: import from kernel v5.7 > >> usb: dwc3: import from kernel v5.8 > >> usb: dwc3: import from kernel v5.9 > >> usb: dwc3: import from kernel v5.10 > >> usb: dwc3: import from kernel v5.11 > >> usb: dwc3: import from kernel v5.12 > >> usb: dwc3: import from kernel v5.13 > >> usb: dwc3: import from kernel v5.14 > >> usb: dwc3: import from kernel v5.15 > >> usb: dwc3: import from kernel v5.16 > >> usb: dwc3: import from kernel v5.17 > >> usb: dwc3: import from kernel v5.18 > >> usb: dwc3: import from kernel v5.19 > >> usb: dwc3: import from kernel v6.0 > >> usb: dwc3: import from kernel v6.1 > >> usb: dwc3: import from kernel v6.2 > >> usb: dwc3: import from kernel v6.3 > >> usb: dwc3: import from kernel v6.4 > >> usb: dwc3: import from kernel v6.5 > >> usb: dwc3: import from kernel v6.6 > >> usb: dwc3: import from kernel v6.7 > >> usb: dwc3: import from kernel v6.8 > >> usb: dwc3: import from kernel v6.9 > >> usb: dwc3: import from kernel v6.10 > >> usb: dwc3: import from kernel v6.11 > >> usb: dwc3: import from kernel v6.12 > >> usb: dwc3: import from kernel v6.13 > >> usb: dwc3: import from kernel v6.14 > >> usb: dwc3: import from kernel v6.15 > >> usb: dwc3: import from kernel v6.16-rc7 > >> > >> Jerome Forissier (4): > >> usb: host: re-import xhci-ext-caps.h from kernel v6.16-rc7 > >> usb: gadget: re-import epautoconf.c from kernel v6.16-rc7 > >> usb: udc: re-import udc-core.c from kernel v6.16-rc7 > >> usb: fix build after resync of DWC3 with kernel v6.16-rc7 > >> > >> drivers/usb/cdns3/ep0.c | 8 +- > >> drivers/usb/common/common.c | 23 + > >> drivers/usb/dwc3/Makefile | 57 +- > >> drivers/usb/dwc3/core.c | 1780 ++++++---- > >> drivers/usb/dwc3/core.h | 1120 +++++-- > >> drivers/usb/dwc3/debug.h | 432 +++ > >> drivers/usb/dwc3/dwc3-omap.c | 2 - > >> drivers/usb/dwc3/ep0.c | 737 +++-- > >> drivers/usb/dwc3/gadget.c | 4152 ++++++++++++++++-------- > >> drivers/usb/dwc3/gadget.h | 124 +- > >> drivers/usb/dwc3/glue.h | 36 + > >> drivers/usb/dwc3/io.h | 29 +- > >> drivers/usb/dwc3/linux-compat.h | 16 - > >> drivers/usb/dwc3/samsung_usb_phy.c | 77 - > >> drivers/usb/dwc3/ti_usb_phy.c | 2 - > >> drivers/usb/gadget/at91_udc.c | 46 - > >> drivers/usb/gadget/atmel_usba_udc.c | 102 +- > >> drivers/usb/gadget/ci_udc.c | 419 --- > >> drivers/usb/gadget/composite.c | 2 +- > >> drivers/usb/gadget/dwc2_udc_otg.c | 174 +- > >> drivers/usb/gadget/epautoconf.c | 289 +- > >> drivers/usb/gadget/ether.c | 21 +- > >> drivers/usb/gadget/f_acm.c | 20 +- > >> drivers/usb/gadget/f_fastboot.c | 10 +- > >> drivers/usb/gadget/f_mass_storage.c | 5 +- > >> drivers/usb/gadget/f_rockusb.c | 11 +- > >> drivers/usb/gadget/f_sdp.c | 12 +- > >> drivers/usb/gadget/f_thor.c | 19 +- > >> drivers/usb/gadget/udc/Makefile | 1 + > >> drivers/usb/gadget/udc/udc-core.c | 1096 ++++++- > >> drivers/usb/host/xhci-dwc3.c | 4 +- > >> drivers/usb/host/xhci-ext-caps.h | 158 + > >> drivers/usb/host/xhci-exynos5.c | 2 +- > >> drivers/usb/mtu3/mtu3_gadget_ep0.c | 16 +- > >> drivers/usb/musb-new/musb_gadget_ep0.c | 24 +- > >> drivers/usb/musb-new/musb_uboot.c | 39 - > >> include/dm/device_compat.h | 13 + > >> include/dm/read.h | 46 + > >> include/linux/compat.h | 15 + > >> include/linux/usb/ch9.h | 25 +- > >> include/linux/usb/gadget.h | 520 +-- > >> include/linux/usb/otg.h | 10 + > >> include/linux/usb/phy.h | 56 + > >> 43 files changed, 7659 insertions(+), 4091 deletions(-) > >> create mode 100644 drivers/usb/dwc3/debug.h > >> create mode 100644 drivers/usb/dwc3/glue.h > >> delete mode 100644 drivers/usb/dwc3/linux-compat.h > >> delete mode 100644 drivers/usb/dwc3/samsung_usb_phy.c > >> create mode 100644 drivers/usb/host/xhci-ext-caps.h > >> > >> > >> base-commit: 0f865ab5d68484b4dc1724809de1be06edc85df1 > > Why is it based on such a old commit ID?
I wanted to keep the same diff as in Jerome's original patch so that we can evaluate the method without distractions. It seems the method is acceptable, so I'll prepare a rebased version. Cheers, Jens > > Thanks, > Michal > > commit 0f865ab5d68484b4dc1724809de1be06edc85df1 > Author: Tom Rini <[email protected]> > AuthorDate: Mon Oct 20 13:55:08 2025 -0600 > Commit: Tom Rini <[email protected]> > CommitDate: Mon Oct 20 13:55:37 2025 -0600 > > spl: Restore args file being default in falcon mode > > When falcon mode is enabled and SPL_OS_BOOT_SECURE is not enabled, > restore the previous default behavior of having an args file be > expected. Platforms which are using a FIT image here and do not need > this can update at their convenience to disable this option now. > > Fixes: b1a3ed068869 ("spl: make args file optional in falcon mode") > Signed-off-by: Tom Rini <[email protected]> > >

