[PATCH v1 0/6] Enable fastboot support for IPQ9574 based boards
Casey Connolly
casey.connolly at linaro.org
Thu Jul 17 15:01:04 CEST 2025
On 16/07/2025 06:57, Varadarajan Narayanan wrote:
> 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.
ohh I see, hmm
>
> => bdinfo
> . . .
> fdt_blob = 0x000000006fe3b5e0
> . . .
>
> => fdt addr 0x6fe3b5e0
> Working FDT set to 6fe3b5e0
>
> => fdt print /soc at 0/usb at 8af8800
Just fyi, the fdt command won't show changes to the live tree, it does
direct FDT parsing whereas the live-tree is an internal representation
in U-Boot (which is what makes it faster to access and modify).
> 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.
Hmm, you don't even get high speed USB? probably an issue with clocks then.
>
> Thanks
> Varada
--
// Casey (she/her)
More information about the U-Boot
mailing list