[PATCH v1 0/6] Enable fastboot support for IPQ9574 based boards

Varadarajan Narayanan quic_varada at quicinc.com
Wed Jul 16 06:57:06 CEST 2025


On Tue, Jul 15, 2025 at 02:30:09PM +0200, Casey Connolly wrote:
> Hi Varadarajan,
>
> On 7/15/25 12:15, Varadarajan Narayanan wrote:
> > This series enables MMC based fastboot flashing for IPQ9574 boards.
> > For this the following are added/enabled
> > 	* USB2 & USB3 phys support
> > 	* USB Gadget support, Fastboot-MMC related configs
> > 	* Flashing related documentation
>
> This is awesome! Glad to see you have the superspeed phy working. I'm a bit
> confused though since the of_fixup code in mach-snapdragon configures all
> the usb controllers for high speed only and removes the reference to the
> superspeed phy, is there some missing commit to adjust this?

CONFIG_EVENT is not defined in ipq defconfig. Hence of_live_build() doesn't
notify the EVT_OF_LIVE_BUILT event and qcom_of_fixup_nodes -> fixup_usb_nodes
is not called.

	=> bdinfo
	. . .
	fdt_blob    = 0x000000006fe3b5e0
	. . .

	=> fdt addr 0x6fe3b5e0
	Working FDT set to 6fe3b5e0

	=> fdt print /soc at 0/usb at 8af8800
	usb at 8af8800 {
		compatible = "qcom,ipq9574-dwc3", "qcom,dwc3";
		reg = <0x08af8800 0x00000400>;
		#address-cells = <0x00000001>;
		#size-cells = <0x00000001>;
		ranges;
		clocks = <0x0000000c 0x0000005c 0x0000000c 0x0000005b 0x0000000c 0x0000005d 0x0000000c 0x000000d1 0x0000000c 0x00000060>;
		clock-names = "cfg_noc", "core", "iface", "sleep", "mock_utmi";
		assigned-clocks = <0x0000000c 0x0000005b 0x0000000c 0x00000060>;
		assigned-clock-rates = <0x0bebc200 0x016e3600>;
		interrupts-extended = <0x00000001 0x00000000 0x00000086 0x00000004>;
		interrupt-names = "pwr_event";
		resets = <0x0000000c 0x0000002c>;
		status = "okay";
		usb at 8a00000 {
			compatible = "snps,dwc3";
			reg = <0x08a00000 0x0000cd00>;
			clocks = <0x0000000c 0x00000060>;
			clock-names = "ref";
			interrupts = <0x00000000 0x0000008c 0x00000004>;
			phys = <0x0000001d 0x0000001e>;
			phy-names = "usb2-phy", "usb3-phy";
			tx-fifo-resize;
			snps,is-utmi-l1-suspend;
			snps,hird-threshold = [00];
			snps,dis_u2_susphy_quirk;
			snps,dis_u3_susphy_quirk;
			dr_mode = "peripheral";
		};
	};

Initially, I manually overrode the 'phys' and 'phy-names' to just have the usb2
phy and it didn't seem to work. Only after bringing up the USB3 phy did it work.
Not sure what the relation is between the two.

Thanks
Varada


More information about the U-Boot mailing list