[pvrusb2] WinTV HVR-1975 (with official drivers) failing to load firmware

isely at isely.net isely at isely.net
Sun Sep 18 11:22:03 CDT 2016


On Sun, 18 Sep 2016, Ian Goldberg wrote:

> On Sun, Sep 18, 2016 at 03:37:00AM +0000, Gary Buhrmaster wrote:
> > Lastly, the 1975 is more like two devices than one.
> > It has both the ATSC and DVB demods on board,
> > and likely (although I have no personal experience)
> > needs two sets of firmware blobs (one for each
> > demod)?
> 
> It does come with two firmware blobs:
> 
> 16382 Mar  2  2014 v4l-cx25840.fw
> 16384 Jan  5  2015 v4l-pvrusb2-160xxx-01.fw

There's one missing.

v4l-cx25840.fw is needed for the cx25840 chip (which handles analog 
demodulation).  Earlier pvrusb2 devices (very early - the model 29xxx 
series) had a different part which didn't need this firmware.  This 
firmware, btw, is not specific to the pvrusb2 driver.  Any other v4l 
device which uses this chip generally needs the same firmware.

v4l-pvrusb2-160xxx-01.fw is not a name that the "official" pvrusb2 
driver uses but it probably corresponds to the Cypress FX2 firmware 
needed in the HVR-1975 (this part is effectively the controller for 
everything else).  This firmware blob is very specific to the device in 
question - only the pvrusb2 driver will ever care about it.

To handle analog video (e.g. composite / s-video input or pre-digital 
TV) there is another chip present which has its own processor and 
performs the mpeg2 encoding step.  For digital video this part should 
become a pass-through (memory is foggy there).  It has a required 
firmware blob, that without it, the part will not work.

> 
> In kern.log, I do see lines like this:
> 
> cx25840 7-0044: loaded v4l-cx25840.fw firmware (16382 bytes)

Right, that's a success message for v4l-cv25840.fw.

> 
> and lines like this:
> 
> pvrusb2: firmware2 upload transfer failure

And that's a failure loading the mpeg2 encoder chip's firmware.  However 
if the firmware blob were just not present in your system, there should 
have been a more specific message to that effect.  This sounds like the 
firmware was located & loaded but the part refused to start afterwards.  
That's a mystery.

Every pvrusb2-driven device has one of these encoders resident within 
it.  There are several different versions of the firmware floating 
around.  I have generally found through empirical experiment that it 
doesn't really matter which version gets used.  However with that said, 
I've obviously never had any experience with the HVR-1975, so maybe it 
needs a later version than what the pvrusb2 driver apparently is finding 
on your system.

> 
> but nothing specifically naming the file v4l-pvrusb2-160xxx-01.fw.

That firmware blob gets loaded very early.  The process is sort of like 
a bootstrap.  You see, the Cypress FX2 is the chip that communicates 
between the host (via USB) and all the parts in the device.  When the 
device powers up, the FX2 runs a much simpler "please boot me" image 
from internal ROM.  The pvrusb2 driver sees this and responds by feeding 
it that firmware.  After the firmware is loaded, the device reboots 
itself into the new image, which also has the effect of causing the 
pvrusb2 driver to restart as well (because from the pvrusb2 driver's 
viewpoint, the device disappeared and reappeared).  This is OK because 
the second time the pvrusb2 driver initializes, it discovers that the 
device doesn't need a firmware image (because it's already there) and so 
it just goes on with the rest of the startup.  So because of this, the 
firmware image technically loads "before" the pvrusb2 driver instance 
whose log messages you are seeing.  I don't recall if it printk's 
anything earlier, though I imagine it probably is and you likely didn't 
spot it.


> 
> [Note that I'm happy to help with some kernel hacking, if that's
> useful for debugging.]

I need to analyze that patch hvr-1975 patch.  That's going to take some 
time.  In the mean time, anyone that can help get its copyright status 
cleared up will of course clear the way for it to be permanently merged 
into the pvrusb2 driver, which in the end is really the right thing to 
be done.  If anyone is talking to Hauppauge, please ask them to contact 
me.  I've talked to them before, but the contact I used to work with 
there has long since moved on to greener pastures.

  -Mike

-- 

Mike Isely
isely @ isely (dot) net
PGP: 03 54 43 4D 75 E5 CC 92 71 16 01 E2 B5 F5 C1 E8


More information about the pvrusb2 mailing list