1cb77f0d6SKamil Rytarowski#!/usr/bin/env perl 2*eee1cba5SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only 3d8e9230cSMauro Carvalho Chehab 432590819SMauro Carvalho Chehab# Copyright (c) Mauro Carvalho Chehab <mchehab@kernel.org> 5d8e9230cSMauro Carvalho Chehab# 6d8e9230cSMauro Carvalho Chehab# In order to use, you need to: 7d8e9230cSMauro Carvalho Chehab# 1) Download the windows driver with something like: 8d8e9230cSMauro Carvalho Chehab# Version 2.4 9d8e9230cSMauro Carvalho Chehab# wget http://www.twinhan.com/files/AW/BDA T/20080303_V1.0.6.7.zip 10d8e9230cSMauro Carvalho Chehab# or wget http://www.stefanringel.de/pub/20080303_V1.0.6.7.zip 11d8e9230cSMauro Carvalho Chehab# Version 2.7 12d8e9230cSMauro Carvalho Chehab# wget http://www.steventoth.net/linux/xc5000/HVR-12x0-14x0-17x0_1_25_25271_WHQL.zip 13d8e9230cSMauro Carvalho Chehab# 2) Extract the files from the zip into the current dir: 14d8e9230cSMauro Carvalho Chehab# unzip -j 20080303_V1.0.6.7.zip 20080303_v1.0.6.7/UDXTTM6000.sys 15d8e9230cSMauro Carvalho Chehab# unzip -j HVR-12x0-14x0-17x0_1_25_25271_WHQL.zip Driver85/hcw85bda.sys 16d8e9230cSMauro Carvalho Chehab# 3) run the script: 17d8e9230cSMauro Carvalho Chehab# ./extract_xc3028.pl 18d8e9230cSMauro Carvalho Chehab# 4) copy the generated files: 19d8e9230cSMauro Carvalho Chehab# cp xc3028-v24.fw /lib/firmware 20d8e9230cSMauro Carvalho Chehab# cp xc3028-v27.fw /lib/firmware 21d8e9230cSMauro Carvalho Chehab 22d8e9230cSMauro Carvalho Chehab#use strict; 23d8e9230cSMauro Carvalho Chehabuse IO::Handle; 24d8e9230cSMauro Carvalho Chehab 25d8e9230cSMauro Carvalho Chehabmy $debug=0; 26d8e9230cSMauro Carvalho Chehab 27d8e9230cSMauro Carvalho Chehabsub verify ($$) 28d8e9230cSMauro Carvalho Chehab{ 29d8e9230cSMauro Carvalho Chehab my ($filename, $hash) = @_; 30d8e9230cSMauro Carvalho Chehab my ($testhash); 31d8e9230cSMauro Carvalho Chehab 32d8e9230cSMauro Carvalho Chehab if (system("which md5sum > /dev/null 2>&1")) { 33d8e9230cSMauro Carvalho Chehab die "This firmware requires the md5sum command - see http://www.gnu.org/software/coreutils/\n"; 34d8e9230cSMauro Carvalho Chehab } 35d8e9230cSMauro Carvalho Chehab 36d8e9230cSMauro Carvalho Chehab open(CMD, "md5sum ".$filename."|"); 37d8e9230cSMauro Carvalho Chehab $testhash = <CMD>; 38d8e9230cSMauro Carvalho Chehab $testhash =~ /([a-zA-Z0-9]*)/; 39d8e9230cSMauro Carvalho Chehab $testhash = $1; 40d8e9230cSMauro Carvalho Chehab close CMD; 41d8e9230cSMauro Carvalho Chehab die "Hash of extracted file does not match (found $testhash, expected $hash!\n" if ($testhash ne $hash); 42d8e9230cSMauro Carvalho Chehab} 43d8e9230cSMauro Carvalho Chehab 44d8e9230cSMauro Carvalho Chehabsub get_hunk ($$) 45d8e9230cSMauro Carvalho Chehab{ 46d8e9230cSMauro Carvalho Chehab my ($offset, $length) = @_; 47d8e9230cSMauro Carvalho Chehab my ($chunklength, $buf, $rcount, $out); 48d8e9230cSMauro Carvalho Chehab 49d8e9230cSMauro Carvalho Chehab sysseek(INFILE, $offset, SEEK_SET); 50d8e9230cSMauro Carvalho Chehab while ($length > 0) { 51d8e9230cSMauro Carvalho Chehab # Calc chunk size 52d8e9230cSMauro Carvalho Chehab $chunklength = 2048; 53d8e9230cSMauro Carvalho Chehab $chunklength = $length if ($chunklength > $length); 54d8e9230cSMauro Carvalho Chehab 55d8e9230cSMauro Carvalho Chehab $rcount = sysread(INFILE, $buf, $chunklength); 56d8e9230cSMauro Carvalho Chehab die "Ran out of data\n" if ($rcount != $chunklength); 57d8e9230cSMauro Carvalho Chehab $out .= $buf; 58d8e9230cSMauro Carvalho Chehab $length -= $rcount; 59d8e9230cSMauro Carvalho Chehab } 60d8e9230cSMauro Carvalho Chehab return $out; 61d8e9230cSMauro Carvalho Chehab} 62d8e9230cSMauro Carvalho Chehab 63d8e9230cSMauro Carvalho Chehabsub write_le16($) 64d8e9230cSMauro Carvalho Chehab{ 65d8e9230cSMauro Carvalho Chehab my $val = shift; 66d8e9230cSMauro Carvalho Chehab my $msb = ($val >> 8) &0xff; 67d8e9230cSMauro Carvalho Chehab my $lsb = $val & 0xff; 68d8e9230cSMauro Carvalho Chehab 69d8e9230cSMauro Carvalho Chehab syswrite(OUTFILE, chr($lsb).chr($msb)); 70d8e9230cSMauro Carvalho Chehab} 71d8e9230cSMauro Carvalho Chehab 72d8e9230cSMauro Carvalho Chehabsub write_le32($) 73d8e9230cSMauro Carvalho Chehab{ 74d8e9230cSMauro Carvalho Chehab my $val = shift; 75d8e9230cSMauro Carvalho Chehab my $l3 = ($val >> 24) & 0xff; 76d8e9230cSMauro Carvalho Chehab my $l2 = ($val >> 16) & 0xff; 77d8e9230cSMauro Carvalho Chehab my $l1 = ($val >> 8) & 0xff; 78d8e9230cSMauro Carvalho Chehab my $l0 = $val & 0xff; 79d8e9230cSMauro Carvalho Chehab 80d8e9230cSMauro Carvalho Chehab syswrite(OUTFILE, chr($l0).chr($l1).chr($l2).chr($l3)); 81d8e9230cSMauro Carvalho Chehab} 82d8e9230cSMauro Carvalho Chehab 83d8e9230cSMauro Carvalho Chehabsub write_le64($$) 84d8e9230cSMauro Carvalho Chehab{ 85d8e9230cSMauro Carvalho Chehab my $msb_val = shift; 86d8e9230cSMauro Carvalho Chehab my $lsb_val = shift; 87d8e9230cSMauro Carvalho Chehab my $l7 = ($msb_val >> 24) & 0xff; 88d8e9230cSMauro Carvalho Chehab my $l6 = ($msb_val >> 16) & 0xff; 89d8e9230cSMauro Carvalho Chehab my $l5 = ($msb_val >> 8) & 0xff; 90d8e9230cSMauro Carvalho Chehab my $l4 = $msb_val & 0xff; 91d8e9230cSMauro Carvalho Chehab 92d8e9230cSMauro Carvalho Chehab my $l3 = ($lsb_val >> 24) & 0xff; 93d8e9230cSMauro Carvalho Chehab my $l2 = ($lsb_val >> 16) & 0xff; 94d8e9230cSMauro Carvalho Chehab my $l1 = ($lsb_val >> 8) & 0xff; 95d8e9230cSMauro Carvalho Chehab my $l0 = $lsb_val & 0xff; 96d8e9230cSMauro Carvalho Chehab 97d8e9230cSMauro Carvalho Chehab syswrite(OUTFILE, 98d8e9230cSMauro Carvalho Chehab chr($l0).chr($l1).chr($l2).chr($l3). 99d8e9230cSMauro Carvalho Chehab chr($l4).chr($l5).chr($l6).chr($l7)); 100d8e9230cSMauro Carvalho Chehab} 101d8e9230cSMauro Carvalho Chehab 102d8e9230cSMauro Carvalho Chehabsub write_hunk($$) 103d8e9230cSMauro Carvalho Chehab{ 104d8e9230cSMauro Carvalho Chehab my ($offset, $length) = @_; 105d8e9230cSMauro Carvalho Chehab my $out = get_hunk($offset, $length); 106d8e9230cSMauro Carvalho Chehab 107d8e9230cSMauro Carvalho Chehab printf "(len %d) ",$length if ($debug); 108d8e9230cSMauro Carvalho Chehab 109d8e9230cSMauro Carvalho Chehab for (my $i=0;$i<$length;$i++) { 110d8e9230cSMauro Carvalho Chehab printf "%02x ",ord(substr($out,$i,1)) if ($debug); 111d8e9230cSMauro Carvalho Chehab } 112d8e9230cSMauro Carvalho Chehab printf "\n" if ($debug); 113d8e9230cSMauro Carvalho Chehab 114d8e9230cSMauro Carvalho Chehab syswrite(OUTFILE, $out); 115d8e9230cSMauro Carvalho Chehab} 116d8e9230cSMauro Carvalho Chehab 117d8e9230cSMauro Carvalho Chehabsub write_hunk_fix_endian($$) 118d8e9230cSMauro Carvalho Chehab{ 119d8e9230cSMauro Carvalho Chehab my ($offset, $length) = @_; 120d8e9230cSMauro Carvalho Chehab my $out = get_hunk($offset, $length); 121d8e9230cSMauro Carvalho Chehab 122d8e9230cSMauro Carvalho Chehab printf "(len_fix %d) ",$length if ($debug); 123d8e9230cSMauro Carvalho Chehab 124d8e9230cSMauro Carvalho Chehab for (my $i=0;$i<$length;$i++) { 125d8e9230cSMauro Carvalho Chehab printf "%02x ",ord(substr($out,$i,1)) if ($debug); 126d8e9230cSMauro Carvalho Chehab } 127d8e9230cSMauro Carvalho Chehab printf "\n" if ($debug); 128d8e9230cSMauro Carvalho Chehab 129d8e9230cSMauro Carvalho Chehab my $i=0; 130d8e9230cSMauro Carvalho Chehab while ($i<$length) { 131d8e9230cSMauro Carvalho Chehab my $size = ord(substr($out,$i,1))*256+ord(substr($out,$i+1,1)); 132d8e9230cSMauro Carvalho Chehab syswrite(OUTFILE, substr($out,$i+1,1)); 133d8e9230cSMauro Carvalho Chehab syswrite(OUTFILE, substr($out,$i,1)); 134d8e9230cSMauro Carvalho Chehab $i+=2; 135d8e9230cSMauro Carvalho Chehab if ($size>0 && $size <0x8000) { 136d8e9230cSMauro Carvalho Chehab for (my $j=0;$j<$size;$j++) { 137d8e9230cSMauro Carvalho Chehab syswrite(OUTFILE, substr($out,$j+$i,1)); 138d8e9230cSMauro Carvalho Chehab } 139d8e9230cSMauro Carvalho Chehab $i+=$size; 140d8e9230cSMauro Carvalho Chehab } 141d8e9230cSMauro Carvalho Chehab } 142d8e9230cSMauro Carvalho Chehab} 143d8e9230cSMauro Carvalho Chehab 144d8e9230cSMauro Carvalho Chehabsub main_firmware_24($$$$) 145d8e9230cSMauro Carvalho Chehab{ 146d8e9230cSMauro Carvalho Chehab my $out; 147d8e9230cSMauro Carvalho Chehab my $j=0; 148d8e9230cSMauro Carvalho Chehab my $outfile = shift; 149d8e9230cSMauro Carvalho Chehab my $name = shift; 150d8e9230cSMauro Carvalho Chehab my $version = shift; 151d8e9230cSMauro Carvalho Chehab my $nr_desc = shift; 152d8e9230cSMauro Carvalho Chehab 153d8e9230cSMauro Carvalho Chehab for ($j = length($name); $j <32; $j++) { 154d8e9230cSMauro Carvalho Chehab $name = $name.chr(0); 155d8e9230cSMauro Carvalho Chehab } 156d8e9230cSMauro Carvalho Chehab 157d8e9230cSMauro Carvalho Chehab open OUTFILE, ">$outfile"; 158d8e9230cSMauro Carvalho Chehab syswrite(OUTFILE, $name); 159d8e9230cSMauro Carvalho Chehab write_le16($version); 160d8e9230cSMauro Carvalho Chehab write_le16($nr_desc); 161d8e9230cSMauro Carvalho Chehab 162d8e9230cSMauro Carvalho Chehab # 163d8e9230cSMauro Carvalho Chehab # Firmware 0, type: BASE FW F8MHZ (0x00000003), id: (0000000000000000), size: 6635 164d8e9230cSMauro Carvalho Chehab # 165d8e9230cSMauro Carvalho Chehab 166d8e9230cSMauro Carvalho Chehab write_le32(0x00000003); # Type 167d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000000); # ID 168d8e9230cSMauro Carvalho Chehab write_le32(6635); # Size 169d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(257752, 6635); 170d8e9230cSMauro Carvalho Chehab 171d8e9230cSMauro Carvalho Chehab # 172d8e9230cSMauro Carvalho Chehab # Firmware 1, type: BASE FW F8MHZ MTS (0x00000007), id: (0000000000000000), size: 6635 173d8e9230cSMauro Carvalho Chehab # 174d8e9230cSMauro Carvalho Chehab 175d8e9230cSMauro Carvalho Chehab write_le32(0x00000007); # Type 176d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000000); # ID 177d8e9230cSMauro Carvalho Chehab write_le32(6635); # Size 178d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(264392, 6635); 179d8e9230cSMauro Carvalho Chehab 180d8e9230cSMauro Carvalho Chehab # 181d8e9230cSMauro Carvalho Chehab # Firmware 2, type: BASE FW FM (0x00000401), id: (0000000000000000), size: 6525 182d8e9230cSMauro Carvalho Chehab # 183d8e9230cSMauro Carvalho Chehab 184d8e9230cSMauro Carvalho Chehab write_le32(0x00000401); # Type 185d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000000); # ID 186d8e9230cSMauro Carvalho Chehab write_le32(6525); # Size 187d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(271040, 6525); 188d8e9230cSMauro Carvalho Chehab 189d8e9230cSMauro Carvalho Chehab # 190d8e9230cSMauro Carvalho Chehab # Firmware 3, type: BASE FW FM INPUT1 (0x00000c01), id: (0000000000000000), size: 6539 191d8e9230cSMauro Carvalho Chehab # 192d8e9230cSMauro Carvalho Chehab 193d8e9230cSMauro Carvalho Chehab write_le32(0x00000c01); # Type 194d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000000); # ID 195d8e9230cSMauro Carvalho Chehab write_le32(6539); # Size 196d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(277568, 6539); 197d8e9230cSMauro Carvalho Chehab 198d8e9230cSMauro Carvalho Chehab # 199d8e9230cSMauro Carvalho Chehab # Firmware 4, type: BASE FW (0x00000001), id: (0000000000000000), size: 6633 200d8e9230cSMauro Carvalho Chehab # 201d8e9230cSMauro Carvalho Chehab 202d8e9230cSMauro Carvalho Chehab write_le32(0x00000001); # Type 203d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000000); # ID 204d8e9230cSMauro Carvalho Chehab write_le32(6633); # Size 205d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(284120, 6633); 206d8e9230cSMauro Carvalho Chehab 207d8e9230cSMauro Carvalho Chehab # 208d8e9230cSMauro Carvalho Chehab # Firmware 5, type: BASE FW MTS (0x00000005), id: (0000000000000000), size: 6617 209d8e9230cSMauro Carvalho Chehab # 210d8e9230cSMauro Carvalho Chehab 211d8e9230cSMauro Carvalho Chehab write_le32(0x00000005); # Type 212d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000000); # ID 213d8e9230cSMauro Carvalho Chehab write_le32(6617); # Size 214d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(290760, 6617); 215d8e9230cSMauro Carvalho Chehab 216d8e9230cSMauro Carvalho Chehab # 217d8e9230cSMauro Carvalho Chehab # Firmware 6, type: STD FW (0x00000000), id: PAL/BG A2/A (0000000100000007), size: 161 218d8e9230cSMauro Carvalho Chehab # 219d8e9230cSMauro Carvalho Chehab 220d8e9230cSMauro Carvalho Chehab write_le32(0x00000000); # Type 221d8e9230cSMauro Carvalho Chehab write_le64(0x00000001, 0x00000007); # ID 222d8e9230cSMauro Carvalho Chehab write_le32(161); # Size 223d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(297384, 161); 224d8e9230cSMauro Carvalho Chehab 225d8e9230cSMauro Carvalho Chehab # 226d8e9230cSMauro Carvalho Chehab # Firmware 7, type: STD FW MTS (0x00000004), id: PAL/BG A2/A (0000000100000007), size: 169 227d8e9230cSMauro Carvalho Chehab # 228d8e9230cSMauro Carvalho Chehab 229d8e9230cSMauro Carvalho Chehab write_le32(0x00000004); # Type 230d8e9230cSMauro Carvalho Chehab write_le64(0x00000001, 0x00000007); # ID 231d8e9230cSMauro Carvalho Chehab write_le32(169); # Size 232d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(297552, 169); 233d8e9230cSMauro Carvalho Chehab 234d8e9230cSMauro Carvalho Chehab # 235d8e9230cSMauro Carvalho Chehab # Firmware 8, type: STD FW (0x00000000), id: PAL/BG A2/B (0000000200000007), size: 161 236d8e9230cSMauro Carvalho Chehab # 237d8e9230cSMauro Carvalho Chehab 238d8e9230cSMauro Carvalho Chehab write_le32(0x00000000); # Type 239d8e9230cSMauro Carvalho Chehab write_le64(0x00000002, 0x00000007); # ID 240d8e9230cSMauro Carvalho Chehab write_le32(161); # Size 241d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(297728, 161); 242d8e9230cSMauro Carvalho Chehab 243d8e9230cSMauro Carvalho Chehab # 244d8e9230cSMauro Carvalho Chehab # Firmware 9, type: STD FW MTS (0x00000004), id: PAL/BG A2/B (0000000200000007), size: 169 245d8e9230cSMauro Carvalho Chehab # 246d8e9230cSMauro Carvalho Chehab 247d8e9230cSMauro Carvalho Chehab write_le32(0x00000004); # Type 248d8e9230cSMauro Carvalho Chehab write_le64(0x00000002, 0x00000007); # ID 249d8e9230cSMauro Carvalho Chehab write_le32(169); # Size 250d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(297896, 169); 251d8e9230cSMauro Carvalho Chehab 252d8e9230cSMauro Carvalho Chehab # 253d8e9230cSMauro Carvalho Chehab # Firmware 10, type: STD FW (0x00000000), id: PAL/BG NICAM/A (0000000400000007), size: 161 254d8e9230cSMauro Carvalho Chehab # 255d8e9230cSMauro Carvalho Chehab 256d8e9230cSMauro Carvalho Chehab write_le32(0x00000000); # Type 257d8e9230cSMauro Carvalho Chehab write_le64(0x00000004, 0x00000007); # ID 258d8e9230cSMauro Carvalho Chehab write_le32(161); # Size 259d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(298072, 161); 260d8e9230cSMauro Carvalho Chehab 261d8e9230cSMauro Carvalho Chehab # 262d8e9230cSMauro Carvalho Chehab # Firmware 11, type: STD FW MTS (0x00000004), id: PAL/BG NICAM/A (0000000400000007), size: 169 263d8e9230cSMauro Carvalho Chehab # 264d8e9230cSMauro Carvalho Chehab 265d8e9230cSMauro Carvalho Chehab write_le32(0x00000004); # Type 266d8e9230cSMauro Carvalho Chehab write_le64(0x00000004, 0x00000007); # ID 267d8e9230cSMauro Carvalho Chehab write_le32(169); # Size 268d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(298240, 169); 269d8e9230cSMauro Carvalho Chehab 270d8e9230cSMauro Carvalho Chehab # 271d8e9230cSMauro Carvalho Chehab # Firmware 12, type: STD FW (0x00000000), id: PAL/BG NICAM/B (0000000800000007), size: 161 272d8e9230cSMauro Carvalho Chehab # 273d8e9230cSMauro Carvalho Chehab 274d8e9230cSMauro Carvalho Chehab write_le32(0x00000000); # Type 275d8e9230cSMauro Carvalho Chehab write_le64(0x00000008, 0x00000007); # ID 276d8e9230cSMauro Carvalho Chehab write_le32(161); # Size 277d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(298416, 161); 278d8e9230cSMauro Carvalho Chehab 279d8e9230cSMauro Carvalho Chehab # 280d8e9230cSMauro Carvalho Chehab # Firmware 13, type: STD FW MTS (0x00000004), id: PAL/BG NICAM/B (0000000800000007), size: 169 281d8e9230cSMauro Carvalho Chehab # 282d8e9230cSMauro Carvalho Chehab 283d8e9230cSMauro Carvalho Chehab write_le32(0x00000004); # Type 284d8e9230cSMauro Carvalho Chehab write_le64(0x00000008, 0x00000007); # ID 285d8e9230cSMauro Carvalho Chehab write_le32(169); # Size 286d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(298584, 169); 287d8e9230cSMauro Carvalho Chehab 288d8e9230cSMauro Carvalho Chehab # 289d8e9230cSMauro Carvalho Chehab # Firmware 14, type: STD FW (0x00000000), id: PAL/DK A2 (00000003000000e0), size: 161 290d8e9230cSMauro Carvalho Chehab # 291d8e9230cSMauro Carvalho Chehab 292d8e9230cSMauro Carvalho Chehab write_le32(0x00000000); # Type 293d8e9230cSMauro Carvalho Chehab write_le64(0x00000003, 0x000000e0); # ID 294d8e9230cSMauro Carvalho Chehab write_le32(161); # Size 295d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(298760, 161); 296d8e9230cSMauro Carvalho Chehab 297d8e9230cSMauro Carvalho Chehab # 298d8e9230cSMauro Carvalho Chehab # Firmware 15, type: STD FW MTS (0x00000004), id: PAL/DK A2 (00000003000000e0), size: 169 299d8e9230cSMauro Carvalho Chehab # 300d8e9230cSMauro Carvalho Chehab 301d8e9230cSMauro Carvalho Chehab write_le32(0x00000004); # Type 302d8e9230cSMauro Carvalho Chehab write_le64(0x00000003, 0x000000e0); # ID 303d8e9230cSMauro Carvalho Chehab write_le32(169); # Size 304d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(298928, 169); 305d8e9230cSMauro Carvalho Chehab 306d8e9230cSMauro Carvalho Chehab # 307d8e9230cSMauro Carvalho Chehab # Firmware 16, type: STD FW (0x00000000), id: PAL/DK NICAM (0000000c000000e0), size: 161 308d8e9230cSMauro Carvalho Chehab # 309d8e9230cSMauro Carvalho Chehab 310d8e9230cSMauro Carvalho Chehab write_le32(0x00000000); # Type 311d8e9230cSMauro Carvalho Chehab write_le64(0x0000000c, 0x000000e0); # ID 312d8e9230cSMauro Carvalho Chehab write_le32(161); # Size 313d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(299104, 161); 314d8e9230cSMauro Carvalho Chehab 315d8e9230cSMauro Carvalho Chehab # 316d8e9230cSMauro Carvalho Chehab # Firmware 17, type: STD FW MTS (0x00000004), id: PAL/DK NICAM (0000000c000000e0), size: 169 317d8e9230cSMauro Carvalho Chehab # 318d8e9230cSMauro Carvalho Chehab 319d8e9230cSMauro Carvalho Chehab write_le32(0x00000004); # Type 320d8e9230cSMauro Carvalho Chehab write_le64(0x0000000c, 0x000000e0); # ID 321d8e9230cSMauro Carvalho Chehab write_le32(169); # Size 322d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(299272, 169); 323d8e9230cSMauro Carvalho Chehab 324d8e9230cSMauro Carvalho Chehab # 325d8e9230cSMauro Carvalho Chehab # Firmware 18, type: STD FW (0x00000000), id: SECAM/K1 (0000000000200000), size: 161 326d8e9230cSMauro Carvalho Chehab # 327d8e9230cSMauro Carvalho Chehab 328d8e9230cSMauro Carvalho Chehab write_le32(0x00000000); # Type 329d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00200000); # ID 330d8e9230cSMauro Carvalho Chehab write_le32(161); # Size 331d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(299448, 161); 332d8e9230cSMauro Carvalho Chehab 333d8e9230cSMauro Carvalho Chehab # 334d8e9230cSMauro Carvalho Chehab # Firmware 19, type: STD FW MTS (0x00000004), id: SECAM/K1 (0000000000200000), size: 169 335d8e9230cSMauro Carvalho Chehab # 336d8e9230cSMauro Carvalho Chehab 337d8e9230cSMauro Carvalho Chehab write_le32(0x00000004); # Type 338d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00200000); # ID 339d8e9230cSMauro Carvalho Chehab write_le32(169); # Size 340d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(299616, 169); 341d8e9230cSMauro Carvalho Chehab 342d8e9230cSMauro Carvalho Chehab # 343d8e9230cSMauro Carvalho Chehab # Firmware 20, type: STD FW (0x00000000), id: SECAM/K3 (0000000004000000), size: 161 344d8e9230cSMauro Carvalho Chehab # 345d8e9230cSMauro Carvalho Chehab 346d8e9230cSMauro Carvalho Chehab write_le32(0x00000000); # Type 347d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x04000000); # ID 348d8e9230cSMauro Carvalho Chehab write_le32(161); # Size 349d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(299792, 161); 350d8e9230cSMauro Carvalho Chehab 351d8e9230cSMauro Carvalho Chehab # 352d8e9230cSMauro Carvalho Chehab # Firmware 21, type: STD FW MTS (0x00000004), id: SECAM/K3 (0000000004000000), size: 169 353d8e9230cSMauro Carvalho Chehab # 354d8e9230cSMauro Carvalho Chehab 355d8e9230cSMauro Carvalho Chehab write_le32(0x00000004); # Type 356d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x04000000); # ID 357d8e9230cSMauro Carvalho Chehab write_le32(169); # Size 358d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(299960, 169); 359d8e9230cSMauro Carvalho Chehab 360d8e9230cSMauro Carvalho Chehab # 361d8e9230cSMauro Carvalho Chehab # Firmware 22, type: STD FW D2633 DTV6 ATSC (0x00010030), id: (0000000000000000), size: 149 362d8e9230cSMauro Carvalho Chehab # 363d8e9230cSMauro Carvalho Chehab 364d8e9230cSMauro Carvalho Chehab write_le32(0x00010030); # Type 365d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000000); # ID 366d8e9230cSMauro Carvalho Chehab write_le32(149); # Size 367d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(300136, 149); 368d8e9230cSMauro Carvalho Chehab 369d8e9230cSMauro Carvalho Chehab # 370d8e9230cSMauro Carvalho Chehab # Firmware 23, type: STD FW D2620 DTV6 QAM (0x00000068), id: (0000000000000000), size: 149 371d8e9230cSMauro Carvalho Chehab # 372d8e9230cSMauro Carvalho Chehab 373d8e9230cSMauro Carvalho Chehab write_le32(0x00000068); # Type 374d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000000); # ID 375d8e9230cSMauro Carvalho Chehab write_le32(149); # Size 376d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(300296, 149); 377d8e9230cSMauro Carvalho Chehab 378d8e9230cSMauro Carvalho Chehab # 379d8e9230cSMauro Carvalho Chehab # Firmware 24, type: STD FW D2633 DTV6 QAM (0x00000070), id: (0000000000000000), size: 149 380d8e9230cSMauro Carvalho Chehab # 381d8e9230cSMauro Carvalho Chehab 382d8e9230cSMauro Carvalho Chehab write_le32(0x00000070); # Type 383d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000000); # ID 384d8e9230cSMauro Carvalho Chehab write_le32(149); # Size 385d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(300448, 149); 386d8e9230cSMauro Carvalho Chehab 387d8e9230cSMauro Carvalho Chehab # 388d8e9230cSMauro Carvalho Chehab # Firmware 25, type: STD FW D2620 DTV7 (0x00000088), id: (0000000000000000), size: 149 389d8e9230cSMauro Carvalho Chehab # 390d8e9230cSMauro Carvalho Chehab 391d8e9230cSMauro Carvalho Chehab write_le32(0x00000088); # Type 392d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000000); # ID 393d8e9230cSMauro Carvalho Chehab write_le32(149); # Size 394d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(300608, 149); 395d8e9230cSMauro Carvalho Chehab 396d8e9230cSMauro Carvalho Chehab # 397d8e9230cSMauro Carvalho Chehab # Firmware 26, type: STD FW D2633 DTV7 (0x00000090), id: (0000000000000000), size: 149 398d8e9230cSMauro Carvalho Chehab # 399d8e9230cSMauro Carvalho Chehab 400d8e9230cSMauro Carvalho Chehab write_le32(0x00000090); # Type 401d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000000); # ID 402d8e9230cSMauro Carvalho Chehab write_le32(149); # Size 403d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(300760, 149); 404d8e9230cSMauro Carvalho Chehab 405d8e9230cSMauro Carvalho Chehab # 406d8e9230cSMauro Carvalho Chehab # Firmware 27, type: STD FW D2620 DTV78 (0x00000108), id: (0000000000000000), size: 149 407d8e9230cSMauro Carvalho Chehab # 408d8e9230cSMauro Carvalho Chehab 409d8e9230cSMauro Carvalho Chehab write_le32(0x00000108); # Type 410d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000000); # ID 411d8e9230cSMauro Carvalho Chehab write_le32(149); # Size 412d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(300920, 149); 413d8e9230cSMauro Carvalho Chehab 414d8e9230cSMauro Carvalho Chehab # 415d8e9230cSMauro Carvalho Chehab # Firmware 28, type: STD FW D2633 DTV78 (0x00000110), id: (0000000000000000), size: 149 416d8e9230cSMauro Carvalho Chehab # 417d8e9230cSMauro Carvalho Chehab 418d8e9230cSMauro Carvalho Chehab write_le32(0x00000110); # Type 419d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000000); # ID 420d8e9230cSMauro Carvalho Chehab write_le32(149); # Size 421d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(301072, 149); 422d8e9230cSMauro Carvalho Chehab 423d8e9230cSMauro Carvalho Chehab # 424d8e9230cSMauro Carvalho Chehab # Firmware 29, type: STD FW D2620 DTV8 (0x00000208), id: (0000000000000000), size: 149 425d8e9230cSMauro Carvalho Chehab # 426d8e9230cSMauro Carvalho Chehab 427d8e9230cSMauro Carvalho Chehab write_le32(0x00000208); # Type 428d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000000); # ID 429d8e9230cSMauro Carvalho Chehab write_le32(149); # Size 430d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(301232, 149); 431d8e9230cSMauro Carvalho Chehab 432d8e9230cSMauro Carvalho Chehab # 433d8e9230cSMauro Carvalho Chehab # Firmware 30, type: STD FW D2633 DTV8 (0x00000210), id: (0000000000000000), size: 149 434d8e9230cSMauro Carvalho Chehab # 435d8e9230cSMauro Carvalho Chehab 436d8e9230cSMauro Carvalho Chehab write_le32(0x00000210); # Type 437d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000000); # ID 438d8e9230cSMauro Carvalho Chehab write_le32(149); # Size 439d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(301384, 149); 440d8e9230cSMauro Carvalho Chehab 441d8e9230cSMauro Carvalho Chehab # 442d8e9230cSMauro Carvalho Chehab # Firmware 31, type: STD FW FM (0x00000400), id: (0000000000000000), size: 135 443d8e9230cSMauro Carvalho Chehab # 444d8e9230cSMauro Carvalho Chehab 445d8e9230cSMauro Carvalho Chehab write_le32(0x00000400); # Type 446d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000000); # ID 447d8e9230cSMauro Carvalho Chehab write_le32(135); # Size 448d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(301554, 135); 449d8e9230cSMauro Carvalho Chehab 450d8e9230cSMauro Carvalho Chehab # 451d8e9230cSMauro Carvalho Chehab # Firmware 32, type: STD FW (0x00000000), id: PAL/I (0000000000000010), size: 161 452d8e9230cSMauro Carvalho Chehab # 453d8e9230cSMauro Carvalho Chehab 454d8e9230cSMauro Carvalho Chehab write_le32(0x00000000); # Type 455d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000010); # ID 456d8e9230cSMauro Carvalho Chehab write_le32(161); # Size 457d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(301688, 161); 458d8e9230cSMauro Carvalho Chehab 459d8e9230cSMauro Carvalho Chehab # 460d8e9230cSMauro Carvalho Chehab # Firmware 33, type: STD FW MTS (0x00000004), id: PAL/I (0000000000000010), size: 169 461d8e9230cSMauro Carvalho Chehab # 462d8e9230cSMauro Carvalho Chehab 463d8e9230cSMauro Carvalho Chehab write_le32(0x00000004); # Type 464d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000010); # ID 465d8e9230cSMauro Carvalho Chehab write_le32(169); # Size 466d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(301856, 169); 467d8e9230cSMauro Carvalho Chehab 468d8e9230cSMauro Carvalho Chehab # 469d8e9230cSMauro Carvalho Chehab # Firmware 34, type: STD FW (0x00000000), id: SECAM/L AM (0000001000400000), size: 169 470d8e9230cSMauro Carvalho Chehab # 471d8e9230cSMauro Carvalho Chehab 472d8e9230cSMauro Carvalho Chehab # 473d8e9230cSMauro Carvalho Chehab # Firmware 35, type: STD FW (0x00000000), id: SECAM/L NICAM (0000000c00400000), size: 161 474d8e9230cSMauro Carvalho Chehab # 475d8e9230cSMauro Carvalho Chehab 476d8e9230cSMauro Carvalho Chehab write_le32(0x00000000); # Type 477d8e9230cSMauro Carvalho Chehab write_le64(0x0000000c, 0x00400000); # ID 478d8e9230cSMauro Carvalho Chehab write_le32(161); # Size 479d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(302032, 161); 480d8e9230cSMauro Carvalho Chehab 481d8e9230cSMauro Carvalho Chehab # 482d8e9230cSMauro Carvalho Chehab # Firmware 36, type: STD FW (0x00000000), id: SECAM/Lc (0000000000800000), size: 161 483d8e9230cSMauro Carvalho Chehab # 484d8e9230cSMauro Carvalho Chehab 485d8e9230cSMauro Carvalho Chehab write_le32(0x00000000); # Type 486d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00800000); # ID 487d8e9230cSMauro Carvalho Chehab write_le32(161); # Size 488d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(302200, 161); 489d8e9230cSMauro Carvalho Chehab 490d8e9230cSMauro Carvalho Chehab # 491d8e9230cSMauro Carvalho Chehab # Firmware 37, type: STD FW (0x00000000), id: NTSC/M Kr (0000000000008000), size: 161 492d8e9230cSMauro Carvalho Chehab # 493d8e9230cSMauro Carvalho Chehab 494d8e9230cSMauro Carvalho Chehab write_le32(0x00000000); # Type 495d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00008000); # ID 496d8e9230cSMauro Carvalho Chehab write_le32(161); # Size 497d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(302368, 161); 498d8e9230cSMauro Carvalho Chehab 499d8e9230cSMauro Carvalho Chehab # 500d8e9230cSMauro Carvalho Chehab # Firmware 38, type: STD FW LCD (0x00001000), id: NTSC/M Kr (0000000000008000), size: 161 501d8e9230cSMauro Carvalho Chehab # 502d8e9230cSMauro Carvalho Chehab 503d8e9230cSMauro Carvalho Chehab write_le32(0x00001000); # Type 504d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00008000); # ID 505d8e9230cSMauro Carvalho Chehab write_le32(161); # Size 506d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(302536, 161); 507d8e9230cSMauro Carvalho Chehab 508d8e9230cSMauro Carvalho Chehab # 509d8e9230cSMauro Carvalho Chehab # Firmware 39, type: STD FW LCD NOGD (0x00003000), id: NTSC/M Kr (0000000000008000), size: 161 510d8e9230cSMauro Carvalho Chehab # 511d8e9230cSMauro Carvalho Chehab 512d8e9230cSMauro Carvalho Chehab write_le32(0x00003000); # Type 513d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00008000); # ID 514d8e9230cSMauro Carvalho Chehab write_le32(161); # Size 515d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(302704, 161); 516d8e9230cSMauro Carvalho Chehab 517d8e9230cSMauro Carvalho Chehab # 518d8e9230cSMauro Carvalho Chehab # Firmware 40, type: STD FW MTS (0x00000004), id: NTSC/M Kr (0000000000008000), size: 169 519d8e9230cSMauro Carvalho Chehab # 520d8e9230cSMauro Carvalho Chehab 521d8e9230cSMauro Carvalho Chehab write_le32(0x00000004); # Type 522d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00008000); # ID 523d8e9230cSMauro Carvalho Chehab write_le32(169); # Size 524d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(302872, 169); 525d8e9230cSMauro Carvalho Chehab 526d8e9230cSMauro Carvalho Chehab # 527d8e9230cSMauro Carvalho Chehab # Firmware 41, type: STD FW (0x00000000), id: NTSC PAL/M PAL/N (000000000000b700), size: 161 528d8e9230cSMauro Carvalho Chehab # 529d8e9230cSMauro Carvalho Chehab 530d8e9230cSMauro Carvalho Chehab write_le32(0x00000000); # Type 531d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x0000b700); # ID 532d8e9230cSMauro Carvalho Chehab write_le32(161); # Size 533d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(303048, 161); 534d8e9230cSMauro Carvalho Chehab 535d8e9230cSMauro Carvalho Chehab # 536d8e9230cSMauro Carvalho Chehab # Firmware 42, type: STD FW LCD (0x00001000), id: NTSC PAL/M PAL/N (000000000000b700), size: 161 537d8e9230cSMauro Carvalho Chehab # 538d8e9230cSMauro Carvalho Chehab 539d8e9230cSMauro Carvalho Chehab write_le32(0x00001000); # Type 540d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x0000b700); # ID 541d8e9230cSMauro Carvalho Chehab write_le32(161); # Size 542d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(303216, 161); 543d8e9230cSMauro Carvalho Chehab 544d8e9230cSMauro Carvalho Chehab # 545d8e9230cSMauro Carvalho Chehab # Firmware 43, type: STD FW LCD NOGD (0x00003000), id: NTSC PAL/M PAL/N (000000000000b700), size: 161 546d8e9230cSMauro Carvalho Chehab # 547d8e9230cSMauro Carvalho Chehab 548d8e9230cSMauro Carvalho Chehab write_le32(0x00003000); # Type 549d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x0000b700); # ID 550d8e9230cSMauro Carvalho Chehab write_le32(161); # Size 551d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(303384, 161); 552d8e9230cSMauro Carvalho Chehab 553d8e9230cSMauro Carvalho Chehab # 554d8e9230cSMauro Carvalho Chehab # Firmware 44, type: STD FW (0x00000000), id: NTSC/M Jp (0000000000002000), size: 161 555d8e9230cSMauro Carvalho Chehab # 556d8e9230cSMauro Carvalho Chehab 557d8e9230cSMauro Carvalho Chehab write_le32(0x00000000); # Type 558d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00002000); # ID 559d8e9230cSMauro Carvalho Chehab write_le32(161); # Size 560d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(303552, 161); 561d8e9230cSMauro Carvalho Chehab 562d8e9230cSMauro Carvalho Chehab # 563d8e9230cSMauro Carvalho Chehab # Firmware 45, type: STD FW MTS (0x00000004), id: NTSC PAL/M PAL/N (000000000000b700), size: 169 564d8e9230cSMauro Carvalho Chehab # 565d8e9230cSMauro Carvalho Chehab 566d8e9230cSMauro Carvalho Chehab write_le32(0x00000004); # Type 567d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x0000b700); # ID 568d8e9230cSMauro Carvalho Chehab write_le32(169); # Size 569d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(303720, 169); 570d8e9230cSMauro Carvalho Chehab 571d8e9230cSMauro Carvalho Chehab # 572d8e9230cSMauro Carvalho Chehab # Firmware 46, type: STD FW MTS LCD (0x00001004), id: NTSC PAL/M PAL/N (000000000000b700), size: 169 573d8e9230cSMauro Carvalho Chehab # 574d8e9230cSMauro Carvalho Chehab 575d8e9230cSMauro Carvalho Chehab write_le32(0x00001004); # Type 576d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x0000b700); # ID 577d8e9230cSMauro Carvalho Chehab write_le32(169); # Size 578d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(303896, 169); 579d8e9230cSMauro Carvalho Chehab 580d8e9230cSMauro Carvalho Chehab # 581d8e9230cSMauro Carvalho Chehab # Firmware 47, type: STD FW MTS LCD NOGD (0x00003004), id: NTSC PAL/M PAL/N (000000000000b700), size: 169 582d8e9230cSMauro Carvalho Chehab # 583d8e9230cSMauro Carvalho Chehab 584d8e9230cSMauro Carvalho Chehab write_le32(0x00003004); # Type 585d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x0000b700); # ID 586d8e9230cSMauro Carvalho Chehab write_le32(169); # Size 587d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(304072, 169); 588d8e9230cSMauro Carvalho Chehab 589d8e9230cSMauro Carvalho Chehab # 590d8e9230cSMauro Carvalho Chehab # Firmware 48, type: SCODE FW HAS IF (0x60000000), IF = 3.28 MHz id: (0000000000000000), size: 192 591d8e9230cSMauro Carvalho Chehab # 592d8e9230cSMauro Carvalho Chehab 593d8e9230cSMauro Carvalho Chehab write_le32(0x60000000); # Type 594d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000000); # ID 595d8e9230cSMauro Carvalho Chehab write_le16(3280); # IF 596d8e9230cSMauro Carvalho Chehab write_le32(192); # Size 597d8e9230cSMauro Carvalho Chehab write_hunk(309048, 192); 598d8e9230cSMauro Carvalho Chehab 599d8e9230cSMauro Carvalho Chehab # 600d8e9230cSMauro Carvalho Chehab # Firmware 49, type: SCODE FW HAS IF (0x60000000), IF = 3.30 MHz id: (0000000000000000), size: 192 601d8e9230cSMauro Carvalho Chehab # 602d8e9230cSMauro Carvalho Chehab 603d8e9230cSMauro Carvalho Chehab# write_le32(0x60000000); # Type 604d8e9230cSMauro Carvalho Chehab# write_le64(0x00000000, 0x00000000); # ID 605d8e9230cSMauro Carvalho Chehab# write_le16(3300); # IF 606d8e9230cSMauro Carvalho Chehab# write_le32(192); # Size 607d8e9230cSMauro Carvalho Chehab# write_hunk(304440, 192); 608d8e9230cSMauro Carvalho Chehab 609d8e9230cSMauro Carvalho Chehab # 610d8e9230cSMauro Carvalho Chehab # Firmware 50, type: SCODE FW HAS IF (0x60000000), IF = 3.44 MHz id: (0000000000000000), size: 192 611d8e9230cSMauro Carvalho Chehab # 612d8e9230cSMauro Carvalho Chehab 613d8e9230cSMauro Carvalho Chehab write_le32(0x60000000); # Type 614d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000000); # ID 615d8e9230cSMauro Carvalho Chehab write_le16(3440); # IF 616d8e9230cSMauro Carvalho Chehab write_le32(192); # Size 617d8e9230cSMauro Carvalho Chehab write_hunk(309432, 192); 618d8e9230cSMauro Carvalho Chehab 619d8e9230cSMauro Carvalho Chehab # 620d8e9230cSMauro Carvalho Chehab # Firmware 51, type: SCODE FW HAS IF (0x60000000), IF = 3.46 MHz id: (0000000000000000), size: 192 621d8e9230cSMauro Carvalho Chehab # 622d8e9230cSMauro Carvalho Chehab 623d8e9230cSMauro Carvalho Chehab write_le32(0x60000000); # Type 624d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000000); # ID 625d8e9230cSMauro Carvalho Chehab write_le16(3460); # IF 626d8e9230cSMauro Carvalho Chehab write_le32(192); # Size 627d8e9230cSMauro Carvalho Chehab write_hunk(309624, 192); 628d8e9230cSMauro Carvalho Chehab 629d8e9230cSMauro Carvalho Chehab # 630d8e9230cSMauro Carvalho Chehab # Firmware 52, type: SCODE FW DTV6 ATSC OREN36 HAS IF (0x60210020), IF = 3.80 MHz id: (0000000000000000), size: 192 631d8e9230cSMauro Carvalho Chehab # 632d8e9230cSMauro Carvalho Chehab 633d8e9230cSMauro Carvalho Chehab write_le32(0x60210020); # Type 634d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000000); # ID 635d8e9230cSMauro Carvalho Chehab write_le16(3800); # IF 636d8e9230cSMauro Carvalho Chehab write_le32(192); # Size 637d8e9230cSMauro Carvalho Chehab write_hunk(306936, 192); 638d8e9230cSMauro Carvalho Chehab 639d8e9230cSMauro Carvalho Chehab # 640d8e9230cSMauro Carvalho Chehab # Firmware 53, type: SCODE FW HAS IF (0x60000000), IF = 4.00 MHz id: (0000000000000000), size: 192 641d8e9230cSMauro Carvalho Chehab # 642d8e9230cSMauro Carvalho Chehab 643d8e9230cSMauro Carvalho Chehab write_le32(0x60000000); # Type 644d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000000); # ID 645d8e9230cSMauro Carvalho Chehab write_le16(4000); # IF 646d8e9230cSMauro Carvalho Chehab write_le32(192); # Size 647d8e9230cSMauro Carvalho Chehab write_hunk(309240, 192); 648d8e9230cSMauro Carvalho Chehab 649d8e9230cSMauro Carvalho Chehab # 650d8e9230cSMauro Carvalho Chehab # Firmware 54, type: SCODE FW DTV6 ATSC TOYOTA388 HAS IF (0x60410020), IF = 4.08 MHz id: (0000000000000000), size: 192 651d8e9230cSMauro Carvalho Chehab # 652d8e9230cSMauro Carvalho Chehab 653d8e9230cSMauro Carvalho Chehab write_le32(0x60410020); # Type 654d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000000); # ID 655d8e9230cSMauro Carvalho Chehab write_le16(4080); # IF 656d8e9230cSMauro Carvalho Chehab write_le32(192); # Size 657d8e9230cSMauro Carvalho Chehab write_hunk(307128, 192); 658d8e9230cSMauro Carvalho Chehab 659d8e9230cSMauro Carvalho Chehab # 660d8e9230cSMauro Carvalho Chehab # Firmware 55, type: SCODE FW HAS IF (0x60000000), IF = 4.20 MHz id: (0000000000000000), size: 192 661d8e9230cSMauro Carvalho Chehab # 662d8e9230cSMauro Carvalho Chehab 663d8e9230cSMauro Carvalho Chehab write_le32(0x60000000); # Type 664d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000000); # ID 665d8e9230cSMauro Carvalho Chehab write_le16(4200); # IF 666d8e9230cSMauro Carvalho Chehab write_le32(192); # Size 667d8e9230cSMauro Carvalho Chehab write_hunk(308856, 192); 668d8e9230cSMauro Carvalho Chehab 669d8e9230cSMauro Carvalho Chehab # 670d8e9230cSMauro Carvalho Chehab # Firmware 56, type: SCODE FW MONO HAS IF (0x60008000), IF = 4.32 MHz id: NTSC/M Kr (0000000000008000), size: 192 671d8e9230cSMauro Carvalho Chehab # 672d8e9230cSMauro Carvalho Chehab 673d8e9230cSMauro Carvalho Chehab write_le32(0x60008000); # Type 674d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00008000); # ID 675d8e9230cSMauro Carvalho Chehab write_le16(4320); # IF 676d8e9230cSMauro Carvalho Chehab write_le32(192); # Size 677d8e9230cSMauro Carvalho Chehab write_hunk(305208, 192); 678d8e9230cSMauro Carvalho Chehab 679d8e9230cSMauro Carvalho Chehab # 680d8e9230cSMauro Carvalho Chehab # Firmware 57, type: SCODE FW HAS IF (0x60000000), IF = 4.45 MHz id: (0000000000000000), size: 192 681d8e9230cSMauro Carvalho Chehab # 682d8e9230cSMauro Carvalho Chehab 683d8e9230cSMauro Carvalho Chehab write_le32(0x60000000); # Type 684d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000000); # ID 685d8e9230cSMauro Carvalho Chehab write_le16(4450); # IF 686d8e9230cSMauro Carvalho Chehab write_le32(192); # Size 687d8e9230cSMauro Carvalho Chehab write_hunk(309816, 192); 688d8e9230cSMauro Carvalho Chehab 689d8e9230cSMauro Carvalho Chehab # 690d8e9230cSMauro Carvalho Chehab # Firmware 58, type: SCODE FW MTS LCD NOGD MONO IF HAS IF (0x6002b004), IF = 4.50 MHz id: NTSC PAL/M PAL/N (000000000000b700), size: 192 691d8e9230cSMauro Carvalho Chehab # 692d8e9230cSMauro Carvalho Chehab 693d8e9230cSMauro Carvalho Chehab write_le32(0x6002b004); # Type 694d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x0000b700); # ID 695d8e9230cSMauro Carvalho Chehab write_le16(4500); # IF 696d8e9230cSMauro Carvalho Chehab write_le32(192); # Size 697d8e9230cSMauro Carvalho Chehab write_hunk(304824, 192); 698d8e9230cSMauro Carvalho Chehab 699d8e9230cSMauro Carvalho Chehab # 700d8e9230cSMauro Carvalho Chehab # Firmware 59, type: SCODE FW LCD NOGD IF HAS IF (0x60023000), IF = 4.60 MHz id: NTSC/M Kr (0000000000008000), size: 192 701d8e9230cSMauro Carvalho Chehab # 702d8e9230cSMauro Carvalho Chehab 703d8e9230cSMauro Carvalho Chehab write_le32(0x60023000); # Type 704d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00008000); # ID 705d8e9230cSMauro Carvalho Chehab write_le16(4600); # IF 706d8e9230cSMauro Carvalho Chehab write_le32(192); # Size 707d8e9230cSMauro Carvalho Chehab write_hunk(305016, 192); 708d8e9230cSMauro Carvalho Chehab 709d8e9230cSMauro Carvalho Chehab # 710d8e9230cSMauro Carvalho Chehab # Firmware 60, type: SCODE FW DTV6 QAM DTV7 DTV78 DTV8 ZARLINK456 HAS IF (0x620003e0), IF = 4.76 MHz id: (0000000000000000), size: 192 711d8e9230cSMauro Carvalho Chehab # 712d8e9230cSMauro Carvalho Chehab 713d8e9230cSMauro Carvalho Chehab write_le32(0x620003e0); # Type 714d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000000); # ID 715d8e9230cSMauro Carvalho Chehab write_le16(4760); # IF 716d8e9230cSMauro Carvalho Chehab write_le32(192); # Size 717d8e9230cSMauro Carvalho Chehab write_hunk(304440, 192); 718d8e9230cSMauro Carvalho Chehab 719d8e9230cSMauro Carvalho Chehab # 720d8e9230cSMauro Carvalho Chehab # Firmware 61, type: SCODE FW HAS IF (0x60000000), IF = 4.94 MHz id: (0000000000000000), size: 192 721d8e9230cSMauro Carvalho Chehab # 722d8e9230cSMauro Carvalho Chehab 723d8e9230cSMauro Carvalho Chehab write_le32(0x60000000); # Type 724d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000000); # ID 725d8e9230cSMauro Carvalho Chehab write_le16(4940); # IF 726d8e9230cSMauro Carvalho Chehab write_le32(192); # Size 727d8e9230cSMauro Carvalho Chehab write_hunk(308664, 192); 728d8e9230cSMauro Carvalho Chehab 729d8e9230cSMauro Carvalho Chehab # 730d8e9230cSMauro Carvalho Chehab # Firmware 62, type: SCODE FW HAS IF (0x60000000), IF = 5.26 MHz id: (0000000000000000), size: 192 731d8e9230cSMauro Carvalho Chehab # 732d8e9230cSMauro Carvalho Chehab 733d8e9230cSMauro Carvalho Chehab write_le32(0x60000000); # Type 734d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000000); # ID 735d8e9230cSMauro Carvalho Chehab write_le16(5260); # IF 736d8e9230cSMauro Carvalho Chehab write_le32(192); # Size 737d8e9230cSMauro Carvalho Chehab write_hunk(307704, 192); 738d8e9230cSMauro Carvalho Chehab 739d8e9230cSMauro Carvalho Chehab # 740d8e9230cSMauro Carvalho Chehab # Firmware 63, type: SCODE FW MONO HAS IF (0x60008000), IF = 5.32 MHz id: PAL/BG A2 NICAM (0000000f00000007), size: 192 741d8e9230cSMauro Carvalho Chehab # 742d8e9230cSMauro Carvalho Chehab 743d8e9230cSMauro Carvalho Chehab write_le32(0x60008000); # Type 744d8e9230cSMauro Carvalho Chehab write_le64(0x0000000f, 0x00000007); # ID 745d8e9230cSMauro Carvalho Chehab write_le16(5320); # IF 746d8e9230cSMauro Carvalho Chehab write_le32(192); # Size 747d8e9230cSMauro Carvalho Chehab write_hunk(307896, 192); 748d8e9230cSMauro Carvalho Chehab 749d8e9230cSMauro Carvalho Chehab # 750d8e9230cSMauro Carvalho Chehab # Firmware 64, type: SCODE FW DTV7 DTV78 DTV8 DIBCOM52 CHINA HAS IF (0x65000380), IF = 5.40 MHz id: (0000000000000000), size: 192 751d8e9230cSMauro Carvalho Chehab # 752d8e9230cSMauro Carvalho Chehab 753d8e9230cSMauro Carvalho Chehab write_le32(0x65000380); # Type 754d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000000); # ID 755d8e9230cSMauro Carvalho Chehab write_le16(5400); # IF 756d8e9230cSMauro Carvalho Chehab write_le32(192); # Size 757d8e9230cSMauro Carvalho Chehab write_hunk(304248, 192); 758d8e9230cSMauro Carvalho Chehab 759d8e9230cSMauro Carvalho Chehab # 760d8e9230cSMauro Carvalho Chehab # Firmware 65, type: SCODE FW DTV6 ATSC OREN538 HAS IF (0x60110020), IF = 5.58 MHz id: (0000000000000000), size: 192 761d8e9230cSMauro Carvalho Chehab # 762d8e9230cSMauro Carvalho Chehab 763d8e9230cSMauro Carvalho Chehab write_le32(0x60110020); # Type 764d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000000); # ID 765d8e9230cSMauro Carvalho Chehab write_le16(5580); # IF 766d8e9230cSMauro Carvalho Chehab write_le32(192); # Size 767d8e9230cSMauro Carvalho Chehab write_hunk(306744, 192); 768d8e9230cSMauro Carvalho Chehab 769d8e9230cSMauro Carvalho Chehab # 770d8e9230cSMauro Carvalho Chehab # Firmware 66, type: SCODE FW HAS IF (0x60000000), IF = 5.64 MHz id: PAL/BG A2 (0000000300000007), size: 192 771d8e9230cSMauro Carvalho Chehab # 772d8e9230cSMauro Carvalho Chehab 773d8e9230cSMauro Carvalho Chehab write_le32(0x60000000); # Type 774d8e9230cSMauro Carvalho Chehab write_le64(0x00000003, 0x00000007); # ID 775d8e9230cSMauro Carvalho Chehab write_le16(5640); # IF 776d8e9230cSMauro Carvalho Chehab write_le32(192); # Size 777d8e9230cSMauro Carvalho Chehab write_hunk(305592, 192); 778d8e9230cSMauro Carvalho Chehab 779d8e9230cSMauro Carvalho Chehab # 780d8e9230cSMauro Carvalho Chehab # Firmware 67, type: SCODE FW HAS IF (0x60000000), IF = 5.74 MHz id: PAL/BG NICAM (0000000c00000007), size: 192 781d8e9230cSMauro Carvalho Chehab # 782d8e9230cSMauro Carvalho Chehab 783d8e9230cSMauro Carvalho Chehab write_le32(0x60000000); # Type 784d8e9230cSMauro Carvalho Chehab write_le64(0x0000000c, 0x00000007); # ID 785d8e9230cSMauro Carvalho Chehab write_le16(5740); # IF 786d8e9230cSMauro Carvalho Chehab write_le32(192); # Size 787d8e9230cSMauro Carvalho Chehab write_hunk(305784, 192); 788d8e9230cSMauro Carvalho Chehab 789d8e9230cSMauro Carvalho Chehab # 790d8e9230cSMauro Carvalho Chehab # Firmware 68, type: SCODE FW HAS IF (0x60000000), IF = 5.90 MHz id: (0000000000000000), size: 192 791d8e9230cSMauro Carvalho Chehab # 792d8e9230cSMauro Carvalho Chehab 793d8e9230cSMauro Carvalho Chehab write_le32(0x60000000); # Type 794d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000000); # ID 795d8e9230cSMauro Carvalho Chehab write_le16(5900); # IF 796d8e9230cSMauro Carvalho Chehab write_le32(192); # Size 797d8e9230cSMauro Carvalho Chehab write_hunk(307512, 192); 798d8e9230cSMauro Carvalho Chehab 799d8e9230cSMauro Carvalho Chehab # 800d8e9230cSMauro Carvalho Chehab # Firmware 69, type: SCODE FW MONO HAS IF (0x60008000), IF = 6.00 MHz id: PAL/DK PAL/I SECAM/K3 SECAM/L SECAM/Lc NICAM (0000000c04c000f0), size: 192 801d8e9230cSMauro Carvalho Chehab # 802d8e9230cSMauro Carvalho Chehab 803d8e9230cSMauro Carvalho Chehab write_le32(0x60008000); # Type 804d8e9230cSMauro Carvalho Chehab write_le64(0x0000000c, 0x04c000f0); # ID 805d8e9230cSMauro Carvalho Chehab write_le16(6000); # IF 806d8e9230cSMauro Carvalho Chehab write_le32(192); # Size 807d8e9230cSMauro Carvalho Chehab write_hunk(305576, 192); 808d8e9230cSMauro Carvalho Chehab 809d8e9230cSMauro Carvalho Chehab # 810d8e9230cSMauro Carvalho Chehab # Firmware 70, type: SCODE FW DTV6 QAM ATSC LG60 F6MHZ HAS IF (0x68050060), IF = 6.20 MHz id: (0000000000000000), size: 192 811d8e9230cSMauro Carvalho Chehab # 812d8e9230cSMauro Carvalho Chehab 813d8e9230cSMauro Carvalho Chehab write_le32(0x68050060); # Type 814d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000000); # ID 815d8e9230cSMauro Carvalho Chehab write_le16(6200); # IF 816d8e9230cSMauro Carvalho Chehab write_le32(192); # Size 817d8e9230cSMauro Carvalho Chehab write_hunk(306552, 192); 818d8e9230cSMauro Carvalho Chehab 819d8e9230cSMauro Carvalho Chehab # 820d8e9230cSMauro Carvalho Chehab # Firmware 71, type: SCODE FW HAS IF (0x60000000), IF = 6.24 MHz id: PAL/I (0000000000000010), size: 192 821d8e9230cSMauro Carvalho Chehab # 822d8e9230cSMauro Carvalho Chehab 823d8e9230cSMauro Carvalho Chehab write_le32(0x60000000); # Type 824d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000010); # ID 825d8e9230cSMauro Carvalho Chehab write_le16(6240); # IF 826d8e9230cSMauro Carvalho Chehab write_le32(192); # Size 827d8e9230cSMauro Carvalho Chehab write_hunk(305400, 192); 828d8e9230cSMauro Carvalho Chehab 829d8e9230cSMauro Carvalho Chehab # 830d8e9230cSMauro Carvalho Chehab # Firmware 72, type: SCODE FW MONO HAS IF (0x60008000), IF = 6.32 MHz id: SECAM/K1 (0000000000200000), size: 192 831d8e9230cSMauro Carvalho Chehab # 832d8e9230cSMauro Carvalho Chehab 833d8e9230cSMauro Carvalho Chehab write_le32(0x60008000); # Type 834d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00200000); # ID 835d8e9230cSMauro Carvalho Chehab write_le16(6320); # IF 836d8e9230cSMauro Carvalho Chehab write_le32(192); # Size 837d8e9230cSMauro Carvalho Chehab write_hunk(308472, 192); 838d8e9230cSMauro Carvalho Chehab 839d8e9230cSMauro Carvalho Chehab # 840d8e9230cSMauro Carvalho Chehab # Firmware 73, type: SCODE FW HAS IF (0x60000000), IF = 6.34 MHz id: SECAM/K1 (0000000000200000), size: 192 841d8e9230cSMauro Carvalho Chehab # 842d8e9230cSMauro Carvalho Chehab 843d8e9230cSMauro Carvalho Chehab write_le32(0x60000000); # Type 844d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00200000); # ID 845d8e9230cSMauro Carvalho Chehab write_le16(6340); # IF 846d8e9230cSMauro Carvalho Chehab write_le32(192); # Size 847d8e9230cSMauro Carvalho Chehab write_hunk(306360, 192); 848d8e9230cSMauro Carvalho Chehab 849d8e9230cSMauro Carvalho Chehab # 850d8e9230cSMauro Carvalho Chehab # Firmware 74, type: SCODE FW MONO HAS IF (0x60008000), IF = 6.50 MHz id: PAL/DK SECAM/K3 SECAM/L NICAM (0000000c044000e0), size: 192 851d8e9230cSMauro Carvalho Chehab # 852d8e9230cSMauro Carvalho Chehab 853d8e9230cSMauro Carvalho Chehab write_le32(0x60008000); # Type 854d8e9230cSMauro Carvalho Chehab write_le64(0x0000000c, 0x044000e0); # ID 855d8e9230cSMauro Carvalho Chehab write_le16(6500); # IF 856d8e9230cSMauro Carvalho Chehab write_le32(192); # Size 857d8e9230cSMauro Carvalho Chehab write_hunk(308280, 192); 858d8e9230cSMauro Carvalho Chehab 859d8e9230cSMauro Carvalho Chehab # 860d8e9230cSMauro Carvalho Chehab # Firmware 75, type: SCODE FW DTV6 ATSC ATI638 HAS IF (0x60090020), IF = 6.58 MHz id: (0000000000000000), size: 192 861d8e9230cSMauro Carvalho Chehab # 862d8e9230cSMauro Carvalho Chehab 863d8e9230cSMauro Carvalho Chehab write_le32(0x60090020); # Type 864d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000000); # ID 865d8e9230cSMauro Carvalho Chehab write_le16(6580); # IF 866d8e9230cSMauro Carvalho Chehab write_le32(192); # Size 867d8e9230cSMauro Carvalho Chehab write_hunk(304632, 192); 868d8e9230cSMauro Carvalho Chehab 869d8e9230cSMauro Carvalho Chehab # 870d8e9230cSMauro Carvalho Chehab # Firmware 76, type: SCODE FW HAS IF (0x60000000), IF = 6.60 MHz id: PAL/DK A2 (00000003000000e0), size: 192 871d8e9230cSMauro Carvalho Chehab # 872d8e9230cSMauro Carvalho Chehab 873d8e9230cSMauro Carvalho Chehab write_le32(0x60000000); # Type 874d8e9230cSMauro Carvalho Chehab write_le64(0x00000003, 0x000000e0); # ID 875d8e9230cSMauro Carvalho Chehab write_le16(6600); # IF 876d8e9230cSMauro Carvalho Chehab write_le32(192); # Size 877d8e9230cSMauro Carvalho Chehab write_hunk(306168, 192); 878d8e9230cSMauro Carvalho Chehab 879d8e9230cSMauro Carvalho Chehab # 880d8e9230cSMauro Carvalho Chehab # Firmware 77, type: SCODE FW MONO HAS IF (0x60008000), IF = 6.68 MHz id: PAL/DK A2 (00000003000000e0), size: 192 881d8e9230cSMauro Carvalho Chehab # 882d8e9230cSMauro Carvalho Chehab 883d8e9230cSMauro Carvalho Chehab write_le32(0x60008000); # Type 884d8e9230cSMauro Carvalho Chehab write_le64(0x00000003, 0x000000e0); # ID 885d8e9230cSMauro Carvalho Chehab write_le16(6680); # IF 886d8e9230cSMauro Carvalho Chehab write_le32(192); # Size 887d8e9230cSMauro Carvalho Chehab write_hunk(308088, 192); 888d8e9230cSMauro Carvalho Chehab 889d8e9230cSMauro Carvalho Chehab # 890d8e9230cSMauro Carvalho Chehab # Firmware 78, type: SCODE FW DTV6 ATSC TOYOTA794 HAS IF (0x60810020), IF = 8.14 MHz id: (0000000000000000), size: 192 891d8e9230cSMauro Carvalho Chehab # 892d8e9230cSMauro Carvalho Chehab 893d8e9230cSMauro Carvalho Chehab write_le32(0x60810020); # Type 894d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000000); # ID 895d8e9230cSMauro Carvalho Chehab write_le16(8140); # IF 896d8e9230cSMauro Carvalho Chehab write_le32(192); # Size 897d8e9230cSMauro Carvalho Chehab write_hunk(307320, 192); 898d8e9230cSMauro Carvalho Chehab 899d8e9230cSMauro Carvalho Chehab # 900d8e9230cSMauro Carvalho Chehab # Firmware 79, type: SCODE FW HAS IF (0x60000000), IF = 8.20 MHz id: (0000000000000000), size: 192 901d8e9230cSMauro Carvalho Chehab # 902d8e9230cSMauro Carvalho Chehab 903d8e9230cSMauro Carvalho Chehab# write_le32(0x60000000); # Type 904d8e9230cSMauro Carvalho Chehab# write_le64(0x00000000, 0x00000000); # ID 905d8e9230cSMauro Carvalho Chehab# write_le16(8200); # IF 906d8e9230cSMauro Carvalho Chehab# write_le32(192); # Size 907d8e9230cSMauro Carvalho Chehab# write_hunk(308088, 192); 908d8e9230cSMauro Carvalho Chehab} 909d8e9230cSMauro Carvalho Chehab 910d8e9230cSMauro Carvalho Chehabsub main_firmware_27($$$$) 911d8e9230cSMauro Carvalho Chehab{ 912d8e9230cSMauro Carvalho Chehab my $out; 913d8e9230cSMauro Carvalho Chehab my $j=0; 914d8e9230cSMauro Carvalho Chehab my $outfile = shift; 915d8e9230cSMauro Carvalho Chehab my $name = shift; 916d8e9230cSMauro Carvalho Chehab my $version = shift; 917d8e9230cSMauro Carvalho Chehab my $nr_desc = shift; 918d8e9230cSMauro Carvalho Chehab 919d8e9230cSMauro Carvalho Chehab for ($j = length($name); $j <32; $j++) { 920d8e9230cSMauro Carvalho Chehab $name = $name.chr(0); 921d8e9230cSMauro Carvalho Chehab } 922d8e9230cSMauro Carvalho Chehab 923d8e9230cSMauro Carvalho Chehab open OUTFILE, ">$outfile"; 924d8e9230cSMauro Carvalho Chehab syswrite(OUTFILE, $name); 925d8e9230cSMauro Carvalho Chehab write_le16($version); 926d8e9230cSMauro Carvalho Chehab write_le16($nr_desc); 927d8e9230cSMauro Carvalho Chehab 928d8e9230cSMauro Carvalho Chehab # 929d8e9230cSMauro Carvalho Chehab # Firmware 0, type: BASE FW F8MHZ (0x00000003), id: (0000000000000000), size: 8718 930d8e9230cSMauro Carvalho Chehab # 931d8e9230cSMauro Carvalho Chehab 932d8e9230cSMauro Carvalho Chehab write_le32(0x00000003); # Type 933d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000000); # ID 934d8e9230cSMauro Carvalho Chehab write_le32(8718); # Size 935d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(813432, 8718); 936d8e9230cSMauro Carvalho Chehab 937d8e9230cSMauro Carvalho Chehab # 938d8e9230cSMauro Carvalho Chehab # Firmware 1, type: BASE FW F8MHZ MTS (0x00000007), id: (0000000000000000), size: 8712 939d8e9230cSMauro Carvalho Chehab # 940d8e9230cSMauro Carvalho Chehab 941d8e9230cSMauro Carvalho Chehab write_le32(0x00000007); # Type 942d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000000); # ID 943d8e9230cSMauro Carvalho Chehab write_le32(8712); # Size 944d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(822152, 8712); 945d8e9230cSMauro Carvalho Chehab 946d8e9230cSMauro Carvalho Chehab # 947d8e9230cSMauro Carvalho Chehab # Firmware 2, type: BASE FW FM (0x00000401), id: (0000000000000000), size: 8562 948d8e9230cSMauro Carvalho Chehab # 949d8e9230cSMauro Carvalho Chehab 950d8e9230cSMauro Carvalho Chehab write_le32(0x00000401); # Type 951d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000000); # ID 952d8e9230cSMauro Carvalho Chehab write_le32(8562); # Size 953d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(830872, 8562); 954d8e9230cSMauro Carvalho Chehab 955d8e9230cSMauro Carvalho Chehab # 956d8e9230cSMauro Carvalho Chehab # Firmware 3, type: BASE FW FM INPUT1 (0x00000c01), id: (0000000000000000), size: 8576 957d8e9230cSMauro Carvalho Chehab # 958d8e9230cSMauro Carvalho Chehab 959d8e9230cSMauro Carvalho Chehab write_le32(0x00000c01); # Type 960d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000000); # ID 961d8e9230cSMauro Carvalho Chehab write_le32(8576); # Size 962d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(839440, 8576); 963d8e9230cSMauro Carvalho Chehab 964d8e9230cSMauro Carvalho Chehab # 965d8e9230cSMauro Carvalho Chehab # Firmware 4, type: BASE FW (0x00000001), id: (0000000000000000), size: 8706 966d8e9230cSMauro Carvalho Chehab # 967d8e9230cSMauro Carvalho Chehab 968d8e9230cSMauro Carvalho Chehab write_le32(0x00000001); # Type 969d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000000); # ID 970d8e9230cSMauro Carvalho Chehab write_le32(8706); # Size 971d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(848024, 8706); 972d8e9230cSMauro Carvalho Chehab 973d8e9230cSMauro Carvalho Chehab # 974d8e9230cSMauro Carvalho Chehab # Firmware 5, type: BASE FW MTS (0x00000005), id: (0000000000000000), size: 8682 975d8e9230cSMauro Carvalho Chehab # 976d8e9230cSMauro Carvalho Chehab 977d8e9230cSMauro Carvalho Chehab write_le32(0x00000005); # Type 978d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000000); # ID 979d8e9230cSMauro Carvalho Chehab write_le32(8682); # Size 980d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(856736, 8682); 981d8e9230cSMauro Carvalho Chehab 982d8e9230cSMauro Carvalho Chehab # 983d8e9230cSMauro Carvalho Chehab # Firmware 6, type: STD FW (0x00000000), id: PAL/BG A2/A (0000000100000007), size: 161 984d8e9230cSMauro Carvalho Chehab # 985d8e9230cSMauro Carvalho Chehab 986d8e9230cSMauro Carvalho Chehab write_le32(0x00000000); # Type 987d8e9230cSMauro Carvalho Chehab write_le64(0x00000001, 0x00000007); # ID 988d8e9230cSMauro Carvalho Chehab write_le32(161); # Size 989d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(865424, 161); 990d8e9230cSMauro Carvalho Chehab 991d8e9230cSMauro Carvalho Chehab # 992d8e9230cSMauro Carvalho Chehab # Firmware 7, type: STD FW MTS (0x00000004), id: PAL/BG A2/A (0000000100000007), size: 169 993d8e9230cSMauro Carvalho Chehab # 994d8e9230cSMauro Carvalho Chehab 995d8e9230cSMauro Carvalho Chehab write_le32(0x00000004); # Type 996d8e9230cSMauro Carvalho Chehab write_le64(0x00000001, 0x00000007); # ID 997d8e9230cSMauro Carvalho Chehab write_le32(169); # Size 998d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(865592, 169); 999d8e9230cSMauro Carvalho Chehab 1000d8e9230cSMauro Carvalho Chehab # 1001d8e9230cSMauro Carvalho Chehab # Firmware 8, type: STD FW (0x00000000), id: PAL/BG A2/B (0000000200000007), size: 161 1002d8e9230cSMauro Carvalho Chehab # 1003d8e9230cSMauro Carvalho Chehab 1004d8e9230cSMauro Carvalho Chehab write_le32(0x00000000); # Type 1005d8e9230cSMauro Carvalho Chehab write_le64(0x00000002, 0x00000007); # ID 1006d8e9230cSMauro Carvalho Chehab write_le32(161); # Size 1007d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(865424, 161); 1008d8e9230cSMauro Carvalho Chehab 1009d8e9230cSMauro Carvalho Chehab # 1010d8e9230cSMauro Carvalho Chehab # Firmware 9, type: STD FW MTS (0x00000004), id: PAL/BG A2/B (0000000200000007), size: 169 1011d8e9230cSMauro Carvalho Chehab # 1012d8e9230cSMauro Carvalho Chehab 1013d8e9230cSMauro Carvalho Chehab write_le32(0x00000004); # Type 1014d8e9230cSMauro Carvalho Chehab write_le64(0x00000002, 0x00000007); # ID 1015d8e9230cSMauro Carvalho Chehab write_le32(169); # Size 1016d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(865592, 169); 1017d8e9230cSMauro Carvalho Chehab 1018d8e9230cSMauro Carvalho Chehab # 1019d8e9230cSMauro Carvalho Chehab # Firmware 10, type: STD FW (0x00000000), id: PAL/BG NICAM/A (0000000400000007), size: 161 1020d8e9230cSMauro Carvalho Chehab # 1021d8e9230cSMauro Carvalho Chehab 1022d8e9230cSMauro Carvalho Chehab write_le32(0x00000000); # Type 1023d8e9230cSMauro Carvalho Chehab write_le64(0x00000004, 0x00000007); # ID 1024d8e9230cSMauro Carvalho Chehab write_le32(161); # Size 1025d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(866112, 161); 1026d8e9230cSMauro Carvalho Chehab 1027d8e9230cSMauro Carvalho Chehab # 1028d8e9230cSMauro Carvalho Chehab # Firmware 11, type: STD FW MTS (0x00000004), id: PAL/BG NICAM/A (0000000400000007), size: 169 1029d8e9230cSMauro Carvalho Chehab # 1030d8e9230cSMauro Carvalho Chehab 1031d8e9230cSMauro Carvalho Chehab write_le32(0x00000004); # Type 1032d8e9230cSMauro Carvalho Chehab write_le64(0x00000004, 0x00000007); # ID 1033d8e9230cSMauro Carvalho Chehab write_le32(169); # Size 1034d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(866280, 169); 1035d8e9230cSMauro Carvalho Chehab 1036d8e9230cSMauro Carvalho Chehab # 1037d8e9230cSMauro Carvalho Chehab # Firmware 12, type: STD FW (0x00000000), id: PAL/BG NICAM/B (0000000800000007), size: 161 1038d8e9230cSMauro Carvalho Chehab # 1039d8e9230cSMauro Carvalho Chehab 1040d8e9230cSMauro Carvalho Chehab write_le32(0x00000000); # Type 1041d8e9230cSMauro Carvalho Chehab write_le64(0x00000008, 0x00000007); # ID 1042d8e9230cSMauro Carvalho Chehab write_le32(161); # Size 1043d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(866112, 161); 1044d8e9230cSMauro Carvalho Chehab 1045d8e9230cSMauro Carvalho Chehab # 1046d8e9230cSMauro Carvalho Chehab # Firmware 13, type: STD FW MTS (0x00000004), id: PAL/BG NICAM/B (0000000800000007), size: 169 1047d8e9230cSMauro Carvalho Chehab # 1048d8e9230cSMauro Carvalho Chehab 1049d8e9230cSMauro Carvalho Chehab write_le32(0x00000004); # Type 1050d8e9230cSMauro Carvalho Chehab write_le64(0x00000008, 0x00000007); # ID 1051d8e9230cSMauro Carvalho Chehab write_le32(169); # Size 1052d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(866280, 169); 1053d8e9230cSMauro Carvalho Chehab 1054d8e9230cSMauro Carvalho Chehab # 1055d8e9230cSMauro Carvalho Chehab # Firmware 14, type: STD FW (0x00000000), id: PAL/DK A2 (00000003000000e0), size: 161 1056d8e9230cSMauro Carvalho Chehab # 1057d8e9230cSMauro Carvalho Chehab 1058d8e9230cSMauro Carvalho Chehab write_le32(0x00000000); # Type 1059d8e9230cSMauro Carvalho Chehab write_le64(0x00000003, 0x000000e0); # ID 1060d8e9230cSMauro Carvalho Chehab write_le32(161); # Size 1061d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(866800, 161); 1062d8e9230cSMauro Carvalho Chehab 1063d8e9230cSMauro Carvalho Chehab # 1064d8e9230cSMauro Carvalho Chehab # Firmware 15, type: STD FW MTS (0x00000004), id: PAL/DK A2 (00000003000000e0), size: 169 1065d8e9230cSMauro Carvalho Chehab # 1066d8e9230cSMauro Carvalho Chehab 1067d8e9230cSMauro Carvalho Chehab write_le32(0x00000004); # Type 1068d8e9230cSMauro Carvalho Chehab write_le64(0x00000003, 0x000000e0); # ID 1069d8e9230cSMauro Carvalho Chehab write_le32(169); # Size 1070d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(866968, 169); 1071d8e9230cSMauro Carvalho Chehab 1072d8e9230cSMauro Carvalho Chehab # 1073d8e9230cSMauro Carvalho Chehab # Firmware 16, type: STD FW (0x00000000), id: PAL/DK NICAM (0000000c000000e0), size: 161 1074d8e9230cSMauro Carvalho Chehab # 1075d8e9230cSMauro Carvalho Chehab 1076d8e9230cSMauro Carvalho Chehab write_le32(0x00000000); # Type 1077d8e9230cSMauro Carvalho Chehab write_le64(0x0000000c, 0x000000e0); # ID 1078d8e9230cSMauro Carvalho Chehab write_le32(161); # Size 1079d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(867144, 161); 1080d8e9230cSMauro Carvalho Chehab 1081d8e9230cSMauro Carvalho Chehab # 1082d8e9230cSMauro Carvalho Chehab # Firmware 17, type: STD FW MTS (0x00000004), id: PAL/DK NICAM (0000000c000000e0), size: 169 1083d8e9230cSMauro Carvalho Chehab # 1084d8e9230cSMauro Carvalho Chehab 1085d8e9230cSMauro Carvalho Chehab write_le32(0x00000004); # Type 1086d8e9230cSMauro Carvalho Chehab write_le64(0x0000000c, 0x000000e0); # ID 1087d8e9230cSMauro Carvalho Chehab write_le32(169); # Size 1088d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(867312, 169); 1089d8e9230cSMauro Carvalho Chehab 1090d8e9230cSMauro Carvalho Chehab # 1091d8e9230cSMauro Carvalho Chehab # Firmware 18, type: STD FW (0x00000000), id: SECAM/K1 (0000000000200000), size: 161 1092d8e9230cSMauro Carvalho Chehab # 1093d8e9230cSMauro Carvalho Chehab 1094d8e9230cSMauro Carvalho Chehab write_le32(0x00000000); # Type 1095d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00200000); # ID 1096d8e9230cSMauro Carvalho Chehab write_le32(161); # Size 1097d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(867488, 161); 1098d8e9230cSMauro Carvalho Chehab 1099d8e9230cSMauro Carvalho Chehab # 1100d8e9230cSMauro Carvalho Chehab # Firmware 19, type: STD FW MTS (0x00000004), id: SECAM/K1 (0000000000200000), size: 169 1101d8e9230cSMauro Carvalho Chehab # 1102d8e9230cSMauro Carvalho Chehab 1103d8e9230cSMauro Carvalho Chehab write_le32(0x00000004); # Type 1104d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00200000); # ID 1105d8e9230cSMauro Carvalho Chehab write_le32(169); # Size 1106d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(867656, 169); 1107d8e9230cSMauro Carvalho Chehab 1108d8e9230cSMauro Carvalho Chehab # 1109d8e9230cSMauro Carvalho Chehab # Firmware 20, type: STD FW (0x00000000), id: SECAM/K3 (0000000004000000), size: 161 1110d8e9230cSMauro Carvalho Chehab # 1111d8e9230cSMauro Carvalho Chehab 1112d8e9230cSMauro Carvalho Chehab write_le32(0x00000000); # Type 1113d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x04000000); # ID 1114d8e9230cSMauro Carvalho Chehab write_le32(161); # Size 1115d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(867832, 161); 1116d8e9230cSMauro Carvalho Chehab 1117d8e9230cSMauro Carvalho Chehab # 1118d8e9230cSMauro Carvalho Chehab # Firmware 21, type: STD FW MTS (0x00000004), id: SECAM/K3 (0000000004000000), size: 169 1119d8e9230cSMauro Carvalho Chehab # 1120d8e9230cSMauro Carvalho Chehab 1121d8e9230cSMauro Carvalho Chehab write_le32(0x00000004); # Type 1122d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x04000000); # ID 1123d8e9230cSMauro Carvalho Chehab write_le32(169); # Size 1124d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(868000, 169); 1125d8e9230cSMauro Carvalho Chehab 1126d8e9230cSMauro Carvalho Chehab # 1127d8e9230cSMauro Carvalho Chehab # Firmware 22, type: STD FW D2633 DTV6 ATSC (0x00010030), id: (0000000000000000), size: 149 1128d8e9230cSMauro Carvalho Chehab # 1129d8e9230cSMauro Carvalho Chehab 1130d8e9230cSMauro Carvalho Chehab write_le32(0x00010030); # Type 1131d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000000); # ID 1132d8e9230cSMauro Carvalho Chehab write_le32(149); # Size 1133d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(868176, 149); 1134d8e9230cSMauro Carvalho Chehab 1135d8e9230cSMauro Carvalho Chehab # 1136d8e9230cSMauro Carvalho Chehab # Firmware 23, type: STD FW D2620 DTV6 QAM (0x00000068), id: (0000000000000000), size: 149 1137d8e9230cSMauro Carvalho Chehab # 1138d8e9230cSMauro Carvalho Chehab 1139d8e9230cSMauro Carvalho Chehab write_le32(0x00000068); # Type 1140d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000000); # ID 1141d8e9230cSMauro Carvalho Chehab write_le32(149); # Size 1142d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(868336, 149); 1143d8e9230cSMauro Carvalho Chehab 1144d8e9230cSMauro Carvalho Chehab # 1145d8e9230cSMauro Carvalho Chehab # Firmware 24, type: STD FW D2633 DTV6 QAM (0x00000070), id: (0000000000000000), size: 149 1146d8e9230cSMauro Carvalho Chehab # 1147d8e9230cSMauro Carvalho Chehab 1148d8e9230cSMauro Carvalho Chehab write_le32(0x00000070); # Type 1149d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000000); # ID 1150d8e9230cSMauro Carvalho Chehab write_le32(149); # Size 1151d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(868488, 149); 1152d8e9230cSMauro Carvalho Chehab 1153d8e9230cSMauro Carvalho Chehab # 1154d8e9230cSMauro Carvalho Chehab # Firmware 25, type: STD FW D2620 DTV7 (0x00000088), id: (0000000000000000), size: 149 1155d8e9230cSMauro Carvalho Chehab # 1156d8e9230cSMauro Carvalho Chehab 1157d8e9230cSMauro Carvalho Chehab write_le32(0x00000088); # Type 1158d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000000); # ID 1159d8e9230cSMauro Carvalho Chehab write_le32(149); # Size 1160d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(868648, 149); 1161d8e9230cSMauro Carvalho Chehab 1162d8e9230cSMauro Carvalho Chehab # 1163d8e9230cSMauro Carvalho Chehab # Firmware 26, type: STD FW D2633 DTV7 (0x00000090), id: (0000000000000000), size: 149 1164d8e9230cSMauro Carvalho Chehab # 1165d8e9230cSMauro Carvalho Chehab 1166d8e9230cSMauro Carvalho Chehab write_le32(0x00000090); # Type 1167d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000000); # ID 1168d8e9230cSMauro Carvalho Chehab write_le32(149); # Size 1169d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(868800, 149); 1170d8e9230cSMauro Carvalho Chehab 1171d8e9230cSMauro Carvalho Chehab # 1172d8e9230cSMauro Carvalho Chehab # Firmware 27, type: STD FW D2620 DTV78 (0x00000108), id: (0000000000000000), size: 149 1173d8e9230cSMauro Carvalho Chehab # 1174d8e9230cSMauro Carvalho Chehab 1175d8e9230cSMauro Carvalho Chehab write_le32(0x00000108); # Type 1176d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000000); # ID 1177d8e9230cSMauro Carvalho Chehab write_le32(149); # Size 1178d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(868960, 149); 1179d8e9230cSMauro Carvalho Chehab 1180d8e9230cSMauro Carvalho Chehab # 1181d8e9230cSMauro Carvalho Chehab # Firmware 28, type: STD FW D2633 DTV78 (0x00000110), id: (0000000000000000), size: 149 1182d8e9230cSMauro Carvalho Chehab # 1183d8e9230cSMauro Carvalho Chehab 1184d8e9230cSMauro Carvalho Chehab write_le32(0x00000110); # Type 1185d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000000); # ID 1186d8e9230cSMauro Carvalho Chehab write_le32(149); # Size 1187d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(869112, 149); 1188d8e9230cSMauro Carvalho Chehab 1189d8e9230cSMauro Carvalho Chehab # 1190d8e9230cSMauro Carvalho Chehab # Firmware 29, type: STD FW D2620 DTV8 (0x00000208), id: (0000000000000000), size: 149 1191d8e9230cSMauro Carvalho Chehab # 1192d8e9230cSMauro Carvalho Chehab 1193d8e9230cSMauro Carvalho Chehab write_le32(0x00000208); # Type 1194d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000000); # ID 1195d8e9230cSMauro Carvalho Chehab write_le32(149); # Size 1196d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(868648, 149); 1197d8e9230cSMauro Carvalho Chehab 1198d8e9230cSMauro Carvalho Chehab # 1199d8e9230cSMauro Carvalho Chehab # Firmware 30, type: STD FW D2633 DTV8 (0x00000210), id: (0000000000000000), size: 149 1200d8e9230cSMauro Carvalho Chehab # 1201d8e9230cSMauro Carvalho Chehab 1202d8e9230cSMauro Carvalho Chehab write_le32(0x00000210); # Type 1203d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000000); # ID 1204d8e9230cSMauro Carvalho Chehab write_le32(149); # Size 1205d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(868800, 149); 1206d8e9230cSMauro Carvalho Chehab 1207d8e9230cSMauro Carvalho Chehab # 1208d8e9230cSMauro Carvalho Chehab # Firmware 31, type: STD FW FM (0x00000400), id: (0000000000000000), size: 135 1209d8e9230cSMauro Carvalho Chehab # 1210d8e9230cSMauro Carvalho Chehab 1211d8e9230cSMauro Carvalho Chehab write_le32(0x00000400); # Type 1212d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000000); # ID 1213d8e9230cSMauro Carvalho Chehab write_le32(135); # Size 1214d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(869584, 135); 1215d8e9230cSMauro Carvalho Chehab 1216d8e9230cSMauro Carvalho Chehab # 1217d8e9230cSMauro Carvalho Chehab # Firmware 32, type: STD FW (0x00000000), id: PAL/I (0000000000000010), size: 161 1218d8e9230cSMauro Carvalho Chehab # 1219d8e9230cSMauro Carvalho Chehab 1220d8e9230cSMauro Carvalho Chehab write_le32(0x00000000); # Type 1221d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000010); # ID 1222d8e9230cSMauro Carvalho Chehab write_le32(161); # Size 1223d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(869728, 161); 1224d8e9230cSMauro Carvalho Chehab 1225d8e9230cSMauro Carvalho Chehab # 1226d8e9230cSMauro Carvalho Chehab # Firmware 33, type: STD FW MTS (0x00000004), id: PAL/I (0000000000000010), size: 169 1227d8e9230cSMauro Carvalho Chehab # 1228d8e9230cSMauro Carvalho Chehab 1229d8e9230cSMauro Carvalho Chehab write_le32(0x00000004); # Type 1230d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000010); # ID 1231d8e9230cSMauro Carvalho Chehab write_le32(169); # Size 1232d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(869896, 169); 1233d8e9230cSMauro Carvalho Chehab 1234d8e9230cSMauro Carvalho Chehab # 1235d8e9230cSMauro Carvalho Chehab # Firmware 34, type: STD FW (0x00000000), id: SECAM/L AM (0000001000400000), size: 169 1236d8e9230cSMauro Carvalho Chehab # 1237d8e9230cSMauro Carvalho Chehab 1238d8e9230cSMauro Carvalho Chehab write_le32(0x00000000); # Type 1239d8e9230cSMauro Carvalho Chehab write_le64(0x00000010, 0x00400000); # ID 1240d8e9230cSMauro Carvalho Chehab write_le32(169); # Size 1241d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(870072, 169); 1242d8e9230cSMauro Carvalho Chehab 1243d8e9230cSMauro Carvalho Chehab # 1244d8e9230cSMauro Carvalho Chehab # Firmware 35, type: STD FW (0x00000000), id: SECAM/L NICAM (0000000c00400000), size: 161 1245d8e9230cSMauro Carvalho Chehab # 1246d8e9230cSMauro Carvalho Chehab 1247d8e9230cSMauro Carvalho Chehab write_le32(0x00000000); # Type 1248d8e9230cSMauro Carvalho Chehab write_le64(0x0000000c, 0x00400000); # ID 1249d8e9230cSMauro Carvalho Chehab write_le32(161); # Size 1250d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(870248, 161); 1251d8e9230cSMauro Carvalho Chehab 1252d8e9230cSMauro Carvalho Chehab # 1253d8e9230cSMauro Carvalho Chehab # Firmware 36, type: STD FW (0x00000000), id: SECAM/Lc (0000000000800000), size: 161 1254d8e9230cSMauro Carvalho Chehab # 1255d8e9230cSMauro Carvalho Chehab 1256d8e9230cSMauro Carvalho Chehab write_le32(0x00000000); # Type 1257d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00800000); # ID 1258d8e9230cSMauro Carvalho Chehab write_le32(161); # Size 1259d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(870416, 161); 1260d8e9230cSMauro Carvalho Chehab 1261d8e9230cSMauro Carvalho Chehab # 1262d8e9230cSMauro Carvalho Chehab # Firmware 37, type: STD FW (0x00000000), id: NTSC/M Kr (0000000000008000), size: 161 1263d8e9230cSMauro Carvalho Chehab # 1264d8e9230cSMauro Carvalho Chehab 1265d8e9230cSMauro Carvalho Chehab write_le32(0x00000000); # Type 1266d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00008000); # ID 1267d8e9230cSMauro Carvalho Chehab write_le32(161); # Size 1268d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(870584, 161); 1269d8e9230cSMauro Carvalho Chehab 1270d8e9230cSMauro Carvalho Chehab # 1271d8e9230cSMauro Carvalho Chehab # Firmware 38, type: STD FW LCD (0x00001000), id: NTSC/M Kr (0000000000008000), size: 161 1272d8e9230cSMauro Carvalho Chehab # 1273d8e9230cSMauro Carvalho Chehab 1274d8e9230cSMauro Carvalho Chehab write_le32(0x00001000); # Type 1275d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00008000); # ID 1276d8e9230cSMauro Carvalho Chehab write_le32(161); # Size 1277d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(870752, 161); 1278d8e9230cSMauro Carvalho Chehab 1279d8e9230cSMauro Carvalho Chehab # 1280d8e9230cSMauro Carvalho Chehab # Firmware 39, type: STD FW LCD NOGD (0x00003000), id: NTSC/M Kr (0000000000008000), size: 161 1281d8e9230cSMauro Carvalho Chehab # 1282d8e9230cSMauro Carvalho Chehab 1283d8e9230cSMauro Carvalho Chehab write_le32(0x00003000); # Type 1284d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00008000); # ID 1285d8e9230cSMauro Carvalho Chehab write_le32(161); # Size 1286d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(870920, 161); 1287d8e9230cSMauro Carvalho Chehab 1288d8e9230cSMauro Carvalho Chehab # 1289d8e9230cSMauro Carvalho Chehab # Firmware 40, type: STD FW MTS (0x00000004), id: NTSC/M Kr (0000000000008000), size: 169 1290d8e9230cSMauro Carvalho Chehab # 1291d8e9230cSMauro Carvalho Chehab 1292d8e9230cSMauro Carvalho Chehab write_le32(0x00000004); # Type 1293d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00008000); # ID 1294d8e9230cSMauro Carvalho Chehab write_le32(169); # Size 1295d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(871088, 169); 1296d8e9230cSMauro Carvalho Chehab 1297d8e9230cSMauro Carvalho Chehab # 1298d8e9230cSMauro Carvalho Chehab # Firmware 41, type: STD FW (0x00000000), id: NTSC PAL/M PAL/N (000000000000b700), size: 161 1299d8e9230cSMauro Carvalho Chehab # 1300d8e9230cSMauro Carvalho Chehab 1301d8e9230cSMauro Carvalho Chehab write_le32(0x00000000); # Type 1302d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x0000b700); # ID 1303d8e9230cSMauro Carvalho Chehab write_le32(161); # Size 1304d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(871264, 161); 1305d8e9230cSMauro Carvalho Chehab 1306d8e9230cSMauro Carvalho Chehab # 1307d8e9230cSMauro Carvalho Chehab # Firmware 42, type: STD FW LCD (0x00001000), id: NTSC PAL/M PAL/N (000000000000b700), size: 161 1308d8e9230cSMauro Carvalho Chehab # 1309d8e9230cSMauro Carvalho Chehab 1310d8e9230cSMauro Carvalho Chehab write_le32(0x00001000); # Type 1311d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x0000b700); # ID 1312d8e9230cSMauro Carvalho Chehab write_le32(161); # Size 1313d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(871432, 161); 1314d8e9230cSMauro Carvalho Chehab 1315d8e9230cSMauro Carvalho Chehab # 1316d8e9230cSMauro Carvalho Chehab # Firmware 43, type: STD FW LCD NOGD (0x00003000), id: NTSC PAL/M PAL/N (000000000000b700), size: 161 1317d8e9230cSMauro Carvalho Chehab # 1318d8e9230cSMauro Carvalho Chehab 1319d8e9230cSMauro Carvalho Chehab write_le32(0x00003000); # Type 1320d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x0000b700); # ID 1321d8e9230cSMauro Carvalho Chehab write_le32(161); # Size 1322d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(871600, 161); 1323d8e9230cSMauro Carvalho Chehab 1324d8e9230cSMauro Carvalho Chehab # 1325d8e9230cSMauro Carvalho Chehab # Firmware 44, type: STD FW (0x00000000), id: NTSC/M Jp (0000000000002000), size: 161 1326d8e9230cSMauro Carvalho Chehab # 1327d8e9230cSMauro Carvalho Chehab 1328d8e9230cSMauro Carvalho Chehab write_le32(0x00000000); # Type 1329d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00002000); # ID 1330d8e9230cSMauro Carvalho Chehab write_le32(161); # Size 1331d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(871264, 161); 1332d8e9230cSMauro Carvalho Chehab 1333d8e9230cSMauro Carvalho Chehab # 1334d8e9230cSMauro Carvalho Chehab # Firmware 45, type: STD FW MTS (0x00000004), id: NTSC PAL/M PAL/N (000000000000b700), size: 169 1335d8e9230cSMauro Carvalho Chehab # 1336d8e9230cSMauro Carvalho Chehab 1337d8e9230cSMauro Carvalho Chehab write_le32(0x00000004); # Type 1338d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x0000b700); # ID 1339d8e9230cSMauro Carvalho Chehab write_le32(169); # Size 1340d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(871936, 169); 1341d8e9230cSMauro Carvalho Chehab 1342d8e9230cSMauro Carvalho Chehab # 1343d8e9230cSMauro Carvalho Chehab # Firmware 46, type: STD FW MTS LCD (0x00001004), id: NTSC PAL/M PAL/N (000000000000b700), size: 169 1344d8e9230cSMauro Carvalho Chehab # 1345d8e9230cSMauro Carvalho Chehab 1346d8e9230cSMauro Carvalho Chehab write_le32(0x00001004); # Type 1347d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x0000b700); # ID 1348d8e9230cSMauro Carvalho Chehab write_le32(169); # Size 1349d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(872112, 169); 1350d8e9230cSMauro Carvalho Chehab 1351d8e9230cSMauro Carvalho Chehab # 1352d8e9230cSMauro Carvalho Chehab # Firmware 47, type: STD FW MTS LCD NOGD (0x00003004), id: NTSC PAL/M PAL/N (000000000000b700), size: 169 1353d8e9230cSMauro Carvalho Chehab # 1354d8e9230cSMauro Carvalho Chehab 1355d8e9230cSMauro Carvalho Chehab write_le32(0x00003004); # Type 1356d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x0000b700); # ID 1357d8e9230cSMauro Carvalho Chehab write_le32(169); # Size 1358d8e9230cSMauro Carvalho Chehab write_hunk_fix_endian(872288, 169); 1359d8e9230cSMauro Carvalho Chehab 1360d8e9230cSMauro Carvalho Chehab # 1361d8e9230cSMauro Carvalho Chehab # Firmware 48, type: SCODE FW HAS IF (0x60000000), IF = 3.28 MHz id: (0000000000000000), size: 192 1362d8e9230cSMauro Carvalho Chehab # 1363d8e9230cSMauro Carvalho Chehab 1364d8e9230cSMauro Carvalho Chehab write_le32(0x60000000); # Type 1365d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000000); # ID 1366d8e9230cSMauro Carvalho Chehab write_le16(3280); # IF 1367d8e9230cSMauro Carvalho Chehab write_le32(192); # Size 1368d8e9230cSMauro Carvalho Chehab write_hunk(811896, 192); 1369d8e9230cSMauro Carvalho Chehab 1370d8e9230cSMauro Carvalho Chehab # 1371d8e9230cSMauro Carvalho Chehab # Firmware 49, type: SCODE FW HAS IF (0x60000000), IF = 3.30 MHz id: (0000000000000000), size: 192 1372d8e9230cSMauro Carvalho Chehab # 1373d8e9230cSMauro Carvalho Chehab 1374d8e9230cSMauro Carvalho Chehab write_le32(0x60000000); # Type 1375d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000000); # ID 1376d8e9230cSMauro Carvalho Chehab write_le16(3300); # IF 1377d8e9230cSMauro Carvalho Chehab write_le32(192); # Size 1378d8e9230cSMauro Carvalho Chehab write_hunk(813048, 192); 1379d8e9230cSMauro Carvalho Chehab 1380d8e9230cSMauro Carvalho Chehab # 1381d8e9230cSMauro Carvalho Chehab # Firmware 50, type: SCODE FW HAS IF (0x60000000), IF = 3.44 MHz id: (0000000000000000), size: 192 1382d8e9230cSMauro Carvalho Chehab # 1383d8e9230cSMauro Carvalho Chehab 1384d8e9230cSMauro Carvalho Chehab write_le32(0x60000000); # Type 1385d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000000); # ID 1386d8e9230cSMauro Carvalho Chehab write_le16(3440); # IF 1387d8e9230cSMauro Carvalho Chehab write_le32(192); # Size 1388d8e9230cSMauro Carvalho Chehab write_hunk(812280, 192); 1389d8e9230cSMauro Carvalho Chehab 1390d8e9230cSMauro Carvalho Chehab # 1391d8e9230cSMauro Carvalho Chehab # Firmware 51, type: SCODE FW HAS IF (0x60000000), IF = 3.46 MHz id: (0000000000000000), size: 192 1392d8e9230cSMauro Carvalho Chehab # 1393d8e9230cSMauro Carvalho Chehab 1394d8e9230cSMauro Carvalho Chehab write_le32(0x60000000); # Type 1395d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000000); # ID 1396d8e9230cSMauro Carvalho Chehab write_le16(3460); # IF 1397d8e9230cSMauro Carvalho Chehab write_le32(192); # Size 1398d8e9230cSMauro Carvalho Chehab write_hunk(812472, 192); 1399d8e9230cSMauro Carvalho Chehab 1400d8e9230cSMauro Carvalho Chehab # 1401d8e9230cSMauro Carvalho Chehab # Firmware 52, type: SCODE FW DTV6 ATSC OREN36 HAS IF (0x60210020), IF = 3.80 MHz id: (0000000000000000), size: 192 1402d8e9230cSMauro Carvalho Chehab # 1403d8e9230cSMauro Carvalho Chehab 1404d8e9230cSMauro Carvalho Chehab write_le32(0x60210020); # Type 1405d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000000); # ID 1406d8e9230cSMauro Carvalho Chehab write_le16(3800); # IF 1407d8e9230cSMauro Carvalho Chehab write_le32(192); # Size 1408d8e9230cSMauro Carvalho Chehab write_hunk(809784, 192); 1409d8e9230cSMauro Carvalho Chehab 1410d8e9230cSMauro Carvalho Chehab # 1411d8e9230cSMauro Carvalho Chehab # Firmware 53, type: SCODE FW HAS IF (0x60000000), IF = 4.00 MHz id: (0000000000000000), size: 192 1412d8e9230cSMauro Carvalho Chehab # 1413d8e9230cSMauro Carvalho Chehab 1414d8e9230cSMauro Carvalho Chehab write_le32(0x60000000); # Type 1415d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000000); # ID 1416d8e9230cSMauro Carvalho Chehab write_le16(4000); # IF 1417d8e9230cSMauro Carvalho Chehab write_le32(192); # Size 1418d8e9230cSMauro Carvalho Chehab write_hunk(812088, 192); 1419d8e9230cSMauro Carvalho Chehab 1420d8e9230cSMauro Carvalho Chehab # 1421d8e9230cSMauro Carvalho Chehab # Firmware 54, type: SCODE FW DTV6 ATSC TOYOTA388 HAS IF (0x60410020), IF = 4.08 MHz id: (0000000000000000), size: 192 1422d8e9230cSMauro Carvalho Chehab # 1423d8e9230cSMauro Carvalho Chehab 1424d8e9230cSMauro Carvalho Chehab write_le32(0x60410020); # Type 1425d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000000); # ID 1426d8e9230cSMauro Carvalho Chehab write_le16(4080); # IF 1427d8e9230cSMauro Carvalho Chehab write_le32(192); # Size 1428d8e9230cSMauro Carvalho Chehab write_hunk(809976, 192); 1429d8e9230cSMauro Carvalho Chehab 1430d8e9230cSMauro Carvalho Chehab # 1431d8e9230cSMauro Carvalho Chehab # Firmware 55, type: SCODE FW HAS IF (0x60000000), IF = 4.20 MHz id: (0000000000000000), size: 192 1432d8e9230cSMauro Carvalho Chehab # 1433d8e9230cSMauro Carvalho Chehab 1434d8e9230cSMauro Carvalho Chehab write_le32(0x60000000); # Type 1435d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000000); # ID 1436d8e9230cSMauro Carvalho Chehab write_le16(4200); # IF 1437d8e9230cSMauro Carvalho Chehab write_le32(192); # Size 1438d8e9230cSMauro Carvalho Chehab write_hunk(811704, 192); 1439d8e9230cSMauro Carvalho Chehab 1440d8e9230cSMauro Carvalho Chehab # 1441d8e9230cSMauro Carvalho Chehab # Firmware 56, type: SCODE FW MONO HAS IF (0x60008000), IF = 4.32 MHz id: NTSC/M Kr (0000000000008000), size: 192 1442d8e9230cSMauro Carvalho Chehab # 1443d8e9230cSMauro Carvalho Chehab 1444d8e9230cSMauro Carvalho Chehab write_le32(0x60008000); # Type 1445d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00008000); # ID 1446d8e9230cSMauro Carvalho Chehab write_le16(4320); # IF 1447d8e9230cSMauro Carvalho Chehab write_le32(192); # Size 1448d8e9230cSMauro Carvalho Chehab write_hunk(808056, 192); 1449d8e9230cSMauro Carvalho Chehab 1450d8e9230cSMauro Carvalho Chehab # 1451d8e9230cSMauro Carvalho Chehab # Firmware 57, type: SCODE FW HAS IF (0x60000000), IF = 4.45 MHz id: (0000000000000000), size: 192 1452d8e9230cSMauro Carvalho Chehab # 1453d8e9230cSMauro Carvalho Chehab 1454d8e9230cSMauro Carvalho Chehab write_le32(0x60000000); # Type 1455d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000000); # ID 1456d8e9230cSMauro Carvalho Chehab write_le16(4450); # IF 1457d8e9230cSMauro Carvalho Chehab write_le32(192); # Size 1458d8e9230cSMauro Carvalho Chehab write_hunk(812664, 192); 1459d8e9230cSMauro Carvalho Chehab 1460d8e9230cSMauro Carvalho Chehab # 1461d8e9230cSMauro Carvalho Chehab # Firmware 58, type: SCODE FW MTS LCD NOGD MONO IF HAS IF (0x6002b004), IF = 4.50 MHz id: NTSC PAL/M PAL/N (000000000000b700), size: 192 1462d8e9230cSMauro Carvalho Chehab # 1463d8e9230cSMauro Carvalho Chehab 1464d8e9230cSMauro Carvalho Chehab write_le32(0x6002b004); # Type 1465d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x0000b700); # ID 1466d8e9230cSMauro Carvalho Chehab write_le16(4500); # IF 1467d8e9230cSMauro Carvalho Chehab write_le32(192); # Size 1468d8e9230cSMauro Carvalho Chehab write_hunk(807672, 192); 1469d8e9230cSMauro Carvalho Chehab 1470d8e9230cSMauro Carvalho Chehab # 1471d8e9230cSMauro Carvalho Chehab # Firmware 59, type: SCODE FW LCD NOGD IF HAS IF (0x60023000), IF = 4.60 MHz id: NTSC/M Kr (0000000000008000), size: 192 1472d8e9230cSMauro Carvalho Chehab # 1473d8e9230cSMauro Carvalho Chehab 1474d8e9230cSMauro Carvalho Chehab write_le32(0x60023000); # Type 1475d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00008000); # ID 1476d8e9230cSMauro Carvalho Chehab write_le16(4600); # IF 1477d8e9230cSMauro Carvalho Chehab write_le32(192); # Size 1478d8e9230cSMauro Carvalho Chehab write_hunk(807864, 192); 1479d8e9230cSMauro Carvalho Chehab 1480d8e9230cSMauro Carvalho Chehab # 1481d8e9230cSMauro Carvalho Chehab # Firmware 60, type: SCODE FW DTV6 QAM DTV7 DTV78 DTV8 ZARLINK456 HAS IF (0x620003e0), IF = 4.76 MHz id: (0000000000000000), size: 192 1482d8e9230cSMauro Carvalho Chehab # 1483d8e9230cSMauro Carvalho Chehab 1484d8e9230cSMauro Carvalho Chehab write_le32(0x620003e0); # Type 1485d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000000); # ID 1486d8e9230cSMauro Carvalho Chehab write_le16(4760); # IF 1487d8e9230cSMauro Carvalho Chehab write_le32(192); # Size 1488d8e9230cSMauro Carvalho Chehab write_hunk(807288, 192); 1489d8e9230cSMauro Carvalho Chehab 1490d8e9230cSMauro Carvalho Chehab # 1491d8e9230cSMauro Carvalho Chehab # Firmware 61, type: SCODE FW HAS IF (0x60000000), IF = 4.94 MHz id: (0000000000000000), size: 192 1492d8e9230cSMauro Carvalho Chehab # 1493d8e9230cSMauro Carvalho Chehab 1494d8e9230cSMauro Carvalho Chehab write_le32(0x60000000); # Type 1495d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000000); # ID 1496d8e9230cSMauro Carvalho Chehab write_le16(4940); # IF 1497d8e9230cSMauro Carvalho Chehab write_le32(192); # Size 1498d8e9230cSMauro Carvalho Chehab write_hunk(811512, 192); 1499d8e9230cSMauro Carvalho Chehab 1500d8e9230cSMauro Carvalho Chehab # 1501d8e9230cSMauro Carvalho Chehab # Firmware 62, type: SCODE FW HAS IF (0x60000000), IF = 5.26 MHz id: (0000000000000000), size: 192 1502d8e9230cSMauro Carvalho Chehab # 1503d8e9230cSMauro Carvalho Chehab 1504d8e9230cSMauro Carvalho Chehab write_le32(0x60000000); # Type 1505d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000000); # ID 1506d8e9230cSMauro Carvalho Chehab write_le16(5260); # IF 1507d8e9230cSMauro Carvalho Chehab write_le32(192); # Size 1508d8e9230cSMauro Carvalho Chehab write_hunk(810552, 192); 1509d8e9230cSMauro Carvalho Chehab 1510d8e9230cSMauro Carvalho Chehab # 1511d8e9230cSMauro Carvalho Chehab # Firmware 63, type: SCODE FW MONO HAS IF (0x60008000), IF = 5.32 MHz id: PAL/BG A2 NICAM (0000000f00000007), size: 192 1512d8e9230cSMauro Carvalho Chehab # 1513d8e9230cSMauro Carvalho Chehab 1514d8e9230cSMauro Carvalho Chehab write_le32(0x60008000); # Type 1515d8e9230cSMauro Carvalho Chehab write_le64(0x0000000f, 0x00000007); # ID 1516d8e9230cSMauro Carvalho Chehab write_le16(5320); # IF 1517d8e9230cSMauro Carvalho Chehab write_le32(192); # Size 1518d8e9230cSMauro Carvalho Chehab write_hunk(810744, 192); 1519d8e9230cSMauro Carvalho Chehab 1520d8e9230cSMauro Carvalho Chehab # 1521d8e9230cSMauro Carvalho Chehab # Firmware 64, type: SCODE FW DTV7 DTV78 DTV8 DIBCOM52 CHINA HAS IF (0x65000380), IF = 5.40 MHz id: (0000000000000000), size: 192 1522d8e9230cSMauro Carvalho Chehab # 1523d8e9230cSMauro Carvalho Chehab 1524d8e9230cSMauro Carvalho Chehab write_le32(0x65000380); # Type 1525d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000000); # ID 1526d8e9230cSMauro Carvalho Chehab write_le16(5400); # IF 1527d8e9230cSMauro Carvalho Chehab write_le32(192); # Size 1528d8e9230cSMauro Carvalho Chehab write_hunk(807096, 192); 1529d8e9230cSMauro Carvalho Chehab 1530d8e9230cSMauro Carvalho Chehab # 1531d8e9230cSMauro Carvalho Chehab # Firmware 65, type: SCODE FW DTV6 ATSC OREN538 HAS IF (0x60110020), IF = 5.58 MHz id: (0000000000000000), size: 192 1532d8e9230cSMauro Carvalho Chehab # 1533d8e9230cSMauro Carvalho Chehab 1534d8e9230cSMauro Carvalho Chehab write_le32(0x60110020); # Type 1535d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000000); # ID 1536d8e9230cSMauro Carvalho Chehab write_le16(5580); # IF 1537d8e9230cSMauro Carvalho Chehab write_le32(192); # Size 1538d8e9230cSMauro Carvalho Chehab write_hunk(809592, 192); 1539d8e9230cSMauro Carvalho Chehab 1540d8e9230cSMauro Carvalho Chehab # 1541d8e9230cSMauro Carvalho Chehab # Firmware 66, type: SCODE FW HAS IF (0x60000000), IF = 5.64 MHz id: PAL/BG A2 (0000000300000007), size: 192 1542d8e9230cSMauro Carvalho Chehab # 1543d8e9230cSMauro Carvalho Chehab 1544d8e9230cSMauro Carvalho Chehab write_le32(0x60000000); # Type 1545d8e9230cSMauro Carvalho Chehab write_le64(0x00000003, 0x00000007); # ID 1546d8e9230cSMauro Carvalho Chehab write_le16(5640); # IF 1547d8e9230cSMauro Carvalho Chehab write_le32(192); # Size 1548d8e9230cSMauro Carvalho Chehab write_hunk(808440, 192); 1549d8e9230cSMauro Carvalho Chehab 1550d8e9230cSMauro Carvalho Chehab # 1551d8e9230cSMauro Carvalho Chehab # Firmware 67, type: SCODE FW HAS IF (0x60000000), IF = 5.74 MHz id: PAL/BG NICAM (0000000c00000007), size: 192 1552d8e9230cSMauro Carvalho Chehab # 1553d8e9230cSMauro Carvalho Chehab 1554d8e9230cSMauro Carvalho Chehab write_le32(0x60000000); # Type 1555d8e9230cSMauro Carvalho Chehab write_le64(0x0000000c, 0x00000007); # ID 1556d8e9230cSMauro Carvalho Chehab write_le16(5740); # IF 1557d8e9230cSMauro Carvalho Chehab write_le32(192); # Size 1558d8e9230cSMauro Carvalho Chehab write_hunk(808632, 192); 1559d8e9230cSMauro Carvalho Chehab 1560d8e9230cSMauro Carvalho Chehab # 1561d8e9230cSMauro Carvalho Chehab # Firmware 68, type: SCODE FW HAS IF (0x60000000), IF = 5.90 MHz id: (0000000000000000), size: 192 1562d8e9230cSMauro Carvalho Chehab # 1563d8e9230cSMauro Carvalho Chehab 1564d8e9230cSMauro Carvalho Chehab write_le32(0x60000000); # Type 1565d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000000); # ID 1566d8e9230cSMauro Carvalho Chehab write_le16(5900); # IF 1567d8e9230cSMauro Carvalho Chehab write_le32(192); # Size 1568d8e9230cSMauro Carvalho Chehab write_hunk(810360, 192); 1569d8e9230cSMauro Carvalho Chehab 1570d8e9230cSMauro Carvalho Chehab # 1571d8e9230cSMauro Carvalho Chehab # Firmware 69, type: SCODE FW MONO HAS IF (0x60008000), IF = 6.00 MHz id: PAL/DK PAL/I SECAM/K3 SECAM/L SECAM/Lc NICAM (0000000c04c000f0), size: 192 1572d8e9230cSMauro Carvalho Chehab # 1573d8e9230cSMauro Carvalho Chehab 1574d8e9230cSMauro Carvalho Chehab write_le32(0x60008000); # Type 1575d8e9230cSMauro Carvalho Chehab write_le64(0x0000000c, 0x04c000f0); # ID 1576d8e9230cSMauro Carvalho Chehab write_le16(6000); # IF 1577d8e9230cSMauro Carvalho Chehab write_le32(192); # Size 1578d8e9230cSMauro Carvalho Chehab write_hunk(808824, 192); 1579d8e9230cSMauro Carvalho Chehab 1580d8e9230cSMauro Carvalho Chehab # 1581d8e9230cSMauro Carvalho Chehab # Firmware 70, type: SCODE FW DTV6 QAM ATSC LG60 F6MHZ HAS IF (0x68050060), IF = 6.20 MHz id: (0000000000000000), size: 192 1582d8e9230cSMauro Carvalho Chehab # 1583d8e9230cSMauro Carvalho Chehab 1584d8e9230cSMauro Carvalho Chehab write_le32(0x68050060); # Type 1585d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000000); # ID 1586d8e9230cSMauro Carvalho Chehab write_le16(6200); # IF 1587d8e9230cSMauro Carvalho Chehab write_le32(192); # Size 1588d8e9230cSMauro Carvalho Chehab write_hunk(809400, 192); 1589d8e9230cSMauro Carvalho Chehab 1590d8e9230cSMauro Carvalho Chehab # 1591d8e9230cSMauro Carvalho Chehab # Firmware 71, type: SCODE FW HAS IF (0x60000000), IF = 6.24 MHz id: PAL/I (0000000000000010), size: 192 1592d8e9230cSMauro Carvalho Chehab # 1593d8e9230cSMauro Carvalho Chehab 1594d8e9230cSMauro Carvalho Chehab write_le32(0x60000000); # Type 1595d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000010); # ID 1596d8e9230cSMauro Carvalho Chehab write_le16(6240); # IF 1597d8e9230cSMauro Carvalho Chehab write_le32(192); # Size 1598d8e9230cSMauro Carvalho Chehab write_hunk(808248, 192); 1599d8e9230cSMauro Carvalho Chehab 1600d8e9230cSMauro Carvalho Chehab # 1601d8e9230cSMauro Carvalho Chehab # Firmware 72, type: SCODE FW MONO HAS IF (0x60008000), IF = 6.32 MHz id: SECAM/K1 (0000000000200000), size: 192 1602d8e9230cSMauro Carvalho Chehab # 1603d8e9230cSMauro Carvalho Chehab 1604d8e9230cSMauro Carvalho Chehab write_le32(0x60008000); # Type 1605d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00200000); # ID 1606d8e9230cSMauro Carvalho Chehab write_le16(6320); # IF 1607d8e9230cSMauro Carvalho Chehab write_le32(192); # Size 1608d8e9230cSMauro Carvalho Chehab write_hunk(811320, 192); 1609d8e9230cSMauro Carvalho Chehab 1610d8e9230cSMauro Carvalho Chehab # 1611d8e9230cSMauro Carvalho Chehab # Firmware 73, type: SCODE FW HAS IF (0x60000000), IF = 6.34 MHz id: SECAM/K1 (0000000000200000), size: 192 1612d8e9230cSMauro Carvalho Chehab # 1613d8e9230cSMauro Carvalho Chehab 1614d8e9230cSMauro Carvalho Chehab write_le32(0x60000000); # Type 1615d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00200000); # ID 1616d8e9230cSMauro Carvalho Chehab write_le16(6340); # IF 1617d8e9230cSMauro Carvalho Chehab write_le32(192); # Size 1618d8e9230cSMauro Carvalho Chehab write_hunk(809208, 192); 1619d8e9230cSMauro Carvalho Chehab 1620d8e9230cSMauro Carvalho Chehab # 1621d8e9230cSMauro Carvalho Chehab # Firmware 74, type: SCODE FW MONO HAS IF (0x60008000), IF = 6.50 MHz id: PAL/DK SECAM/K3 SECAM/L NICAM (0000000c044000e0), size: 192 1622d8e9230cSMauro Carvalho Chehab # 1623d8e9230cSMauro Carvalho Chehab 1624d8e9230cSMauro Carvalho Chehab write_le32(0x60008000); # Type 1625d8e9230cSMauro Carvalho Chehab write_le64(0x0000000c, 0x044000e0); # ID 1626d8e9230cSMauro Carvalho Chehab write_le16(6500); # IF 1627d8e9230cSMauro Carvalho Chehab write_le32(192); # Size 1628d8e9230cSMauro Carvalho Chehab write_hunk(811128, 192); 1629d8e9230cSMauro Carvalho Chehab 1630d8e9230cSMauro Carvalho Chehab # 1631d8e9230cSMauro Carvalho Chehab # Firmware 75, type: SCODE FW DTV6 ATSC ATI638 HAS IF (0x60090020), IF = 6.58 MHz id: (0000000000000000), size: 192 1632d8e9230cSMauro Carvalho Chehab # 1633d8e9230cSMauro Carvalho Chehab 1634d8e9230cSMauro Carvalho Chehab write_le32(0x60090020); # Type 1635d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000000); # ID 1636d8e9230cSMauro Carvalho Chehab write_le16(6580); # IF 1637d8e9230cSMauro Carvalho Chehab write_le32(192); # Size 1638d8e9230cSMauro Carvalho Chehab write_hunk(807480, 192); 1639d8e9230cSMauro Carvalho Chehab 1640d8e9230cSMauro Carvalho Chehab # 1641d8e9230cSMauro Carvalho Chehab # Firmware 76, type: SCODE FW HAS IF (0x60000000), IF = 6.60 MHz id: PAL/DK A2 (00000003000000e0), size: 192 1642d8e9230cSMauro Carvalho Chehab # 1643d8e9230cSMauro Carvalho Chehab 1644d8e9230cSMauro Carvalho Chehab write_le32(0x60000000); # Type 1645d8e9230cSMauro Carvalho Chehab write_le64(0x00000003, 0x000000e0); # ID 1646d8e9230cSMauro Carvalho Chehab write_le16(6600); # IF 1647d8e9230cSMauro Carvalho Chehab write_le32(192); # Size 1648d8e9230cSMauro Carvalho Chehab write_hunk(809016, 192); 1649d8e9230cSMauro Carvalho Chehab 1650d8e9230cSMauro Carvalho Chehab # 1651d8e9230cSMauro Carvalho Chehab # Firmware 77, type: SCODE FW MONO HAS IF (0x60008000), IF = 6.68 MHz id: PAL/DK A2 (00000003000000e0), size: 192 1652d8e9230cSMauro Carvalho Chehab # 1653d8e9230cSMauro Carvalho Chehab 1654d8e9230cSMauro Carvalho Chehab write_le32(0x60008000); # Type 1655d8e9230cSMauro Carvalho Chehab write_le64(0x00000003, 0x000000e0); # ID 1656d8e9230cSMauro Carvalho Chehab write_le16(6680); # IF 1657d8e9230cSMauro Carvalho Chehab write_le32(192); # Size 1658d8e9230cSMauro Carvalho Chehab write_hunk(810936, 192); 1659d8e9230cSMauro Carvalho Chehab 1660d8e9230cSMauro Carvalho Chehab # 1661d8e9230cSMauro Carvalho Chehab # Firmware 78, type: SCODE FW DTV6 ATSC TOYOTA794 HAS IF (0x60810020), IF = 8.14 MHz id: (0000000000000000), size: 192 1662d8e9230cSMauro Carvalho Chehab # 1663d8e9230cSMauro Carvalho Chehab 1664d8e9230cSMauro Carvalho Chehab write_le32(0x60810020); # Type 1665d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000000); # ID 1666d8e9230cSMauro Carvalho Chehab write_le16(8140); # IF 1667d8e9230cSMauro Carvalho Chehab write_le32(192); # Size 1668d8e9230cSMauro Carvalho Chehab write_hunk(810168, 192); 1669d8e9230cSMauro Carvalho Chehab 1670d8e9230cSMauro Carvalho Chehab # 1671d8e9230cSMauro Carvalho Chehab # Firmware 79, type: SCODE FW HAS IF (0x60000000), IF = 8.20 MHz id: (0000000000000000), size: 192 1672d8e9230cSMauro Carvalho Chehab # 1673d8e9230cSMauro Carvalho Chehab 1674d8e9230cSMauro Carvalho Chehab write_le32(0x60000000); # Type 1675d8e9230cSMauro Carvalho Chehab write_le64(0x00000000, 0x00000000); # ID 1676d8e9230cSMauro Carvalho Chehab write_le16(8200); # IF 1677d8e9230cSMauro Carvalho Chehab write_le32(192); # Size 1678d8e9230cSMauro Carvalho Chehab write_hunk(812856, 192); 1679d8e9230cSMauro Carvalho Chehab} 1680d8e9230cSMauro Carvalho Chehab 1681d8e9230cSMauro Carvalho Chehab 1682d8e9230cSMauro Carvalho Chehabsub extract_firmware { 1683d8e9230cSMauro Carvalho Chehab my $sourcefile_24 = "UDXTTM6000.sys"; 1684d8e9230cSMauro Carvalho Chehab my $hash_24 = "cb9deb5508a5e150af2880f5b0066d78"; 1685d8e9230cSMauro Carvalho Chehab my $outfile_24 = "xc3028-v24.fw"; 1686d8e9230cSMauro Carvalho Chehab my $name_24 = "xc2028 firmware"; 1687d8e9230cSMauro Carvalho Chehab my $version_24 = 516; 1688d8e9230cSMauro Carvalho Chehab my $nr_desc_24 = 77; 1689d8e9230cSMauro Carvalho Chehab my $out; 1690d8e9230cSMauro Carvalho Chehab 1691d8e9230cSMauro Carvalho Chehab my $sourcefile_27 = "hcw85bda.sys"; 1692d8e9230cSMauro Carvalho Chehab my $hash_27 = "0e44dbf63bb0169d57446aec21881ff2"; 1693d8e9230cSMauro Carvalho Chehab my $outfile_27 = "xc3028-v27.fw"; 1694d8e9230cSMauro Carvalho Chehab my $name_27 = "xc2028 firmware"; 1695d8e9230cSMauro Carvalho Chehab my $version_27 = 519; 1696d8e9230cSMauro Carvalho Chehab my $nr_desc_27 = 80; 1697d8e9230cSMauro Carvalho Chehab my $out; 1698d8e9230cSMauro Carvalho Chehab 1699d8e9230cSMauro Carvalho Chehab if (-e $sourcefile_24) { 1700d8e9230cSMauro Carvalho Chehab verify($sourcefile_24, $hash_24); 1701d8e9230cSMauro Carvalho Chehab 1702d8e9230cSMauro Carvalho Chehab open INFILE, "<$sourcefile_24"; 1703d8e9230cSMauro Carvalho Chehab main_firmware_24($outfile_24, $name_24, $version_24, $nr_desc_24); 1704d8e9230cSMauro Carvalho Chehab close INFILE; 1705d8e9230cSMauro Carvalho Chehab } 1706d8e9230cSMauro Carvalho Chehab 1707d8e9230cSMauro Carvalho Chehab if (-e $sourcefile_27) { 1708d8e9230cSMauro Carvalho Chehab verify($sourcefile_27, $hash_27); 1709d8e9230cSMauro Carvalho Chehab 1710d8e9230cSMauro Carvalho Chehab open INFILE, "<$sourcefile_27"; 1711d8e9230cSMauro Carvalho Chehab main_firmware_27($outfile_27, $name_27, $version_27, $nr_desc_27); 1712d8e9230cSMauro Carvalho Chehab close INFILE; 1713d8e9230cSMauro Carvalho Chehab } 1714d8e9230cSMauro Carvalho Chehab} 1715d8e9230cSMauro Carvalho Chehab 1716d8e9230cSMauro Carvalho Chehabextract_firmware; 1717d8e9230cSMauro Carvalho Chehabprintf "Firmwares generated.\n"; 1718