diff options
| author | rwhitby <rwhitby@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2007-08-10 12:54:47 +0000 | 
|---|---|---|
| committer | rwhitby <rwhitby@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2007-08-10 12:54:47 +0000 | 
| commit | 1017c2261744607bf575865e9289195b13d2fb8c (patch) | |
| tree | d5a749bef14752848a98c1fd8aaf4c7a2f634121 | |
| parent | 8f4b5221430bf70f461085422ee3adcc247477fb (diff) | |
slugimage: Added support for 16MiB flash chips
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@8387 3c298f89-4303-0410-b956-a3cf2f4a3e73
| -rwxr-xr-x | scripts/slugimage.pl | 19 | 
1 files changed, 16 insertions, 3 deletions
| diff --git a/scripts/slugimage.pl b/scripts/slugimage.pl index da98c999e..3d2735d0f 100755 --- a/scripts/slugimage.pl +++ b/scripts/slugimage.pl @@ -391,10 +391,9 @@ sub readInFirmware {      my($filename, $partitions_ref) = @_;      my($firmware_buf); -    my($total_length)   = 0x800000;      open FILE,$filename or die "Can't find firmware image \"$filename\": $!\n"; -    read FILE,$firmware_buf,$total_length or die "Can't read $total_length bytes from \"$filename\": $!\n"; +    read FILE,$firmware_buf,$flash_len or die "Can't read $flash_len bytes from \"$filename\": $!\n";      close FILE or die "Can't close \"$filename\": $!\n";      $debug and printf("Read 0x%08X bytes from \"%s\"\n", length($firmware_buf), $filename); @@ -930,7 +929,7 @@ sub defaultPartitions {  # Main routine starts here ... -my($unpack, $pack, $little, $input, $output, $redboot); +my($unpack, $pack, $little, $fatflash, $input, $output, $redboot);  my($kernel, $sysconf, $ramdisk, $fisdir);  my($microcode, $trailer, $ethaddr, $loader); @@ -946,6 +945,7 @@ if (!GetOptions("d|debug"       => \$debug,  		"u|unpack"      => \$unpack,  		"p|pack"        => \$pack,  		"l|little"      => \$little, +		"F|fatflash"    => \$fatflash,  		"i|input=s"     => \$input,  		"o|output=s"    => \$output,  		"b|redboot=s"   => \$redboot, @@ -965,6 +965,7 @@ if (!GetOptions("d|debug"       => \$debug,      print "  [-u|--unpack]			Unpack a firmware image\n";      print "  [-p|--pack]			Pack a firmware image\n";      print "  [-l|--little]			Convert Kernel and Ramdisk to little-endian\n"; +    print "  [-F|--fatflash]			Generate an image for 16MB flash\n";      print "  [-i|--input]     <file>		Input firmware image filename\n";      print "  [-o|--output]    <file>		Output firmware image filename\n";      print "  [-b|--redboot]   <file>		Input/Output RedBoot filename\n"; @@ -1047,6 +1048,18 @@ if (defined $little)  {      } @partitions;  } +if (defined $fatflash)  { +    $flash_len = 0x01000000; +    map { +	if (($_->{'name'} eq 'FIS directory') or +	    ($_->{'name'} eq 'Loader config') or +	    ($_->{'name'} eq 'Microcode') or +	    ($_->{'name'} eq 'Trailer')) { +	    $_->{'offset'} += 0x00800000; +	} +    } @partitions; +} +  if (defined $ethaddr) {      map {  	if ($_->{'name'} eq 'EthAddr') { | 
