diff options
author | kmacy <kmacy@FreeBSD.org> | 2008-02-26 03:02:20 +0000 |
---|---|---|
committer | kmacy <kmacy@FreeBSD.org> | 2008-02-26 03:02:20 +0000 |
commit | 3c2b753612b7a8288525cdf8481727ac73cb25ef (patch) | |
tree | e4dabfbcd90a45ff6c8ded3887a3e5cd387cf560 /sys/dev/cxgb/bin2h.pl | |
parent | b54152091e62752ddc63ffffe7c4735b80a73cdb (diff) | |
download | FreeBSD-src-3c2b753612b7a8288525cdf8481727ac73cb25ef.zip FreeBSD-src-3c2b753612b7a8288525cdf8481727ac73cb25ef.tar.gz |
Move firmware in to separate module that can be compiled statically in to the kernel
Add utility for converting future firmware revs to a C header file
Diffstat (limited to 'sys/dev/cxgb/bin2h.pl')
-rw-r--r-- | sys/dev/cxgb/bin2h.pl | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/sys/dev/cxgb/bin2h.pl b/sys/dev/cxgb/bin2h.pl new file mode 100644 index 0000000..01a97a3 --- /dev/null +++ b/sys/dev/cxgb/bin2h.pl @@ -0,0 +1,79 @@ +#!/usr/bin/perl -w + +#$FreeBSD$ + +if ($#ARGV != 1) { + print "bin2h.pl <firmware> <headername>\n"; + exit 1; +} + +my $success = open INPUT, "$ARGV[0]"; +unless ($success) { + print "failed to open input\n"; + exit 1; +} +$success = open OUTPUT, ">$ARGV[1]"; +unless ($success) { + print "failed to open output\n"; + exit 1; +} + + +my $license = <<END; +/************************************************************************** + +Copyright (c) 2007-2008, Chelsio Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + 2. Neither the name of the Chelsio Corporation nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN22 +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + + +\$FreeBSD\$ + +***************************************************************************/ +END +print OUTPUT "$license\n"; + + +my $binary; + +my ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size, + $atime,$mtime,$ctime,$blksize,$blocks) + = stat($ARGV[0]); + + +print OUTPUT "#define U (unsigned char)\n\n"; + +print OUTPUT "static unsigned int t3fw_length = $size;\n"; +print OUTPUT "static unsigned char t3fw[$size] = {\n"; + +for (my $i = 0; $i < $size; $i += 4) { + my $number_read = read(INPUT, $binary, 4); + my ($a, $b, $c, $d) = unpack("C C C C", $binary); + $buf = sprintf("U 0x%02X, U 0x%02X, U 0x%02X, U 0x%02X, \n", $a, $b, $c, $d); + print OUTPUT $buf; +} +print OUTPUT "};\n"; + + + |