mbox series

[v2,0/5] usb: xhci: Add support for Renesas USB controllers

Message ID 20190621085913.8722-1-vkoul@kernel.org (mailing list archive)
Headers show
Series usb: xhci: Add support for Renesas USB controllers | expand

Message

Vinod Koul June 21, 2019, 8:59 a.m. UTC
This series add support for Renesas USB controllers uPD720201 and uPD720202.
These require firmware to be loaded and in case devices have ROM those can
also be programmed if empty. If ROM is programmed, it runs from ROM as well.

This includes two patches from Christian which supported these controllers
w/o ROM and later my patches for ROM support and multiple firmware versions.

Changes in v2:
  used macros for timeout count and delay
  removed renesas_fw_alive_check
  cleaned renesas_fw_callback
  removed recurion for renesas_fw_download
  added MODULE_FIRMWARE
  added comment for multiple fw order

Christian Lamparter (2):
  usb: xhci: add firmware loader for uPD720201 and uPD720202 w/o ROM
  usb: xhci: handle uPD720201 and uPD720202 w/o ROM

Vinod Koul (3):
  usb: xhci: Use register defined and field names
  usb: xhci: Add ROM loader for uPD720201
  usb: xhci: allow multiple firmware versions

 drivers/usb/host/xhci-pci.c | 942 ++++++++++++++++++++++++++++++++++++
 1 file changed, 942 insertions(+)

Comments

Christian Lamparter June 21, 2019, 7:41 p.m. UTC | #1
On Friday, June 21, 2019 10:59:08 AM CEST Vinod Koul wrote:
> This series add support for Renesas USB controllers uPD720201 and uPD720202.
> These require firmware to be loaded and in case devices have ROM those can
> also be programmed if empty. If ROM is programmed, it runs from ROM as well.
> 
> This includes two patches from Christian which supported these controllers
> w/o ROM and later my patches for ROM support and multiple firmware versions.
> 
> Changes in v2:
>   used macros for timeout count and delay
>   removed renesas_fw_alive_check
>   cleaned renesas_fw_callback
>   removed recurion for renesas_fw_download
>   added MODULE_FIRMWARE
>   added comment for multiple fw order
> 
> Christian Lamparter (2):
>   usb: xhci: add firmware loader for uPD720201 and uPD720202 w/o ROM
>   usb: xhci: handle uPD720201 and uPD720202 w/o ROM
> 
> Vinod Koul (3):
>   usb: xhci: Use register defined and field names
>   usb: xhci: Add ROM loader for uPD720201
>   usb: xhci: allow multiple firmware versions
> 
>  drivers/usb/host/xhci-pci.c | 942 ++++++++++++++++++++++++++++++++++++
>  1 file changed, 942 insertions(+)
> 

bootlog from a Netgear WNDR4700 with a 32GiB USB3 Stick attached to the 
Renesas uPD720202K8-711-BAA-A chip.

[   13.523094] xhci_hcd 0000:45:00.0: firmware size is not a multiple of 8.
[   13.868071] xhci_hcd 0000:45:00.0: xHCI Host Controller
[   13.873325] xhci_hcd 0000:45:00.0: new USB bus registered, assigned bus number 2
[   13.886296] xhci_hcd 0000:45:00.0: hcc params 0x014051cf hci version 0x100 quirks 0x0000000101000090
[   13.902719] usbcore: registered new interface driver usb-storage
[   13.909277] kmodloader: done loading kernel modules from /etc/modules-boot.d/*
[   13.917336] hub 2-0:1.0: USB hub found
[   13.921432] init: - preinit -
[   13.930356] hub 2-0:1.0: 2 ports detected
[   13.942869] xhci_hcd 0000:45:00.0: xHCI Host Controller
[   13.948122] xhci_hcd 0000:45:00.0: new USB bus registered, assigned bus number 3
[   13.955514] xhci_hcd 0000:45:00.0: Host supports USB 3.0  SuperSpeed
[   13.981227] usb usb3: We don't know the algorithms for LPM for this host, disabling LPM.
[   13.997141] hub 3-0:1.0: USB hub found
[   14.004375] hub 3-0:1.0: 2 ports detected
[   14.375644] usb-storage 1-1:1.0: USB Mass Storage device detected
[   14.382247] scsi host1: usb-storage 1-1:1.0
[   14.438959] usb 3-2: new SuperSpeed Gen 1 USB device number 2 using xhci_hcd
[   14.467746] usb-storage 3-2:1.0: USB Mass Storage device detected
[   14.474241] scsi host2: usb-storage 3-2:1.0
[   15.394562] scsi 1:0:0:0: Direct-Access     Generic  STORAGE DEVICE   9454 PQ: 0 ANSI: 0
[   15.405183] sd 1:0:0:0: [sda] Attached SCSI removable disk
[   15.522448] scsi 2:0:0:0: Direct-Access     SanDisk  Ultra            1.00 PQ: 0 ANSI: 6
[   15.531952] sd 2:0:0:0: [sdb] 60063744 512-byte logical blocks: (30.8 GB/28.6 GiB)
[   15.541007] sd 2:0:0:0: [sdb] Write Protect is off
[   15.546808] sd 2:0:0:0: [sdb] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[   15.574567]  sdb: sdb1
[   15.580581] sd 2:0:0:0: [sdb] Attached SCSI removable disk

This is working.

Tested-by: Christian Lamparter <chunkeey@gmail.com>
Vinod Koul June 23, 2019, 4:37 p.m. UTC | #2
On 21-06-19, 21:41, Christian Lamparter wrote:
> On Friday, June 21, 2019 10:59:08 AM CEST Vinod Koul wrote:
> > This series add support for Renesas USB controllers uPD720201 and uPD720202.
> > These require firmware to be loaded and in case devices have ROM those can
> > also be programmed if empty. If ROM is programmed, it runs from ROM as well.
> > 
> > This includes two patches from Christian which supported these controllers
> > w/o ROM and later my patches for ROM support and multiple firmware versions.
> > 
> > Changes in v2:
> >   used macros for timeout count and delay
> >   removed renesas_fw_alive_check
> >   cleaned renesas_fw_callback
> >   removed recurion for renesas_fw_download
> >   added MODULE_FIRMWARE
> >   added comment for multiple fw order
> > 
> > Christian Lamparter (2):
> >   usb: xhci: add firmware loader for uPD720201 and uPD720202 w/o ROM
> >   usb: xhci: handle uPD720201 and uPD720202 w/o ROM
> > 
> > Vinod Koul (3):
> >   usb: xhci: Use register defined and field names
> >   usb: xhci: Add ROM loader for uPD720201
> >   usb: xhci: allow multiple firmware versions
> > 
> >  drivers/usb/host/xhci-pci.c | 942 ++++++++++++++++++++++++++++++++++++
> >  1 file changed, 942 insertions(+)
> > 
> 
> bootlog from a Netgear WNDR4700 with a 32GiB USB3 Stick attached to the 
> Renesas uPD720202K8-711-BAA-A chip.
> 
> [   13.523094] xhci_hcd 0000:45:00.0: firmware size is not a multiple of 8.
> [   13.868071] xhci_hcd 0000:45:00.0: xHCI Host Controller
> [   13.873325] xhci_hcd 0000:45:00.0: new USB bus registered, assigned bus number 2
> [   13.886296] xhci_hcd 0000:45:00.0: hcc params 0x014051cf hci version 0x100 quirks 0x0000000101000090
> [   13.902719] usbcore: registered new interface driver usb-storage
> [   13.909277] kmodloader: done loading kernel modules from /etc/modules-boot.d/*
> [   13.917336] hub 2-0:1.0: USB hub found
> [   13.921432] init: - preinit -
> [   13.930356] hub 2-0:1.0: 2 ports detected
> [   13.942869] xhci_hcd 0000:45:00.0: xHCI Host Controller
> [   13.948122] xhci_hcd 0000:45:00.0: new USB bus registered, assigned bus number 3
> [   13.955514] xhci_hcd 0000:45:00.0: Host supports USB 3.0  SuperSpeed
> [   13.981227] usb usb3: We don't know the algorithms for LPM for this host, disabling LPM.
> [   13.997141] hub 3-0:1.0: USB hub found
> [   14.004375] hub 3-0:1.0: 2 ports detected
> [   14.375644] usb-storage 1-1:1.0: USB Mass Storage device detected
> [   14.382247] scsi host1: usb-storage 1-1:1.0
> [   14.438959] usb 3-2: new SuperSpeed Gen 1 USB device number 2 using xhci_hcd
> [   14.467746] usb-storage 3-2:1.0: USB Mass Storage device detected
> [   14.474241] scsi host2: usb-storage 3-2:1.0
> [   15.394562] scsi 1:0:0:0: Direct-Access     Generic  STORAGE DEVICE   9454 PQ: 0 ANSI: 0
> [   15.405183] sd 1:0:0:0: [sda] Attached SCSI removable disk
> [   15.522448] scsi 2:0:0:0: Direct-Access     SanDisk  Ultra            1.00 PQ: 0 ANSI: 6
> [   15.531952] sd 2:0:0:0: [sdb] 60063744 512-byte logical blocks: (30.8 GB/28.6 GiB)
> [   15.541007] sd 2:0:0:0: [sdb] Write Protect is off
> [   15.546808] sd 2:0:0:0: [sdb] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
> [   15.574567]  sdb: sdb1
> [   15.580581] sd 2:0:0:0: [sdb] Attached SCSI removable disk
> 
> This is working.
> 
> Tested-by: Christian Lamparter <chunkeey@gmail.com>

Thanks for the verification Christian.

Regards