diff options
Diffstat (limited to 'package/uboot-lantiq/gct')
-rwxr-xr-x | package/uboot-lantiq/gct | 165 |
1 files changed, 0 insertions, 165 deletions
diff --git a/package/uboot-lantiq/gct b/package/uboot-lantiq/gct deleted file mode 100755 index 4054c15f5f..0000000000 --- a/package/uboot-lantiq/gct +++ /dev/null @@ -1,165 +0,0 @@ -#!/usr/bin/perl - -#use strict; -#use Cwd; -#use Env; - -my $aline; -my $lineid; -my $length; -my $address; -my @bytes; -my $addstr; -my $chsum=0; -my $count=0; -my $firstime=1; -my $i; -my $currentaddr; -my $tmp; -my $holder=""; -my $loadaddr; - -if(@ARGV < 2){ - die("\n Syntax: ./program_SDRAM input1(memory setup) input2(*\.srec) output\n"); -} - -open(INFILE1, "<$ARGV[0]") || die("\ninput1 open fail\n"); -open(INFILE2, "<$ARGV[1]") || die("\ninput2 open fail\n"); -open(OUTFILE, ">$ARGV[2]") || die("\nOutput file open fail\n"); - -$i=0; -while ($line = <INFILE1>){ - if($line=~/\w/){ - if($line!~/[;#\*]/){ - if($i eq 0){ - printf OUTFILE ("33333333"); - } - chomp($line); - $line=~s/\t//; - @array=split(/ +/,$line); - $j=0; - while(@array[$j]!~/\w/){ - $j=$j+1; - } - $addr=@array[$j]; - $regval=@array[$j+1]; - $addr=~s/0x//; - $regval=~s/0x//; - printf OUTFILE ("%08x%08x",hex($addr),hex($regval)); - $i=$i+1; - if($i eq 8){ - $i=0; - printf OUTFILE ("\n"); - } - } - } -} - -while($i lt 8 && $i gt 0){ - printf OUTFILE "00"x8; - $i=$i+1; -} - -if($i eq 8){ - printf OUTFILE ("\n"); -} - -while($aline=<INFILE2>){ - $aline=uc($aline); - chomp($aline); - next if(($aline=~/^S0/) || ($aline=~/^S7/)); - ($lineid, $length, $address, @bytes) = unpack"A2A2A8"."A2"x300, $aline; - $length = hex($length); - $address = hex($address); - $length -=5; - $i=0; - - while($length>0){ - if($firstime==1){ - $addstr = sprintf("%x", $address); - $addstr = "0"x(8-length($addstr)).$addstr; - print OUTFILE $addstr; - addchsum($addstr); - $firstime=0; - $currentaddr=$address; - $loadaddr = $addstr; - } - else{ - if($count==64){ - $addstr = sprintf("%x", $currentaddr); - $addstr = "0"x(8-length($addstr)).$addstr; - print OUTFILE $addstr; - addchsum($addstr); - $count=0; - } - #printf("*** %x != %x\n", $address, $currentaddr) if $address != $currentaddr; - } - if($currentaddr < $address) { - print OUTFILE "00"; - addchsum("00"); - $count++; - $currentaddr++; - } - else { - while($count<64){ - $bytes[$i]=~tr/ABCDEF/abcdef/; - print OUTFILE "$bytes[$i]"; - addchsum($bytes[$i]); - $i++; - $count++; - $currentaddr++; - $length--; - last if($length==0); - } - } - if($count==64){ - print OUTFILE "\n"; - #print OUTFILE "\r"; - } - } -} -if($count != 64){ - $tmp = "00"; - for($i=0;$i<(64-$count);$i++){ - print OUTFILE "00"; - addchsum($tmp); - } - print OUTFILE "\n"; - #print OUTFILE "\r"; -} - - -print OUTFILE "11"x4; -use integer; -$chsum=$chsum & 0xffffffff; -$chsum = sprintf("%X", $chsum); -$chsum = "0"x(8-length($chsum)).$chsum; -$chsum =~tr/ABCDEF/abcdef/; -print OUTFILE $chsum; -print OUTFILE "00"x60; -print OUTFILE "\n"; -#print OUTFILE "\r"; - -print OUTFILE "99"x4; -print OUTFILE $loadaddr; -print OUTFILE "00"x60; -print OUTFILE "\n"; -#print OUTFILE "\r"; - - -close OUTFILE; -#END of Program - - - -sub addchsum{ - my $cc=$_[0]; - $holder=$holder.$cc; - if(length($holder)==8){ - $holder = hex($holder); - $chsum+=$holder; - $holder=""; - } -} -#END - |