#!/usr/bin/perl -w use warnings; use strict; use FindBin; use lib "$FindBin::Bin"; use Option::ROM qw ( :all ); my @romfiles = @ARGV or die "Usage: $0 rom-file-1 rom-file-2 ... > multi-rom-file\n"; while ( my $romfile = shift @romfiles ) { # Read ROM file my $rom = new Option::ROM; $rom->load ( $romfile ); # Tag final image as non-final in all except the final ROM if ( @romfiles ) { my $image = $rom; $image = $image->next_image() while $image->next_image(); $image->pci_header->{last_image} &= ~PCI_LAST_IMAGE; $image->fix_checksum(); } # Write ROM file to STDOUT $rom->save ( "-" ); }