summaryrefslogtreecommitdiff
path: root/xpp/utils/zaptel_hardware
diff options
context:
space:
mode:
Diffstat (limited to 'xpp/utils/zaptel_hardware')
-rwxr-xr-xxpp/utils/zaptel_hardware61
1 files changed, 48 insertions, 13 deletions
diff --git a/xpp/utils/zaptel_hardware b/xpp/utils/zaptel_hardware
index 91fcb2e..473be1f 100755
--- a/xpp/utils/zaptel_hardware
+++ b/xpp/utils/zaptel_hardware
@@ -33,8 +33,7 @@ sub show_xbus($) {
my @xpds = $xbus->xpds;
my $serialnum = $xbus->serial();
my $connector = ($xbus->status eq 'CONNECTED') ? $xbus->connector : "MISSING";
- $connector = "(" . $connector . ")";
- printf "%-10s %-20s\n", $serialnum, $connector;
+ printf " SERIAL=%-10s CONNECTOR=%-20s\n", $serialnum, $connector;
foreach my $xpd (sort { $a->num <=> $b->num } @xpds) {
my $reg = $xpd->zt_registration;
my $span;
@@ -53,15 +52,18 @@ sub show_xbus($) {
}
my %seen;
-my $format = "%-20s\t%4s:%4s %-12s ";
+my $format = "%-20s %-12s %4s:%4s %s\n";
foreach my $dev (@hardware) {
my $xbus = $dev->xbus;
my $driver = $dev->driver || "";
- $driver = "[$driver]";
- printf $format, $dev->hardware_name, $dev->vendor, $dev->product, $driver;
+ my $loaded = $dev->loaded;
+ die "driver should be '$driver' but is actually '$loaded'"
+ if defined($loaded) && $driver ne $loaded;
+ $driver = "$driver" . (($loaded) ? "+" : "-");
+ my $description = $dev->description || "";
+ printf $format, $dev->hardware_name, $driver, $dev->vendor, $dev->product, $description;
if(!$xbus) {
- printf "\n";
next;
}
$seen{$xbus->name} = 1;
@@ -78,12 +80,11 @@ foreach my $xbus (Zaptel::Xpp::xbuses('SORT_CONNECTOR')) {
}
}
-
__END__
=head1 NAME
-zaptel_hardware - Shows Zaptel hardware devices.
+zaptel_hardware - Shows Zaptel hardware devices.
=head1 SYNOPSIS
@@ -91,10 +92,44 @@ zaptel_hardware
=head1 DESCRIPTION
-Show all zaptel hardware devices, both used and unused.
+Show all zaptel hardware devices. Devices are recognized according to
+lists of PCI and USB IDs in Zaptel::Hardware::PCI.pm and
+Zaptel::Hardware::USB.pm . For PCI it is possible to detect by
+sub-vendor and sub-product ID as well.
+
+The first output column is the connector: a bus specific field that
+shows where this device is.
+
+The second field shows which driver should handle the device. a "-" sign
+marks that the device is not yet handled by this driver. A "+" sign
+means that the device is handled by the driver.
+
+For the Xorcom Astribank (and in the future: for other Zaptel devices)
+some further information is provided from the driver. Those extra lines
+always begin with spaces.
+
+Example output:
+
+Without drivers loaded:
+
+ usb:001/002 xpp_usb- e4e4:1152 Astribank-multi FPGA-firmware
+ usb:001/003 xpp_usb- e4e4:1152 Astribank-multi FPGA-firmware
+ pci:0000:01:0b.0 wctdm- e159:0001 Wildcard TDM400P REV H
+
+With drivers loaded:
+
+ usb:001/002 xpp_usb+ e4e4:1152 Astribank-multi FPGA-firmware
+ SERIAL=[usb:123] CONNECTOR=usb-0000:00:1d.7-1
+ XBUS-00/XPD-00: FXS Span 2
+ XBUS-00/XPD-10: FXS Span 3
+ XBUS-00/XPD-20: FXS Span 4
+ XBUS-00/XPD-30: FXS Span 5
+ usb:001/003 xpp_usb+ e4e4:1152 Astribank-multi FPGA-firmware
+ SERIAL=[usb:4567] CONNECTOR=usb-0000:00:1d.7-4
+ XBUS-01/XPD-00: FXS Span 6 XPP-SYNC
+ XBUS-01/XPD-10: FXO Span 7
+ XBUS-01/XPD-20: FXO Span 8
+ XBUS-01/XPD-30: FXO Span 9
+ pci:0000:01:0b.0 wctdm+ e159:0001 Wildcard TDM400P REV E/F
-=head1 BUGS
-Assumes a bit too much about the output of lspci and sysfs. Currently
-the PCI scanning will not work on e.g. CentOS 4. This should be fixed in
-Zaptel::Hardware::PCI.pm