linux-media.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 3/3] Firmware for AF9035/AF9033 driver
@ 2012-02-22 22:22 Hans-Frieder Vogt
  2012-02-23  9:20 ` Oliver Schinagl
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Hans-Frieder Vogt @ 2012-02-22 22:22 UTC (permalink / raw)
  To: linux-media

Firmware for the AF9035/AF9033 driver.

irmware format for af903x driver:
copied from it9135-driver by Jason Dong (C) 2011 ITE Technologies, INC.

00000000: 8 chars "AF9035BX"    Identifier of firmware
00000008: 4 bytes LE length of firmware following this:
                32 + 4 + 4 + 4 + 4 + 4 + Firmware_CODELENGTH +
                Firmware_SEGMENTLENGTH * Firmware_PARTITIONLENGTH * 5 +
                5 + 2 + Firmware_scriptSets[0] * 5;
0000000C: 32 chars firmware release version
0000002C: 4 bytes BE link version
00000030: 4 bytes BE ofdm version
00000034: 4 bytes LE firmware code length (Firmware_CODELENGTH)
00000038: 1 bytes number of firmware segments (Firmware_SEGMENTLENGTH)
00000039: 3 bytes filler (0)
0000003C: 1 bytes number of firmware partitions (Firmware_PARTITIONLENGTH)
0000003D: 3 bytes filler (0)
00000040: Firmware_CODELENGTH bytes
0000abcd: description of firmware segments, for each segment in every 
partition:
        1 byte segment type (0: download firmware, 1: copy firmware, else: 
direct write firmware)
        4 bytes LE segment length
0000bcde: 1 byte Firmware_SEGMENTLENGTH check
0000bcdf: 1 byte Firmware_PARTITIONLENGTH check
0000bce0: 3 bytes filler (0)
0000bce3: 2 bytes LE number of firmware (demodulator) scripts
0000bce5: list of firmware scripts, for each entry:
        4 bytes LE address
        1 byte value

Signed-off-by: Hans-Frieder Vogt <hfvogt@gmx.net>

http://home.arcor.de/hfvogt/af903x/dvb-usb-af9035-03.fw => for Terratec T5 
Ver. 2 / T6
http://home.arcor.de/hfvogt/af903x/dvb-usb-af9035-04.fw => for Avermedia A867

Hans-Frieder Vogt                       e-mail: hfvogt <at> gmx .dot. net

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 3/3] Firmware for AF9035/AF9033 driver
  2012-02-22 22:22 [PATCH 3/3] Firmware for AF9035/AF9033 driver Hans-Frieder Vogt
@ 2012-02-23  9:20 ` Oliver Schinagl
  2012-02-27  0:33 ` Daniel Glöckner
  2012-03-20  0:32 ` Mauro Carvalho Chehab
  2 siblings, 0 replies; 5+ messages in thread
From: Oliver Schinagl @ 2012-02-23  9:20 UTC (permalink / raw)
  To: Hans-Frieder Vogt; +Cc: linux-media

Hi Hans,

I'm supprised the AF9035/AF9033 driver requires a firmware. The Asus 
U3100 Mini plus doesn't require a 'firmware' really. The firmware that 
is loaded, only contains an IR mapping table.

Oliver

On 22-02-12 23:22, Hans-Frieder Vogt wrote:
> Firmware for the AF9035/AF9033 driver.
>
> irmware format for af903x driver:
> copied from it9135-driver by Jason Dong (C) 2011 ITE Technologies, INC.
>
> 00000000: 8 chars "AF9035BX"    Identifier of firmware
> 00000008: 4 bytes LE length of firmware following this:
>                  32 + 4 + 4 + 4 + 4 + 4 + Firmware_CODELENGTH +
>                  Firmware_SEGMENTLENGTH * Firmware_PARTITIONLENGTH * 5 +
>                  5 + 2 + Firmware_scriptSets[0] * 5;
> 0000000C: 32 chars firmware release version
> 0000002C: 4 bytes BE link version
> 00000030: 4 bytes BE ofdm version
> 00000034: 4 bytes LE firmware code length (Firmware_CODELENGTH)
> 00000038: 1 bytes number of firmware segments (Firmware_SEGMENTLENGTH)
> 00000039: 3 bytes filler (0)
> 0000003C: 1 bytes number of firmware partitions (Firmware_PARTITIONLENGTH)
> 0000003D: 3 bytes filler (0)
> 00000040: Firmware_CODELENGTH bytes
> 0000abcd: description of firmware segments, for each segment in every
> partition:
>          1 byte segment type (0: download firmware, 1: copy firmware, else:
> direct write firmware)
>          4 bytes LE segment length
> 0000bcde: 1 byte Firmware_SEGMENTLENGTH check
> 0000bcdf: 1 byte Firmware_PARTITIONLENGTH check
> 0000bce0: 3 bytes filler (0)
> 0000bce3: 2 bytes LE number of firmware (demodulator) scripts
> 0000bce5: list of firmware scripts, for each entry:
>          4 bytes LE address
>          1 byte value
>
> Signed-off-by: Hans-Frieder Vogt<hfvogt@gmx.net>
>
> http://home.arcor.de/hfvogt/af903x/dvb-usb-af9035-03.fw =>  for Terratec T5
> Ver. 2 / T6
> http://home.arcor.de/hfvogt/af903x/dvb-usb-af9035-04.fw =>  for Avermedia A867
>
> Hans-Frieder Vogt                       e-mail: hfvogt<at>  gmx .dot. net
> --
> To unsubscribe from this list: send the line "unsubscribe linux-media" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 3/3] Firmware for AF9035/AF9033 driver
  2012-02-22 22:22 [PATCH 3/3] Firmware for AF9035/AF9033 driver Hans-Frieder Vogt
  2012-02-23  9:20 ` Oliver Schinagl
@ 2012-02-27  0:33 ` Daniel Glöckner
  2012-02-27 22:35   ` Hans-Frieder Vogt
  2012-03-20  0:32 ` Mauro Carvalho Chehab
  2 siblings, 1 reply; 5+ messages in thread
From: Daniel Glöckner @ 2012-02-27  0:33 UTC (permalink / raw)
  To: Hans-Frieder Vogt; +Cc: linux-media

On Wed, Feb 22, 2012 at 11:22:02PM +0100, Hans-Frieder Vogt wrote:
> 00000040: Firmware_CODELENGTH bytes

Some time ago I analyzed the firmware of the AF9035.
The firmware download command inside the on-chip ROM expects chunks
with a 7 byte header:

Byte 0: MCS 51 core
	There are two inside the AF9035 (1=Link and 2=OFDM) with
	separate address spaces
Byte 1-2: Big endian destination address
Byte 3-4: Big endian number of data bytes following the header
Byte 5-6: Big endian header checksum, apparently ignored by the chip
	Calculated as ~(h[0]*256+h[1]+h[2]*256+h[3]+h[4]*256)

This might help locate the firmware inside the Windows drivers.
The Windows drivers often contain two copies of the same firmware.

  Daniel

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 3/3] Firmware for AF9035/AF9033 driver
  2012-02-27  0:33 ` Daniel Glöckner
@ 2012-02-27 22:35   ` Hans-Frieder Vogt
  0 siblings, 0 replies; 5+ messages in thread
From: Hans-Frieder Vogt @ 2012-02-27 22:35 UTC (permalink / raw)
  To: Daniel Glöckner; +Cc: linux-media

Am Montag, 27. Februar 2012 schrieb Daniel Glöckner:
> On Wed, Feb 22, 2012 at 11:22:02PM +0100, Hans-Frieder Vogt wrote:
> > 00000040: Firmware_CODELENGTH bytes
> 
> Some time ago I analyzed the firmware of the AF9035.
> The firmware download command inside the on-chip ROM expects chunks
> with a 7 byte header:
> 
> Byte 0: MCS 51 core
> 	There are two inside the AF9035 (1=Link and 2=OFDM) with
> 	separate address spaces
> Byte 1-2: Big endian destination address
> Byte 3-4: Big endian number of data bytes following the header
> Byte 5-6: Big endian header checksum, apparently ignored by the chip
> 	Calculated as ~(h[0]*256+h[1]+h[2]*256+h[3]+h[4]*256)
> 
> This might help locate the firmware inside the Windows drivers.
> The Windows drivers often contain two copies of the same firmware.
> 
>   Daniel

Daniel,

impressive!!!

Hans-Frieder Vogt                       e-mail: hfvogt <at> gmx .dot. net

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 3/3] Firmware for AF9035/AF9033 driver
  2012-02-22 22:22 [PATCH 3/3] Firmware for AF9035/AF9033 driver Hans-Frieder Vogt
  2012-02-23  9:20 ` Oliver Schinagl
  2012-02-27  0:33 ` Daniel Glöckner
@ 2012-03-20  0:32 ` Mauro Carvalho Chehab
  2 siblings, 0 replies; 5+ messages in thread
From: Mauro Carvalho Chehab @ 2012-03-20  0:32 UTC (permalink / raw)
  To: Hans-Frieder Vogt; +Cc: linux-media

Em 22-02-2012 20:22, Hans-Frieder Vogt escreveu:
> Firmware for the AF9035/AF9033 driver.
> 
> irmware format for af903x driver:
> copied from it9135-driver by Jason Dong (C) 2011 ITE Technologies, INC.
> 
> 00000000: 8 chars "AF9035BX"    Identifier of firmware
> 00000008: 4 bytes LE length of firmware following this:
>                 32 + 4 + 4 + 4 + 4 + 4 + Firmware_CODELENGTH +
>                 Firmware_SEGMENTLENGTH * Firmware_PARTITIONLENGTH * 5 +
>                 5 + 2 + Firmware_scriptSets[0] * 5;
> 0000000C: 32 chars firmware release version
> 0000002C: 4 bytes BE link version
> 00000030: 4 bytes BE ofdm version
> 00000034: 4 bytes LE firmware code length (Firmware_CODELENGTH)
> 00000038: 1 bytes number of firmware segments (Firmware_SEGMENTLENGTH)
> 00000039: 3 bytes filler (0)
> 0000003C: 1 bytes number of firmware partitions (Firmware_PARTITIONLENGTH)
> 0000003D: 3 bytes filler (0)
> 00000040: Firmware_CODELENGTH bytes
> 0000abcd: description of firmware segments, for each segment in every 
> partition:
>         1 byte segment type (0: download firmware, 1: copy firmware, else: 
> direct write firmware)
>         4 bytes LE segment length
> 0000bcde: 1 byte Firmware_SEGMENTLENGTH check
> 0000bcdf: 1 byte Firmware_PARTITIONLENGTH check
> 0000bce0: 3 bytes filler (0)
> 0000bce3: 2 bytes LE number of firmware (demodulator) scripts
> 0000bce5: list of firmware scripts, for each entry:
>         4 bytes LE address
>         1 byte value
> 
> Signed-off-by: Hans-Frieder Vogt <hfvogt@gmx.net>
> 
> http://home.arcor.de/hfvogt/af903x/dvb-usb-af9035-03.fw => for Terratec T5 
> Ver. 2 / T6
> http://home.arcor.de/hfvogt/af903x/dvb-usb-af9035-04.fw => for Avermedia A867

Firmware patches should be against the linux-firmware tree [1].

[1] http://git.kernel.org/?p=linux/kernel/git/dwmw2/linux-firmware.git;a=summary

We need a licensing text signed by the board or chipset manufacturer, in order
to be able to add it there. If you can't get it, then the alternative is to change
the Documentation/dvb/get_dvb_firmware script to get it from somewhere (although
this is a bad option, as the firmware won't be distributed together with the Linux
distributions).

Regards,
Mauro

> 
> Hans-Frieder Vogt                       e-mail: hfvogt <at> gmx .dot. net
> --
> To unsubscribe from this list: send the line "unsubscribe linux-media" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2012-03-20  0:33 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-02-22 22:22 [PATCH 3/3] Firmware for AF9035/AF9033 driver Hans-Frieder Vogt
2012-02-23  9:20 ` Oliver Schinagl
2012-02-27  0:33 ` Daniel Glöckner
2012-02-27 22:35   ` Hans-Frieder Vogt
2012-03-20  0:32 ` Mauro Carvalho Chehab

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).