On 10/17/19 4:46 PM, JP wrote:
Hi there,
On 10/17/19 2:15 PM, Antti Palosaari wrote:
Hello,
On 10/17/19 12:08 PM, Sean Young wrote:
Hi Antti,
I have a Logilink VG0022A device which is an af9035.c type device (with
ITE 9xxx frontned). The probe of the si2146 tuner fails and returns
0xffs.
Now I would like to work on fixing this. Mauro suggested the firmware
might
be incorrect. Any tips on extracting the firmware? I can try and dump
usb traffic from Windows and see what firmware is being used there.
How did
you extract the firmware?
If the receiver has onboard firmware, isn't that the right one? Then the
windows
driver has no need to load one. Or am I missing the point here?
Actually I am not even 100% sure what are used chips of that device, but
I expect those are:
usb-interface: IT9303, needs firmware, cannot be loaded from the eeprom IIRC
demodulator: Si2168 (revision B or C?), chip has rom that contains
firmware, but usually it is replaced newer by downloading
tuner: Si2157 or same family, similar firmware solution than Si2168.
Si2157 I originally used didn't uploaded firmware update at all, later
there was added more and more Silabs tuner versions and firmware
downloading.
Si2168B could be started (and it worked at the time I tested) with
default rom firmware by using that kind of stub firmware:
$ hexdump -C dvb-demod-si2168-b40-01.fw
00000000 05 00 00 00 00 00 00 00 |........|
00000008
Not sure if that works any other than just Si2168B.
Any other suggestions for this device? You might be able to save me a
lot
of time since you have experience with these types of devices, I do not.
Extracting firmware is done almost always by following steps:
1) take sniffs from the some bus (usb/i2c)
2) identify firmware download section, detect it starting point and
ending point ~few first and last bytes
3) find that firmware binary located inside of binary driver
* grep, hexeditor, etc
* example LANG=C grep -obUaP "\x08\x05\x00" driver.sys
4) use dd command to copy firmware blob from binary driver to separate
file (you need to know firmware location and length inside binary)
It is also possible to dump firmware to file from bus sniffs too, but
it requires writing some simple script. Dumping it from the binary
driver is usually still most easiest way.
At some point I downloaded bunch of drivers to find out multiple
firmware versions for si2168 and made simple script to ease things.
Script is attached.
After all, I suspect root of issue may be still be buggy i2c...
Me too.
Jan Pieter.
It could be interesting to see from the sniffs what kind of firmwares
windows driver downloads to different chips AND if i2c communication is
working properly.
regards
Antti
--
http://palosaari.fi/