[util] Add ability to dump PCI device ID list
Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
parent
ae01462b79
commit
452aa157be
|
@ -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
|
||||
|
|
|
@ -55,6 +55,10 @@ do {
|
|||
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:",
|
||||
|
|
Reference in New Issue