On Tue, Mar 10, 2009 at 9:25 PM, Mike Isely <[email protected]> wrote: > Those numbers should be somewhat north of 256000 each time; the firmware > loader must be having a serious problem reading the firmware image file. > That size is not known ahead of time by the driver. Rather, the pvrusb2 > driver is relying on the kernel's generic firmware loading mechanism > (which cooperates with userspace) to retrieve the firmware file and load > it into memory, whereupon the pvrusb2 driver spoonfeeds it into the > encoder's memory. The number to the left of the '/' is the number of > bytes it sent to the encoder while the number to the right of the '/' is > the file image size as reported by the kernel firmware loading module. > The fact that they equal each other means that the pvrusb2 driver is > doing its job - but it's clearly being handed garbage because the actual > file size is WAY larger than these values (and in any case it should be > consistent). > > There are other firmware images that the pvrusb2 driver loads, however > they are all far smaller than the thresholds here. For example the FX2 > firmware is only 8KB, and the cx25840 firmware is less than 16KB - so if > your system is having trouble reading large files then those cases > likely won't be affected. > > Obviously if less than 10% of the encoder's firmware code is actually > getting loaded, then there's no way it's going to work. You said it > started working after 45 seconds. That sounds to me like after dozens > of attempts it somehow managed to read the entire firmware image. > > I think you need to look at your beagleboard setup and ask yourself if > there's any way that file I/O on the system could be having problems. I > can see an NFS client mount with soft error behavior on a flakey network > connection doing this - but beyond that nothing comes to mind that > ultimately wouldn't relate to flakey disk hardware.
You are correct, the firmware file size is 376836 bytes. I've discovered that success is also very sporadic on this, I can let it sit for a half hour and not get anywhere, then try again later and it works after a minute or so. I think it's pretty clear that this has to do with something either on the beagleboard hardware or in the linux kernel or software somewhere. I have tried running the root filesystem from both an SD card and from the on-board NAND flash, but I get the same results. I don't seem to have any difficulties copying large (100+ MB) files to USB flash drives from the beagleboard, so I don't know why it could be having a problem with this 376K file. I think that there might be an older version of your driver in the kernel also, but I don't know how to go about updating it. What do you think is the most likely cause of these difficulties? Thanks for your help. _______________________________________________ pvrusb2 mailing list [email protected] http://www.isely.net/cgi-bin/mailman/listinfo/pvrusb2
