[PATCH] ARM: dts: bcm283x: Fix fifo size for EP 6,7

Stefan Wahren stefan.wahren at i2se.com
Wed Nov 22 06:14:40 PST 2017


Hi Minas,

> Stefan Wahren <stefan.wahren at i2se.com> hat am 22. November 2017 um 12:21 geschrieben:
> 
> 
> Hi Minas,
> 
> > Minas Harutyunyan <Minas.Harutyunyan at synopsys.com> hat am 21. November 2017 um 13:02 geschrieben:
> >
> > Hi Stefan,
> > 
> > We have prepared patch for this issue in July-August'17.
> > Find attached 2 patch files. Please apply patches and test. If issue 
> > gone, we will send these patches to LKML by regular flow.
> 
> thanks, but the first patch doesn't apply. My version see below, i hope i didn't break anything.
> 
> Unfortunately after applying both patches the issue still persists (EP 1-7 fifo size to 512) and the EP 1-7 TX total size increases from 3776 to 3792. I will follow my u-boot theory  ...

okay there is no influence of u-boot. If i boot directly from the RPi Bootloader it shows the same behavior.

I did the following test cases with enabled debug:
1. boot RPI Zero (OTG configured per DT) without anything connected to the OTG port
2. boot RPI Zero (OTG configured per DT) only a OTG cable connected to the OTG port

test case 1 (nothing connected, no issue):
dwc2 20980000.usb: mapped PA 20980000 to VA dc850000
dwc2 20980000.usb: registering common handler for irq33
dwc2 20980000.usb: Core Release: 2.80a (snpsid=4f54280a)
dwc2 20980000.usb: Forcing mode to host
dwc2 20980000.usb: NonPeriodic TXFIFO size: 32
dwc2 20980000.usb: RXFIFO size: 256
dwc2 20980000.usb: EPs: 8, dedicated fifos, 4080 entries in SPRAM
dwc2 20980000.usb: DCFG=0x00200000, DCTL=0x00000000, DIEPMSK=00000000
dwc2 20980000.usb: GAHBCFG=0x00000000, GHWCFG1=0x00000000
dwc2 20980000.usb: GRXFSIZ=0x00001000, GNPTXFSIZ=0x00201000
dwc2 20980000.usb: DPTx[1] FSize=512, StAddr=0x00001020
dwc2 20980000.usb: DPTx[2] FSize=512, StAddr=0x00001220
dwc2 20980000.usb: DPTx[3] FSize=512, StAddr=0x00001420
dwc2 20980000.usb: DPTx[4] FSize=512, StAddr=0x00001620
dwc2 20980000.usb: DPTx[5] FSize=512, StAddr=0x00001820
dwc2 20980000.usb: DPTx[6] FSize=768, StAddr=0x00001a20
dwc2 20980000.usb: DPTx[7] FSize=768, StAddr=0x00001d20
...
dwc2 20980000.usb: Core Global Registers
dwc2 20980000.usb: GOTGCTL        @0xDC850000 : 0x000D0000
dwc2 20980000.usb: GOTGINT        @0xDC850004 : 0x00000000
dwc2 20980000.usb: GAHBCFG        @0xDC850008 : 0x00000030
dwc2 20980000.usb: GUSBCFG        @0xDC85000C : 0x00001700
dwc2 20980000.usb: GRSTCTL        @0xDC850010 : 0x80000000
dwc2 20980000.usb: GINTSTS        @0xDC850014 : 0x04008C22
dwc2 20980000.usb: GINTMSK        @0xDC850018 : 0xD0000806
dwc2 20980000.usb: GRXSTSR        @0xDC85001C : 0xFADEA4E0
dwc2 20980000.usb: GRXFSIZ        @0xDC850024 : 0x00001000
dwc2 20980000.usb: GNPTXFSIZ      @0xDC850028 : 0x00201000
dwc2 20980000.usb: GNPTXSTS       @0xDC85002C : 0x00080020
dwc2 20980000.usb: GI2CCTL        @0xDC850030 : 0x00000000
dwc2 20980000.usb: GPVNDCTL       @0xDC850034 : 0x00000000
dwc2 20980000.usb: GGPIO  @0xDC850038 : 0x00000000
dwc2 20980000.usb: GUID   @0xDC85003C : 0x2708A000
dwc2 20980000.usb: GSNPSID        @0xDC850040 : 0x4F54280A
dwc2 20980000.usb: GHWCFG1        @0xDC850044 : 0x00000000
dwc2 20980000.usb: GHWCFG2        @0xDC850048 : 0x228DDD50
dwc2 20980000.usb: GHWCFG3        @0xDC85004C : 0x0FF000E8
dwc2 20980000.usb: GHWCFG4        @0xDC850050 : 0x1FF00020
dwc2 20980000.usb: GLPMCFG        @0xDC850054 : 0x75736230
dwc2 20980000.usb: GPWRDN         @0xDC850058 : 0x00000000
dwc2 20980000.usb: GDFIFOCFG      @0xDC85005C : 0x00000000
dwc2 20980000.usb: HPTXFSIZ       @0xDC850100 : 0x00000000
dwc2 20980000.usb: PCGCTL         @0xDC850E00 : 0x00000000
...
dwc2 20980000.usb: gintsts=04008c22  gintmsk=d0000806
dwc2 20980000.usb: Mode Mismatch Interrupt: currently in Device mode
dwc2 20980000.usb: USB SUSPEND
dwc2 20980000.usb: DSTS=0x3
dwc2 20980000.usb: DSTS.Suspend Status=1 HWCFG4.Power Optimize=0
dwc2 20980000.usb: dwc2_hsotg_irq: 04008420 00000000 (d0000806) retry 8

test case 2 (OTG cable connected, issue):
dwc2 20980000.usb: mapped PA 20980000 to VA dc850000
dwc2 20980000.usb: registering common handler for irq33
dwc2 20980000.usb: Core Release: 2.80a (snpsid=4f54280a)
dwc2 20980000.usb: Forcing mode to device
dwc2 20980000.usb: dwc2_check_param_tx_fifo_sizes: Invalid parameter g_tx_fifo_size[6]=768
dwc2 20980000.usb: dwc2_check_param_tx_fifo_sizes: Invalid parameter g_tx_fifo_size[7]=768
dwc2 20980000.usb: NonPeriodic TXFIFO size: 32
dwc2 20980000.usb: RXFIFO size: 256
dwc2 20980000.usb: EPs: 8, dedicated fifos, 4080 entries in SPRAM
dwc2 20980000.usb: DCFG=0x00000000, DCTL=0x00000000, DIEPMSK=00000000
dwc2 20980000.usb: GAHBCFG=0x00000000, GHWCFG1=0x00000000
dwc2 20980000.usb: GRXFSIZ=0x00001000, GNPTXFSIZ=0x01001000
dwc2 20980000.usb: DPTx[1] FSize=512, StAddr=0x00002000
dwc2 20980000.usb: DPTx[2] FSize=512, StAddr=0x00002000
dwc2 20980000.usb: DPTx[3] FSize=512, StAddr=0x00002000
dwc2 20980000.usb: DPTx[4] FSize=512, StAddr=0x00002000
dwc2 20980000.usb: DPTx[5] FSize=512, StAddr=0x00002000
dwc2 20980000.usb: DPTx[6] FSize=512, StAddr=0x00002000
dwc2 20980000.usb: DPTx[7] FSize=512, StAddr=0x00002000
...
dwc2 20980000.usb: Core Global Registers
dwc2 20980000.usb: GOTGCTL        @0xDC850000 : 0x001C0000
dwc2 20980000.usb: GOTGINT        @0xDC850004 : 0x00000000
dwc2 20980000.usb: GAHBCFG        @0xDC850008 : 0x00000030
dwc2 20980000.usb: GUSBCFG        @0xDC85000C : 0x00001700
dwc2 20980000.usb: GRSTCTL        @0xDC850010 : 0x80000000
dwc2 20980000.usb: GINTSTS        @0xDC850014 : 0x04000021
dwc2 20980000.usb: GINTMSK        @0xDC850018 : 0xF3000806
dwc2 20980000.usb: GRXSTSR        @0xDC85001C : 0x897ED705
dwc2 20980000.usb: GRXFSIZ        @0xDC850024 : 0x00000306
dwc2 20980000.usb: GNPTXFSIZ      @0xDC850028 : 0x01000306
dwc2 20980000.usb: GNPTXSTS       @0xDC85002C : 0x07080100
dwc2 20980000.usb: GI2CCTL        @0xDC850030 : 0x00000000
dwc2 20980000.usb: GPVNDCTL       @0xDC850034 : 0x00000000
dwc2 20980000.usb: GGPIO  @0xDC850038 : 0x00000000
dwc2 20980000.usb: GUID   @0xDC85003C : 0x2708A000
dwc2 20980000.usb: GSNPSID        @0xDC850040 : 0x4F54280A
dwc2 20980000.usb: GHWCFG1        @0xDC850044 : 0x00000000
dwc2 20980000.usb: GHWCFG2        @0xDC850048 : 0x228DDD50
dwc2 20980000.usb: GHWCFG3        @0xDC85004C : 0x0FF000E8
dwc2 20980000.usb: GHWCFG4        @0xDC850050 : 0x1FF00020
dwc2 20980000.usb: GLPMCFG        @0xDC850054 : 0x75736230
dwc2 20980000.usb: GPWRDN         @0xDC850058 : 0x00000000
dwc2 20980000.usb: GDFIFOCFG      @0xDC85005C : 0x00000000
dwc2 20980000.usb: HPTXFSIZ       @0xDC850100 : 0x02000406
dwc2 20980000.usb: PCGCTL         @0xDC850E00 : 0x00000000
...
dwc2 20980000.usb: gintsts=04000025  gintmsk=f3000806
dwc2 20980000.usb: ++OTG Interrupt gotgint=40000 [a_host]
dwc2 20980000.usb:  ++OTG Interrupt: A-Device Timeout Change++

Please tell me if you need more information?

Thanks
Stefan



More information about the linux-rpi-kernel mailing list