disable 64-bit dma for one PCI slot only?

YongHyeon PYUN pyunyh at gmail.com
Wed Jul 20 16:26:23 UTC 2011


On Wed, Jul 20, 2011 at 11:54:06AM +0200, Stefan Esser wrote:
> Am 19.07.2011 20:17, schrieb Artem Belevich:
> > On Tue, Jul 19, 2011 at 6:31 AM, John Baldwin <jhb at freebsd.org> wrote:
> >> The only reason it might be nice to stick with two fields is due to the line
> >> length (though the first line is over 80 cols even in the current format).  Here
> >> are two possible suggestions:
> >>
> >> old:
> >>
> >> hostb0 at pci0:0:0:0:      class=0x060000 card=0x20108086 chip=0x01008086 rev=0x09 hdr=0x00
> >> pcib1 at pci0:0:1:0:       class=0x060400 card=0x20108086 chip=0x01018086 rev=0x09 hdr=0x01
> >> pcib2 at pci0:0:1:1:       class=0x060400 card=0x20108086 chip=0x01058086 rev=0x09 hdr=0x01
> >> none0 at pci0:0:22:0:      class=0x078000 card=0x47428086 chip=0x1c3a8086 rev=0x04 hdr=0x00
> >> em0 at pci0:0:25:0:        class=0x020000 card=0x00008086 chip=0x15038086 rev=0x04 hdr=0x00
> >> ...
> >>
> >> A)
> >>
> >> hostb0 at pci0:0:0:0:      class=0x060000 vendor=0x8086 device=0x0100 subvendor=0x8086 subdevice=0x2010 rev=0x09 hdr=0x00
> >> pcib1 at pci0:0:1:0:       class=0x060400 vendor=0x8086 device=0x0101 subvendor=0x8086 subdevice=0x2010 rev=0x09 hdr=0x01
> >> pcib2 at pci0:0:1:1:       class=0x060400 vendor=0x8086 device=0x0105 subvendor=0x8086 subdevice=0x2010 rev=0x09 hdr=0x01
> >> none0 at pci0:0:22:0:      class=0x078000 vendor=0x8086 device=0x1c3a subvendor=0x8086 subdevice=0x4742 rev=0x04 hdr=0x00
> >> em0 at pci0:0:25:0:        class=0x020000 vendor=0x8086 device=0x1503 subvendor=0x8086 subdevice=0x0000 rev=0x04 hdr=0x00
> >> ...
> >>
> >> B)
> >>
> >> hostb0 at pci0:0:0:0:      class=0x060000 devid=0x8086:0100 subid=0x8086:2010 rev=0x09 hdr=0x00
> >> pcib1 at pci0:0:1:0:       class=0x060400 devid=0x8086:0101 subid=0x8086:2010 rev=0x09 hdr=0x01
> >> pcib2 at pci0:0:1:1:       class=0x060400 devid=0x8086:0105 subid=0x8086:2010 rev=0x09 hdr=0x01
> >> none0 at pci0:0:22:0:      class=0x078000 devid=0x8086:1c3a subid=0x8086:4742 rev=0x04 hdr=0x00
> >> em0 at pci0:0:25:0:        class=0x020000 devid=0x8086:1503 subid=0x8086:0000 rev=0x04 hdr=0x00
> >> ...
> >>
> >> I went with vendor word first for both A) and B) as in my experience that is
> >> the more common ordering in driver tables, etc.
> > 
> > Do we need to print (class|devid|device|subvendor|etc.)= on every
> > line? IMHO they belong to a header line. Something like this:
> > 
> > Driver Handle           Class    Vnd:Dev     Sub Vnd:Dev Rev  Hdr
> > ------------------------------------------------------------------
> > hostb0 pci0:0:0:0       0x060000 0x8086:0100 0x8086:2010 0x09 0x00
> > pcib1  pci0:0:1:0       0x060400 0x8086:0101 0x8086:2010 0x09 0x01
> > pcib2  pci0:0:1:1       0x060400 0x8086:0105 0x8086:2010 0x09 0x01
> > none0  pci0:0:22:0      0x078000 0x8086:1c3a 0x8086:4742 0x04 0x00
> > em0    pci0:0:25:0      0x020000 0x8086:1503 0x8086:0000 0x04 0x00
> 
> This is a very good idea, IMHO.
> 
> When I committed pciconf back in 1996 (it had been contributed by
> gwollman) for PCI 1.0 (at a time when their was no standard for PCI to
> PCI brigdes, yet ;-) ), the current format seemed sensible, but the
> tabular form suggested by Artem is much better to parse.
> 
> I'd want to suggest another slightly different format:
> 
> Driver Handle         Class    Vnd    Dev    SubVnd SubDev Rev  Hdr
> hostb0 0:0:0:0        0x060000 0x8086 0x0100 0x8086 0x2010 0x09 0x00
> pcib1  0:0:1:0        0x060400 0x8086 0x0101 0x8086 0x2010 0x09 0x01
> pcib2  0:0:1:1        0x060400 0x8086 0x0105 0x8086 0x2010 0x09 0x01
> none0  0:0:22:0       0x078000 0x8086 0x1c3a 0x8086 0x4742 0x04 0x00
> em0    0:0:25:0       0x020000 0x8086 0x1503 0x8086 0x0000 0x04 0x00
> dummy0 65535:255:31:7 0x020000 0x8086 0x1503 0x8086 0x0000 0x04 0x00
> 
> I.e., print only one header line (no "---"), make the "Handle" column
> wide enough to hold the longest possible value, use only white space to
> separate columns and print 0x as a prefix for all hex numbers.
> 
> Instead of "pci0:0:0:0" for the PCI handle, just "0:0:0:0" could be
> printed, IMHO. (But this is bikeshed material, I guess ...)
> 
> The "Rev" column is required for of devices that are not uniquely
> identified by their Vnd/Dev-IDs. (These used to exist, e.g. the Symbios
> SCSI controllers, though I'm not aware of any device that needed a
> different driver depending on the PCI revision number.)
> 

re(4) and rl(4) are one of example that needs the "Rev".

> I'd be happy to modify pciconf to print the new format in -CURRENT
> (having been the maintainer of the PCI code for quite some time), if
> consensus is reached on a format and if this change is accepted by RE.
> 
> Regards, STefan


More information about the freebsd-stable mailing list