[PATCH] staging: dwc2: set up all module params

Stephen Warren swarren at wwwdotorg.org
Tue Nov 26 18:34:38 PST 2013


(trimming out the devicetree list and maintainers for this discussion)

On 11/26/2013 12:52 PM, Paul Zimmerman wrote:
>> From: Stephen Warren [mailto:swarren at wwwdotorg.org]
>> Sent: Tuesday, November 26, 2013 11:43 AM
>>
>> On 11/26/2013 12:27 PM, Paul Zimmerman wrote:
>>>> From: Stephen Warren [mailto:swarren at wwwdotorg.org]
>>>> Sent: Monday, November 25, 2013 9:03 PM
>>>>
>>>> The DWC2 USB controller in the BCM2835 (Raspberry Pi) needs some non-
>>>> default parameters. Select these based on the compatible value from the
>>>> DT node. For all other HW, fall back to the default parameters currently
>>>> in use.
>>>>
>>>> The values in params_bcm2835[] were posted to the mailing list by Paul
>>>> quite some time ago. I made a couple of minor modifications since then;
>>>> to set ahbcfg instead of ahb_single, and to set uframe_sched.
>>>
>>> Hi Stephen,
>>>
>>> I don't see any code in this patch that is setting uframe_sched?
>>
>> Hmm, that's true. What value should it be set to for the BCM2835, do you
>> know? I obviously have it set to 0, which seems to work out OK...
> 
> It definitely should be enabled for the Pi, so set it to 1.

Hmm. I should have tested that patch better before I sent it...

With .uframe_sched=1, my model B's built-in Ethernet chip works fine.
I've passed many MB of data through it without issue, including pings, a
kernel source download, and package updates.

However, I just enabled .uframe_sched=1 on my model A, which has a USB
hub and USB wireless dongle attached. Now USB enumeration doesn't work,
and booting the kernel is extremely slow, with lots of USB-related
messages. I've run that board for a few days straight without issue,
with .uframe_sched=0 and periodic network use.

Does this imply that .uframe_sched=1 isn't correct for the Pi, or that
the code that flag enables has issues?

FWIW, the problematic kernel log is below. Unfortunately, I can't debug
this much since that Pi is deployed "in production" in my daughter's
room, and she's (hopefully...) asleep. I'll also be away starting
tomorrow morning until Mon evening.

> [    1.907615] dwc2 20980000.usb: DWC OTG Controller
> [    1.915043] dwc2 20980000.usb: new USB bus registered, assigned bus number 1
> [    1.924766] dwc2 20980000.usb: irq 33, io mem 0x00000000
> [    1.932906] usb usb1: default language 0x0409
> [    1.939969] usb usb1: udev 1, busnum 1, minor = 0
> [    1.947325] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
> [    1.956906] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
> [    1.966981] usb usb1: Product: DWC OTG Controller
> [    1.974570] usb usb1: Manufacturer: Linux 3.13.0-rc1-next-20131125+ dwc2_hsotg
> [    1.984841] usb usb1: SerialNumber: 20980000.usb
> [    1.993202] usb usb1: usb_probe_device
> [    2.000066] usb usb1: configuration #1 chosen from 1 choice
> [    2.008968] usb usb1: adding 1-0:1.0 (config #1, interface 0)
> [    2.018227] hub 1-0:1.0: usb_probe_interface
> [    2.025763] hub 1-0:1.0: usb_probe_interface - got id
> [    2.033990] hub 1-0:1.0: USB hub found
> [    2.040891] hub 1-0:1.0: 1 port detected
> [    2.047796] hub 1-0:1.0: standalone hub
> [    2.054580] hub 1-0:1.0: ganged power switching
> [    2.061983] hub 1-0:1.0: individual port over-current protection
> [    2.070833] hub 1-0:1.0: Single TT
> [    2.076944] hub 1-0:1.0: TT requires at most 8 FS bit times (666 ns)
> [    2.086102] hub 1-0:1.0: power on to power good time: 2ms
> [    2.094549] hub 1-0:1.0: local power source is good
> [    2.102344] hub 1-0:1.0: enabling power on all ports
> [    2.112008] tsl2563 1-0039: model 5, rev. 0
> [    2.121210] oprofile: no performance counters
> [    2.128318] oprofile: using timer interrupt.
> [    2.135673] TCP: cubic registered
> [    2.142836] NET: Registered protocol family 10
> [    2.151272] sit: IPv6 over IPv4 tunneling driver
> [    2.159514] NET: Registered protocol family 17
> [    2.180761] kjournald starting.  Commit interval 5 seconds
> [    2.198444] EXT3-fs (mmcblk0p2): using internal journal
> [    2.206507] hub 1-0:1.0: port 1: status 0101 change 0001
> [    2.214470] EXT3-fs (mmcblk0p2): mounted filesystem with ordered data mode
> [    2.224234] VFS: Mounted root (ext3 filesystem) on device 179:2.
> [    2.235386] devtmpfs: mounted
> [    2.242299] Freeing unused kernel memory: 364K (c062b000 - c0686000)
> [    2.320341] hub 1-0:1.0: state 7 ports 1 chg 0002 evt 0000
> [    2.329613] hub 1-0:1.0: port 1, status 0101, change 0000, 12 Mb/s
> [    2.530412] usb 1-1: new high-speed USB device number 2 using dwc2
> [    2.751660] usb 1-1: default language 0x0409
> [    2.765327] usb 1-1: udev 2, busnum 1, minor = 1
> [    2.773274] usb 1-1: New USB device found, idVendor=05e3, idProduct=0608
> [    2.783242] usb 1-1: New USB device strings: Mfr=0, Product=1, SerialNumber=0
> [    2.793644] usb 1-1: Product: USB2.0 Hub
> [    2.809964] usb 1-1: usb_probe_device
> [    2.817287] usb 1-1: configuration #1 chosen from 1 choice
> [    2.830629] usb 1-1: adding 1-1:1.0 (config #1, interface 0)
> [    2.839847] hub 1-1:1.0: usb_probe_interface
> [    2.847447] hub 1-1:1.0: usb_probe_interface - got id
> [    2.855751] hub 1-1:1.0: USB hub found
> [    2.869581] hub 1-1:1.0: 4 ports detected
> [    2.881180] hub 1-1:1.0: standalone hub
> [    2.888190] hub 1-1:1.0: individual port power switching
> [    2.896619] hub 1-1:1.0: individual port over-current protection
> [    2.905707] hub 1-1:1.0: Single TT
> [    2.912126] hub 1-1:1.0: TT requires at most 32 FS bit times (2664 ns)
> [    2.921702] hub 1-1:1.0: Port indicators are supported
> [    2.929775] hub 1-1:1.0: power on to power good time: 100ms
> [    3.007154] hub 1-1:1.0: local power source is good
> [    3.024584] hub 1-1:1.0: enabling power on all ports
> [    3.042751] hub 1-0:1.0: state 7 ports 1 chg 0000 evt 0002
> [    3.063948] hub 1-0:1.0: port 1 enable change, status 00000503
> [    3.144448] hub 1-1:1.0: port 3: status 0101 change 0001
> [    3.250480] hub 1-1:1.0: state 7 ports 4 chg 0008 evt 0000
> [    3.267967] hub 1-1:1.0: port 3, status 0101, change 0000, 12 Mb/s
> [    3.360727] usb 1-1.3: new high-speed USB device number 3 using dwc2
> [    3.911643] udevd[153]: starting version 175
> [    3.932030] random: nonblocking pool is initialized
> [    8.409157] usb 1-1.3: khubd timed out on ep0in len=0/64
> [   13.490307] usb 1-1.3: khubd timed out on ep0in len=0/64
> [   18.490307] usb 1-1.3: khubd timed out on ep0in len=0/64
> [   18.570623] usb 1-1.3: device descriptor read/64, error -110
> [   23.680299] usb 1-1.3: khubd timed out on ep0in len=0/64
> [   28.680298] usb 1-1.3: khubd timed out on ep0in len=0/64
> [   33.680302] usb 1-1.3: khubd timed out on ep0in len=0/64
> [   33.760573] usb 1-1.3: device descriptor read/64, error -110
> [   33.957649] usb 1-1.3: new high-speed USB device number 4 using dwc2
> [   38.970299] usb 1-1.3: khubd timed out on ep0in len=0/64
> [   43.970297] usb 1-1.3: khubd timed out on ep0in len=0/64
> [   48.970309] usb 1-1.3: khubd timed out on ep0in len=0/64
> [   49.050528] usb 1-1.3: device descriptor read/64, error -110
> [   54.160295] usb 1-1.3: khubd timed out on ep0in len=0/64
> [   59.160304] usb 1-1.3: khubd timed out on ep0in len=0/64
> [   64.160329] usb 1-1.3: khubd timed out on ep0in len=0/64
> [   64.240595] usb 1-1.3: device descriptor read/64, error -110
> [   64.430619] usb 1-1.3: new high-speed USB device number 5 using dwc2
> [   69.430295] usb 1-1.3: khubd timed out on ep0out len=0/0
> [   74.640290] usb 1-1.3: khubd timed out on ep0out len=0/0
> [   74.850246] usb 1-1.3: device not accepting address 5, error -110
> [   74.930547] usb 1-1.3: new high-speed USB device number 6 using dwc2
> [   79.930327] usb 1-1.3: khubd timed out on ep0out len=0/0
> [   85.140296] usb 1-1.3: khubd timed out on ep0out len=0/0
> [   85.350240] usb 1-1.3: device not accepting address 6, error -110
> [   85.360128] hub 1-1:1.0: unable to enumerate USB device on port 3
> [   85.369117] hub 1-1:1.0: state 7 ports 4 chg 0000 evt 0008
> [   88.556896] EXT3-fs (mmcblk0p2): using internal journal
> [   94.693733] FAT-fs (mmcblk0p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
> [  103.858645] Adding 102396k swap on /var/swap.  Priority:-1 extents:27 across:478692k SS




More information about the linux-rpi-kernel mailing list