1 2 3 Previous Next 87 Replies Latest reply: Aug 27, 2012 6:02 AM by jamodio RSS

USB discussions getting a bit heated

Level 15

On the other forum, discussions of USB and networking problems have been

getting a bit heated recently, with one user, Sulge, banned yesterday by abishur

for a 1-week cooling off period.  Maybe we will see him here soon.

 

http://www.raspberrypi.org/phpBB3/viewtopic.php?f=28&t=12097&start=177

http://www.raspberrypi.org/phpBB3/viewtopic.php?f=24&t=14151

http://www.raspberrypi.org/phpBB3/viewtopic.php?f=28&t=5249

 

Some of the USB issues are being blamed on Linux latency, which

doesn't sound easy to fix.

  • 1. Re: USB discussions getting a bit heated
    John Beetem Level 15

    From what I've read, it seems that the fundamental problem is that the BCM2835 SoC has a bare-bones USB host controller which requres a lot of the ARM processor.  Such a USB host controller works fine in BCM2835 intended applications, such as Roku, but if you try to use the ARM11 as a high-performance GNU/Linux engine talking to dozens of USB devices you will run into limitations.  It also sounds like documentation for the SoC's USB host controller is not available and that the low-level "open source" software suffers from "security through obscure code".  If this is indeed the case, it will be hard to improve things.

     

    Please let me know if my impressions are incorrect.  I would be delighted to hear that open documentation for the USB host controller is available (link?) and that the low-level driver is perfectly understandable and well-documented (link?).

  • 2. Re: USB discussions getting a bit heated
    Level 15

    Apparently the documentation for the USB controller isn't even available

    to Broadcom, and they are apparently trying to figure out how it works by

    reading the code for the driver.

  • 3. Re: USB discussions getting a bit heated
    Level 15

    One possible problem is an interaction with something in the SD card code that uses a long timeout causing USB packets to be lost https://github.com/raspberrypi/linux/pull/72 but again, those fixes haven't been pulled yet, so even if that's the major fix very few people will be running it.

     

    Either way, the synopsis OTG controller seems to have a lot of problems, but also a lot of users.  There were some rumblings a while back that the mainline kernel folks were looking at writing a better driver. That'll take time though and would likely be written against whatever the then 'current' kernel is, not the already out of date 3.1.x. There's a lot of churn in mainline arm right now with devicetree and such like, so forward or back porting stuff really isn't simple..

  • 4. Re: USB discussions getting a bit heated
    Level 15

    they are apparently trying to figure out how it works by

    reading the code for the driver.

    Some people, outside the rpf, looked at doing that to get a working driver into the 3.5 porting effort. They gave up after a while, the code seems to be a steaming pile of.......

  • 5. Re: USB discussions getting a bit heated
    morgaine Level 15

    John Beetem wrote:

     

    From what I've read, it seems that the fundamental problem is that the BCM2835 SoC has a bare-bones USB host controller which requres a lot of the ARM processor.  Such a USB host controller works fine in BCM2835 intended applications, such as Roku, but if you try to use the ARM11 as a high-performance GNU/Linux engine talking to dozens of USB devices you will run into limitations.  It also sounds like documentation for the SoC's USB host controller is not available and that the low-level "open source" software suffers from "security through obscure code".  If this is indeed the case, it will be hard to improve things.

     

    This is EXACTLY the same conclusion that I have reached.

     

    The Pi is in reality not a general purpose computer.  It's half a computer, with the ARM being used to fill in the hardware gaps that let the SoC be designed at the lowest possible cost.  If you try to use the ARM at the same time for normal computing, you can kiss your SoC's correct functioning goodbye.

     

    It's this that is wreaking havoc when you attach a correctly-working self-powered hub with added devices downstream.  Linux accepts it, because it doesn't realize what the purpose of the ARM is within the BCM2835.  In reality it should say "Sorry Dave, I don't have the CPU headroom for that" and refuse to attach.

     

    Morgaine.

  • 6. Re: USB discussions getting a bit heated
    Level 15

    it should say "Sorry Dave, I don't have the CPU headroom for that" and refuse to attach.

    LOL...  but does sound work well enough for it to sing the song ?

     

  • 7. Re: USB discussions getting a bit heated
    e82492184 New Members

    Those threads are terrible They downplay most of the problems people have encountered and add confusion.

     

    But it's a timebomb waiting to go off...

    I guess user Kernel sums it up pretty nicely http://www.raspberrypi.org/phpBB3/viewtopic.php?f=28&t=12097&start=197

     

     

    Frankly even though the Foundation people are not making profit on Raspi, I think it doesn't make them any less responsible for the quality of the device they designed and have been (indirectly) selling.

     

    Regardless of the cause (software, power, design) of Pi's problems, they are frustrating to deal with and are likely to cause many to lose interest at some point (even children, or perhaps especially them).

     

  • 8. Re: USB discussions getting a bit heated
    vijay10jan Level 1

    Thanks ! this is very informatic.

  • 9. Re: USB discussions getting a bit heated
    Level 15

    Those threads are terrible They downplay most of the problems people have encountered and add confusion.

    Thing is, the issues are complex. A lot of the confusion is being caused by people who mostly don't have a grasp of either the hardware or software problems.  Lets face it, with a usb IP block that nobody seems to have much information about, we're all in the dark and what makes it tick may as well be black magic

     

    Still, at this point the Pi really is a development board - there's lots of development happening and various people working on fixing issues. Unfortunately due to all the hype there's lots of them landing in the hands of people who are used to a device that's been in development for years with budgets in the billions and expect everything to 'just work' instantly, instead they have a device that was designed to a strict budget with all the compromises that entails. This was bound to cause some friction.

     

    I suspect the RPF was very much unprepared for the amount of destructive stress testing a couple of hundred thousand users can do in such a short time with devices that were never thought of during the design.

  • 10. Re: USB discussions getting a bit heated
    morgaine Level 15

    selsinork wrote:

     

    I suspect the RPF was very much unprepared for the amount of destructive stress testing a couple of hundred thousand users can do in such a short time with devices that were never thought of during the design.

     

    I think everyone would agree that the Foundation was unprepared.  The Pi doesn't work properly even with very common devices and very unambitious setups that work on all other systems tested.

     

    It should be pointed out that this isn't a case of the community being over-demanding, and the complaints aren't coming from people intent on destructive stress testing.  They come from ordinary users who are expecting (shock horror!) that when they attach a common USB device and it is recognized by an available driver, that it should then work.

     

    Morgaine.

  • 11. Re: USB discussions getting a bit heated
    John Beetem Level 15

    Morgaine Dinova wrote:

     

    The Pi is in reality not a general purpose computer.  It's half a computer, with the ARM being used to fill in the hardware gaps that let the SoC be designed at the lowest possible cost.  If you try to use the ARM at the same time for normal computing, you can kiss your SoC's correct functioning goodbye.

    The BCM2835 is a powerful media processor with a cheap ARM11 hanging off the side as an I/O processor to take care of housekeeping tasks like USB.  We're allowed to use the housekeeping processor for pretty much anything we want, and it's a pretty nice little GNU/Linux processor.  It's sure a lot more powerful than the PDP-11/45 I first used for Unix   We have limited access to the media processor, i.e., we've been given a book of spells and we're allowed to invoke those spells but have no idea what magic makes the spells work.

     

    RasPi does meet its requirements for being a good platform for learning about programming.  Kudos.  RasPi is cheap enough that you can play without worrying about breaking the family PC, and it's a very responsive platform for compiling and running reasonably sized programs.  It can also be a nice little platform for some embedded projects, such as the Pi in the Sky.

     

    I like to compare RasPi to a supercomputer.  It has a powerful supercomputing engine, but we're only allowed free access to the I/O processor.  It's disappointing for people who see that RasPi could so easily be so much more if they would just release documentation, but sometimes life is like that.  There are plenty of alternatives for people who want a more open system.

  • 12. Re: USB discussions getting a bit heated
    morgaine Level 15

    John Beetem wrote:

     

    We're allowed to use the housekeeping processor for pretty much anything we want, and it's a pretty nice little GNU/Linux processor.

     

    We're allowed to use it, sure.  The trouble is that when we do start to use it, the SoC's housekeeping is compromised and perfectly normal computer operations (like receiving USB events) start failing.

     

    The ARM core is working perfectly, but that's not the whole computer.  Add in the I/O systems and it is no longer working perfectly.

  • 13. Re: USB discussions getting a bit heated
    e82492184 New Members

    John Beetem wrote:

    RasPi does meet its requirements for being a good platform for learning about programming.  Kudos.  RasPi is cheap enough that you can play without worrying about breaking the family PC, and it's a very responsive platform for compiling and running reasonably sized programs.  It can also be a nice little platform for some embedded projects, such as the Pi in the Sky.

    If everything worked as it should, it would be ideal for everything you mentioned. However if one can't rely on it to function reliably, then instead of worrying about breaking the PC, one has to worry about having the right setup to get the Pi to work.

     

    Morgaine wrote:

     

    It should be pointed out that this isn't a case of the community being over-demanding, and the complaints aren't coming from people intent on destructive stress testing.  They come from ordinary users who are expecting (shock horror!) that when they attach a common USB device and it is recognized by an available driver, that it should then work.

     

    +1

  • 14. Re: USB discussions getting a bit heated
    Level 15

    It should be pointed out that this isn't a case of the community being over-demanding, and the complaints aren't coming from people intent on destructive stress testing.  They come from ordinary users who are expecting (shock horror!) that when they attach a common USB device and it is recognized by an available driver, that it should then work.

    and as any decent engineer knows, best way to test your device is to put it into the hands of those ordinary users.. Agreed that they're not deliberately going to do destructive stress testing, but often that's the result as they'll think of things to do with it and ways to use it that you didn't think of and never designed it to cope with.  Most stuff indended for consumer hands would go through many iterations of that before a general release. The Pi didn't, it has some issues. Surprise !

     

    over-demanding ?  expecting random, even if common, untested devices to work ?  IMHO maybe some people are expecting too much, it's easy enough to find a common usb device where the manufacturer provides zero linux/mac support as he designed it for windows and there's either no community linux driver or a very poor one. Funnily enough those are usually usb wifi adaptors (or synopsis usb otg controllers)

     

    I think it would be interesting to see what would happen if all the Pi were recalled, to be replaced with an OlinuXino or Beagleboard. Would either of them fare differently in the hands of 300K+ ordinary users ?  I'm sure the issues would be different, but equally sure that someone would be complaining about something.

     

    Hopefully if there ever is a Pi-v2.0 some lessons will have been learned from this time round on all sides. Not holding my breath on that one

1 2 3 Previous Next