Skip to content

Commit

Permalink
[util] Add ability to dump PCI device ID list
Browse files Browse the repository at this point in the history
Signed-off-by: Michael Brown <mcb30@ipxe.org>
  • Loading branch information
mcb30 committed Apr 13, 2015
1 parent ae01462 commit 452aa15
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 0 deletions.
20 changes: 20 additions & 0 deletions src/util/Option/ROM.pm
Expand Up @@ -529,6 +529,26 @@ sub new {
return $hash;
}

sub device_list {
my $hash = shift;
my $self = tied(%$hash);

my $device_list = $hash->{device_list};
return undef unless $device_list;

my @ids;
my $offset = ( $self->{offset} + $device_list );
while ( 1 ) {
my $raw = substr ( ${$self->{data}}, $offset, 2 );
my $id = unpack ( "S", $raw );
last unless $id;
push @ids, $id;
$offset += 2;
}

return @ids;
}

##############################################################################
#
# Option::ROM::PnP
Expand Down
4 changes: 4 additions & 0 deletions src/util/disrom.pl
Expand Up @@ -55,6 +55,10 @@
printf " %-16s %s\n", "Signature:", $pci->{signature};
printf " %-16s 0x%04x\n", "Vendor ID:", $pci->{vendor_id};
printf " %-16s 0x%04x\n", "Device ID:", $pci->{device_id};
if ( $pci->{device_list} ) {
printf " %-16s %s\n", "Device list:",
( join ( ", ", map { sprintf "0x%04x", $_ } $pci->device_list ) );
}
printf " %-16s 0x%02x%02x%02x\n", "Device class:",
$pci->{base_class}, $pci->{sub_class}, $pci->{prog_intf};
printf " %-16s 0x%04x (%d)\n", "Image length:",
Expand Down

0 comments on commit 452aa15

Please sign in to comment.