
Hi
-----Original Message----- From: Marek Vasut marex@denx.de Sent: Friday, 7 July, 2023 5:50 AM To: Lim, Jit Loon jit.loon.lim@intel.com; u-boot@lists.denx.de Cc: Jagan Teki jagan@amarulasolutions.com; Simon simon.k.r.goldschmidt@gmail.com; Chee, Tien Fong tien.fong.chee@intel.com; Hea, Kok Kiang kok.kiang.hea@intel.com; Lokanathan, Raaj raaj.lokanathan@intel.com; Maniyam, Dinesh dinesh.maniyam@intel.com; Ng, Boon Khai boon.khai.ng@intel.com; Yuslaimi, Alif Zakuan alif.zakuan.yuslaimi@intel.com; Chong, Teik Heng teik.heng.chong@intel.com; Zamri, Muhammad Hazim Izzat muhammad.hazim.izzat.zamri@intel.com; Tang, Sieu Mun sieu.mun.tang@intel.com; Bin Meng bmeng.cn@gmail.com; Michal Simek monstr@monstr.eu; Tom Rini trini@konsulko.com; Eugen Hristev eugen.hristev@microchip.com Subject: Re: [PATCH v1] HSD #18028953892: usb: xhci-dwc3: Fix USB3.1 controller register access in reset state
On 6/22/23 16:08, Lim, Jit Loon wrote:
-----Original Message----- From: Marek Vasut marex@denx.de Sent: Thursday, 22 June, 2023 5:35 PM To: Lim, Jit Loon jit.loon.lim@intel.com; u-boot@lists.denx.de Cc: Jagan Teki jagan@amarulasolutions.com; Simon simon.k.r.goldschmidt@gmail.com; Chee, Tien Fong tien.fong.chee@intel.com; Hea, Kok Kiang kok.kiang.hea@intel.com; Lokanathan, Raaj raaj.lokanathan@intel.com; Maniyam, Dinesh dinesh.maniyam@intel.com; Ng, Boon Khai
Yuslaimi, Alif Zakuan alif.zakuan.yuslaimi@intel.com; Chong, Teik Heng teik.heng.chong@intel.com; Zamri, Muhammad Hazim Izzat muhammad.hazim.izzat.zamri@intel.com; Tang, Sieu Mun sieu.mun.tang@intel.com; Bin Meng bmeng.cn@gmail.com; Michal Simek monstr@monstr.eu; Tom Rini trini@konsulko.com; Eugen Hristev eugen.hristev@microchip.com Subject: Re: [PATCH v1] HSD #18028953892: usb: xhci-dwc3: Fix USB3.1 controller register access in reset state
On 6/22/23 04:48, Lim, Jit Loon wrote:
-----Original Message----- From: Marek Vasut marex@denx.de Sent: Wednesday, 21 June, 2023 10:19 PM To: Lim, Jit Loon jit.loon.lim@intel.com; u-boot@lists.denx.de Cc: Jagan Teki jagan@amarulasolutions.com; Simon simon.k.r.goldschmidt@gmail.com; Chee, Tien Fong tien.fong.chee@intel.com; Hea, Kok Kiang kok.kiang.hea@intel.com; Lokanathan, Raaj raaj.lokanathan@intel.com; Maniyam, Dinesh dinesh.maniyam@intel.com; Ng, Boon Khai
Yuslaimi, Alif Zakuan alif.zakuan.yuslaimi@intel.com; Chong, Teik Heng teik.heng.chong@intel.com; Zamri, Muhammad Hazim Izzat muhammad.hazim.izzat.zamri@intel.com; Tang, Sieu Mun sieu.mun.tang@intel.com; Bin Meng bmeng.cn@gmail.com Subject: Re: [PATCH v1] HSD #18028953892: usb: xhci-dwc3: Fix USB3.1 controller register access in reset state
On 6/21/23 16:11, Jit Loon Lim wrote:
From: Teik Heng Chong teik.heng.chong@intel.com
The controller registers should not be accessed while the controller's vcc_reset_n is asserted.
Signed-off-by: Teik Heng Chong teik.heng.chong@intel.com
Is this patch ported from Linux or is this custom development ?
Is there a matching patch/fix in Linux already ?
In xhci_dwc3_probe(), the program sequence is vcc reset -> clk init -> phy setup -> xhci_register therefore, when xhci_dwc3_remove is called, the proper usb stop sequence should be xhci_register _> phy setup -> clk init -> vcc reset
if we look at linux driver https://elixir.bootlin.com/linux/latest/source/drivers/usb/dwc3/dwc3 -o f-simple.c#L33
dwc3_of_simple_probe: The sequence is reset -> clock __dwc3_of_simple_teardown: Then, clock -> reset
So based on the above, we have made changes and the uboot fix is now
aligned with linux driver.
Instead of adding random patches to the U-Boot dwc3 driver, please just synchronize the driver with Linux. You should be able to add the missing patches to the DWC3 driver from Linux since the last synchronization point, the process should be largely mechanical. Make sure to include commit ID of each Linux commit in the new matching U-
Boot patch.
It shouldn't be difficult, one approach I can think of is roughly this:
- figure out the original merge base from which the DWC3 driver was
imported to U-Boot
- in U-Boot, revert all dwc3 patches on top of that import patch
- pick all Linux kernel dwc3 patches from that merge base and apply
on top of this U-Boot with reverts
- Run rebase and drop the reverts, let git drop duplicate patches
We believed the previous reply from us is a bit confusing. There is no exact same function/file for U-Boot to use in Linux. What we are doing is, we are referring to Linux sequence.
Linux: (dwc3_of_simple_probe) https://elixir.bootlin.com/linux/latest/source/drivers/usb/dwc3/dwc3-o f-simple.c#L33 U-Boot: (xhci_dwc3_probe) https://elixir.bootlin.com/u-boot/latest/source/drivers/usb/host/xhci- dwc3.c#L159
Linux: (__dwc3_of_simple_teardown) https://elixir.bootlin.com/linux/latest/source/drivers/usb/dwc3/dwc3-o f-simple.c#L98 U-Boot: (xhci_dwc3_remove) https://elixir.bootlin.com/u-boot/latest/source/drivers/usb/host/xhci- dwc3.c#L227
So we believed that we can't directly pickup all Linux kernel dwc3 patches
and merge to U-Boot.
If you were to sync the driver from Linux to U-Boot, then the same sequence as Linux uses would be automatically used too, right ?
Sorry for the abysmal delay in my reply.
Are we saying that we shall port/use Linux driver in U-Boot and abandon the existing USB host driver in U-Boot?