#!/usr/bin/perl

#
# based on http://www.coreboot.org/VGA_support
#

if (($#ARGV+1) < 1)
{
	print("Usage: $0 IOMEM_NAME\n");
	exit(1);
}

$name = $ARGV[0];

($range, $info) = split /:/, `grep '$name' /proc/iomem`;
$range =~ s/^[ \t]*//;
($start, $end) = split /-/, $range;

if ($start eq "")
{
	print "Couldn't find '$rom' in /proc/iomem\n";
	exit;
}

$offset = hex "0x$start";
$tmp = hex "0x$end";
$size = 1 + $tmp - $offset;
	
$command = "dd if=/dev/mem of=\"$name.rom\" bs=1c count=$size skip=$offset";
print "range = $range, start = $start, size = $size\n";
print "$command\n";
system $command;
