diff options
Diffstat (limited to 'xpp/utils/zaptel_hardware')
-rwxr-xr-x | xpp/utils/zaptel_hardware | 61 |
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 |