Re: [RFC][PATCH] adding PCI bus information to SCSI layer

From: Jonathan Lundell (jlundell@pobox.com)
Date: Sat Apr 14 2001 - 02:35:44 EST


At 4:34 PM -0500 2001-04-13, Matt Domsch wrote:
>What I'd like to do is add the PCI location of the SCSI controller to
>the information printed in /proc/scsi/scsi, as follows:
>
>Attached devices:
>Host: scsi0 Channel: 00 Id: 05 Lun: 00 PCI bus: 1 slot: 6 fn: 0
> Vendor: NEC Model: CD-ROM DRIVE:466 Rev: 1.06
> Type: CD-ROM ANSI SCSI revision: 02
>Host: scsi1 Channel: 00 Id: 00 Lun: 00 PCI bus: 0 slot: 2 fn: 1
> Vendor: DELL Model: PERCRAID RAID5 Rev: 0001
> Type: Direct-Access ANSI SCSI revision: 02
>Host: scsi1 Channel: 00 Id: 01 Lun: 00 PCI bus: 0 slot: 2 fn: 1
> Vendor: DELL Model: PERCRAID Stripe Rev: 0001
> Type: Direct-Access ANSI SCSI revision: 02

Jeff Garzik proposed a scheme for ethtool that addresses somewhat similar needs for network interfaces. It's nice and general, and in particular works for non-PCI interfaces. Why not something like that for SCSI?

At 7:54 AM -0500 2001-03-21, Jeff Garzik wrote:
>In various scenarios where userland needs to interact with hardware,
>userland often needs to know exactly what driver (and driver version) is
>currently running on a given interface. Hotplugging and other
>applications could -really- use the ability to find out bus information
>for a given interface. Firmware
>
>So I propose the attached addition to the ethtool interface. It adds a
>new structure with several ASCII text fields, which are filled in at the
>driver's discretion. Userland then interprets these fields for their
>own evil designs.
>
>Currently (AFAIK) for all kernel interfaces, userland has no reliable
>way to associate a hardware device with a kernel interface, or a driver
>with a kernel interface[1]. Since we have no generic register_driver()
>interface, solving this problem means implementing a domain-specific
>solution like I have done here...
>
>--
>Jeff Garzik | May you have warm words on a cold evening,
>Building 1024 | a full mooon on a dark night,
>MandrakeSoft | and a smooth road all the way to your door.
>Index: include/linux/ethtool.h
>===================================================================
>RCS file: /cvsroot/gkernel/linux_2_4/include/linux/Attic/ethtool.h,v
>retrieving revision 1.1.1.2
>diff -u -r1.1.1.2 ethtool.h
>--- include/linux/ethtool.h 2000/11/14 22:01:49 1.1.1.2
>+++ include/linux/ethtool.h 2001/03/21 12:42:15
>@@ -24,10 +24,21 @@
> u32 reserved[4];
> };
>
>+/* these strings are set to whatever the driver author decides... */
>+struct ethtool_drvinfo {
>+ char driver[32]; /* driver short name, "tulip", "eepro100" */
>+ char version[32]; /* driver version string */
>+ char fw_version[32]; /* firmware version string, if applicable */
>+ char bus_info[32]; /* Bus info for this interface. For PCI
>+ * devices, use pci_dev->slot_name. */
>+ char reserved1[32];
>+ char reserved2[32];
>+};
>
> /* CMDs currently supported */
>-#define ETHTOOL_GSET 0x00000001 /* Get settings, non-privileged. */
>+#define ETHTOOL_GSET 0x00000001 /* Get settings. */
> #define ETHTOOL_SSET 0x00000002 /* Set settings, privileged. */
>+#define ETHTOOL_GDRVINFO 0x00000003 /* Get driver info. */
>
> /* compatibility with older code */
> #define SPARC_ETH_GSET ETHTOOL_GSET

-- 
/Jonathan Lundell.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sun Apr 15 2001 - 21:00:22 EST