u-boot/drivers
Tom Rini faa61a5012 Merge patch series "AM62A DWC3: Add support for USB DFU boot in OTG mode"
Siddharth Vadapalli <s-vadapalli@ti.com> says:

Hello,

This series adds support for USB DFU boot on TI's AM62A SoC which has
two instances of DWC3 USB Controllers namely USB0 and USB1. The USB0
instance of the USB Controller supports USB DFU boot:
ROM => tiboot3.bin => tispl.bin => u-boot.img

USB DFU Boot requires the USB Controller to be configured for Gadget
mode of operation. Since the USB0 instance of the DWC3 USB Controller
supports both Host and Gadget modes of operation via the Type-C interface
on the AM62A7-SK board, the device-tree specifies the "dr_mode" as "OTG".
However, there is currently no support for dynamically switching the "mode"
from Host to Gadget and vice-versa with the help of a state-machine.
The OTG mode is treated as a separate mode in itself rather than being
treated as an intermediate stage before assuming the Host/Gadget mode.
Due to this, USB DFU boot via the Type-C interface doesn't work as the
USB Controller hasn't been appropriately configured for Device/Gadget
mode of operation. One option is to change the device-tree to specify
"dr_mode" as "peripheral" and force the controller to assume the Device
role. This will imply that the U-Boot device-tree for AM62A diverges
from its Linux counterpart. Therefore, with the intent of keeping the
device-tree uniform across Linux and U-Boot, and at the same time, in
order to enable USB DFU boot in "OTG" mode with the DWC3 Controller,
the first patch in this series sets the "mode" on the basis of the
caller function, rather than using the "dr_mode" property in the
device-tree. There are only two callers of "dwc3_generic_probe()",
each of which clearly specify the expected mode of configuration.
This will enable both Host and Device mode of operation based on the
command executed by the user, thereby truly supporting "OTG"
functionality when the USB Controller supports it.

The second patch in this series adds USB DFU environment for AM62A,
enabling USB DFU Boot and USB DFU flash on AM62A.

In addition to the patches in this series, the following device-tree
changes will be required to test USB DFU on AM62A (bootph-all property
to be added to ensure that USB Controller is present at all stages
for DFU Boot):
https://gist.github.com/Siddharth-Vadapalli-at-TI/53ba02cb0ff4a09c47e920d08247065f
The above device-tree changes will be made to the Linux device-tree,
which shall ensure that the same shall be a part of U-Boot device-tree
eventually.

The USB DFU config fragments for AM62x have been used for enabling
USB DFU boot on AM62a as follows:
R5  => am62ax_evm_r5_defconfig + am62x_r5_usbdfu.config
A53 => am62ax_evm_a53_defconfig + am62x_a53_usbdfu.config

Logs validating USB DFU boot with this series:
https://gist.github.com/Siddharth-Vadapalli-at-TI/daa71da1b0e478a51afea42605fb2d2c

Link: https://lore.kernel.org/r/20241126120322.1760862-1-s-vadapalli@ti.com
2024-12-13 14:14:50 -06:00
..
adc adc: rockchip-saradc: Use vdd-microvolts prop as fallback 2024-10-26 10:46:48 +08:00
ata Merge patch series "Implement ACPI on aarch64" 2024-10-27 18:44:13 -06:00
axi
bios_emulator bios_emulator: add missing includes to debug.c 2024-11-16 20:54:16 -06:00
block block: make blk_create_device() static 2024-10-24 11:20:58 -06:00
bootcount drivers: bootcount: Add ZynqMP specific bootcount support 2024-11-15 14:32:47 +01:00
bus global: Rename SPL_ to XPL_ 2024-10-11 11:44:48 -06:00
button button: gpio: handle broken controller 2024-12-04 14:06:23 -06:00
cache driver: sifive ccache: enable TRUNKCLOCKGATE and REGIONCLOCKGATE 2024-11-06 18:56:51 +08:00
clk clk: Propagate clk_set_rate() if CLK_SET_PARENT_RATE present 2024-12-12 14:23:25 -06:00
core Merge patch series "led: update LED boot/activity to new property implementation" 2024-12-06 13:00:52 -06:00
cpu imx: Add iMX91 support 2024-12-07 09:07:04 -03:00
crypto drivers/crypto: aspeed: Add Caliptra ECDSA384 support 2024-10-21 17:52:52 -06:00
ddr ddr: imx: Add new rates for i.MX91 2024-12-07 09:07:04 -03:00
demo
dfu dfu: add scsi backend 2024-11-20 17:57:58 +01:00
dma dma: ti: k3-udma: Move DMA channel[0] allocation to probe and add udma_remove() 2024-10-17 18:21:19 -06:00
extcon
fastboot fastboot: properly handle unknown partition type 2024-11-19 15:10:56 +01:00
firmware global: Rename SPL_ to XPL_ 2024-10-11 11:44:48 -06:00
fpga drivers: Use CONFIG_XPL_BUILD instead of CONFIG_SPL_BUILD 2024-10-11 11:44:48 -06:00
fuzz
fwu-mdata
gpio gpio: imx_rgpio2p: Move 8ulp_data to data section 2024-12-07 09:07:03 -03:00
hwspinlock
i2c i2c: mxc_i2c: Convert to use livetree API for fdt access 2024-10-25 09:07:39 -03:00
input global: Rename SPL_TPL_ to PHASE_ 2024-10-11 11:44:48 -06:00
iommu Merge patch series "Fix device removal order for Apple dart iommu" 2024-11-24 15:41:32 -06:00
led led: update LED boot/activity to new property implementation 2024-12-06 13:00:41 -06:00
mailbox global: Rename SPL_ to XPL_ 2024-10-11 11:44:48 -06:00
memory memory: ti-aemif-cs: Compute timing configuration from DT parsing 2024-10-29 18:45:22 -06:00
mfd
misc Merge patch series "Add OPP_LOW support for J7200" 2024-12-04 14:30:25 -06:00
mmc mmc: msm_sdhci: enable vqmmc at probe if available 2024-11-20 17:57:57 +01:00
mtd Prepare v2025.01-rc4 2024-12-09 16:29:47 -06:00
mux Merge patch series "Tidy up use of 'SPL' and CONFIG_SPL_BUILD" 2024-10-11 12:23:25 -06:00
net Prepare v2025.01-rc4 2024-12-09 16:29:47 -06:00
nvme global: Rename SPL_ to XPL_ 2024-10-11 11:44:48 -06:00
pch
pci Merge patch series "Implement ACPI on aarch64" 2024-10-27 18:44:13 -06:00
pci_endpoint
phy phy: qcom: Add SM8150 to QMP UFS PHY driver 2024-11-20 17:57:58 +01:00
pinctrl Prepare v2025.01-rc4 2024-12-09 16:29:47 -06:00
power power: regulator: replace dev_dbg() by dev_err() in regulator_post_bind() 2024-12-05 07:31:31 +09:00
pwm pwm: imx: Don't drop the enable bit once set 2024-09-11 17:02:36 -03:00
qe
ram ram: k3-ddrss: drop debug() in timing-sensitive sequence 2024-12-06 16:37:39 -06:00
reboot-mode
remoteproc sandbox: efi_loader: Correct use of addresses as pointers 2024-12-02 16:34:30 -06:00
reset global: Rename SPL_TPL_ to PHASE_ 2024-10-11 11:44:48 -06:00
rng global: Rename SPL_TPL_ to PHASE_ 2024-10-11 11:44:48 -06:00
rtc rtc: CONFIGS_RTC_PL031 must depend on CONFIGS_DM_RTC 2024-12-06 17:47:23 -06:00
scsi scsi: fix disk capacity too small by one sector 2024-11-01 13:34:32 -06:00
serial Merge patch series "Implement ACPI on aarch64" 2024-10-27 18:44:13 -06:00
sm
smem
soc soc: qcom: rpmh-rsc: add back __tcs_set_trigger() for SM8550/SM8650 2024-09-06 10:47:46 +02:00
sound drivers: sound: Remove duplicate newlines 2024-07-22 10:53:06 -06:00
spi cadence_qspi: Refactor the flash reset functionality 2024-11-29 13:21:17 +01:00
spmi
sysinfo dm: sysinfo: Shorten the SYSINFO_ID prefix 2024-11-17 13:12:54 -06:00
sysreset global: Rename SPL_TPL_ to PHASE_ 2024-10-11 11:44:48 -06:00
tee
thermal drivers: thermal: Remove duplicate newlines 2024-07-22 10:53:06 -06:00
timer x86: Sync up tsc_timer with Linux 2024-10-18 14:10:21 -06:00
tpm global: Rename SPL_TPL_ to PHASE_ 2024-10-11 11:44:48 -06:00
ufs ufs: Add Support for Qualcomm UFS HC driver 2024-10-14 08:56:03 +02:00
usb Merge patch series "AM62A DWC3: Add support for USB DFU boot in OTG mode" 2024-12-13 14:14:50 -06:00
video drivers/video/vesa: use MTRRs only on x86 2024-11-04 16:41:38 -06:00
virtio virtio: blk: introduce virtio-block erase support 2024-10-18 14:10:21 -06:00
w1
w1-eeprom
watchdog wdt: imx8qxp: add option to control external PMIC wdt via IMX8 SCU 2024-11-25 23:07:37 -03:00
xen
Kconfig
Makefile global: Rename SPL_TPL_ to PHASE_ 2024-10-11 11:44:48 -06:00