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