Commit Graph

32 Commits

Author SHA1 Message Date
cgd
a3dbabc67b Update for current PCI device class/subclass and capability codes.
(also, tweak the I2O subclass string to be "standard" -- the removal
of version info didn't extend that far.)
2000-10-07 18:58:13 +00:00
ad
903ae58e7b I2O subclasses currently have nothing to do with the protocol version. 2000-10-02 14:48:13 +00:00
castor
2d8994210a Add a bunch of macros of the form PCI_<regname>_CODE similar to
existing PCI_ID_CODE to create the PCI appropriate register from
parameters.

Avoid use of 'class' in macro -- it's a C++ reserved keyword.
2000-08-21 05:17:33 +00:00
soda
c41ca10d33 add "#define PCI_INTERRUPT_PIN_MAX 0x04" 2000-07-18 10:59:04 +00:00
soda
77625cf7ec long long constant needs "LL" suffix. 2000-06-09 04:45:53 +00:00
jhawk
8d671b6292 Define some PCI power management CSR constants. 2000-05-12 03:35:34 +00:00
thorpej
5939e70ca3 Add support for mapping 64-bit PCI memory space. If the region
is mapped in a way that is inaccessible by a 32-bit bus_addr_t, then
print a message to that effect and return failure.

Original patches by Bill Studenmund, with a few small changes by me.
2000-05-10 16:58:42 +00:00
kleink
085ec82073 Add a register offset for the Capability List Pointer in header type 2.
XXX Ideally the PCI-Cardbus Bridge header should be restructured to just
XXX present standard register definitions, making it ~safe to be included.
2000-05-08 10:45:52 +00:00
uch
bbb8c56fcb add PCI_MAPREG_PPB_END (PCI-PCI bridge) PCI_MAPREG_PCB_END (PCI-Cardbus bridge) 2000-04-28 17:12:45 +00:00
drochner
4f1e715248 use BUS_SPACE_MAP_PREFETCHABLE instead BUS_SPACE_MAP_CACHEABLE where the
PCI BAR bit is referred to
2000-01-25 22:30:04 +00:00
enami
7463c844a0 Make this file compile again; terminate the continuation line with backslash. 1999-11-16 02:13:02 +00:00
thorpej
a49d3ecb33 Add a macro to generate a class code given class, subclass, and interface.
From UCHIYAMA Yasushi's PCI BIOS patches.
1999-11-15 23:41:10 +00:00
cgd
6146ed7db8 add classes/subclasses new in PCI 2.2. Needs a bit of cleanup, but then,
so does everything involving configuration space headers and if i don't
get this out of my source tree i'll go insane.
1999-09-27 03:20:47 +00:00
drochner
ac7ba300c0 add two of the newer register definitions 1998-12-21 20:31:54 +00:00
drochner
bbe9d71415 add support for "extended capabilities" (new in PCI spec 2.2) 1998-11-07 16:47:22 +00:00
mycroft
6d3d8a1350 Make copyright notices with my name consistent. 1998-08-15 03:02:31 +00:00
cgd
350942b30d according to the PCI 2.1 spec, the low _two_ bits of I/O BARs have
defined meaning/value other than specifying the address of the region.
(lowest bit is 1, meaning I/O space.  second-lowest bit is reserved.)
1998-06-01 17:48:13 +00:00
cgd
27b21a3a47 add a PCI_HDRTYPE_TYPE() macro, to get the 'type' portion of the
headertype register (i.e., not including the 'multifunction' bit).
1998-05-18 17:17:04 +00:00
thorpej
ce28bee247 Add UDF and 66MHz capable bit definitions for the PCI status register.
From Zubin D. Dittia <zubin@clouseau.arl.wustl.edu>, PR #4249.
1998-04-14 21:22:44 +00:00
cgd
db11467340 clean up some constants ([A-F]->[a-f] in hex constants 1997-04-11 05:24:40 +00:00
cgd
2cde9c6e69 fix multi-function device support, add new known classes/subclasses,
and clean up class/subclass printing.  From brb@brig.com via PR 3359.
1997-03-19 19:38:46 +00:00
mycroft
121dfd8f1b Change PCI_MAPREG_{MEM,IO}_SIZE() to use the standard `x & -x' trick to select
the lowest bit set.  This isn't any more or less valid according to the PCI
spec, but it deals with lame devices that don't implement all of the top
bits.
1996-08-10 15:42:33 +00:00
cgd
f160e92962 revert PCI_MAPREG_IO_ADDR_MASK and PCI_MAPREG_IO_SIZE_MASK to their old
values, i.e. 0xfffffffe and 0xffffffff respectively.  The changed
definitions were incorrect, according to the PCI Local Bus Specification
(Revision 2.0).  Further rationale and a workaround for the broken
devices that instigated the change provided in a message to
current-users@netbsd.org, dated Mon, 05 Aug 1996 22:06:58 -0400,
message ID 16773.839297218@ux2.sp.cs.cmu.edu>.
1996-08-06 02:11:25 +00:00
mycroft
a2aa46e1c4 Add PCI_MAPREG_{IO,MEM}_SIZE(), and use them. 1996-07-26 07:13:52 +00:00
mycroft
53f21c73fb Changes PCI_MAPREG_IO_ADDR_MASK to 0xfffe. 1996-07-26 06:35:35 +00:00
cgd
87328287b7 modify these to provide a new, better-specified PCI interface
(soon to be documented on mailing lists; eventually in section 9 manual
pages), most importantly:
	(1) support interrupt pin swizzling on non-i386 systems with
	    PCI-PCI bridges (per PPB spec; done, but meaningless, on i386).
	(2) provide pci_{io,mem}_find(), to determine what I/O or memory
	    space is described by a given PCI configuration space
	    mapping register.
	(3) provide pci_intr_map(), pci_intr_string(), and
	    pci_intr_{,dis}establish() to manipulate and print info about
	    PCI interrupts.
	(4) make pci functions take as an argument a machine-dependent
	    cookie, to allow more flexibility in implementation.
1996-03-27 04:08:24 +00:00
cgd
72060dc6fa add definitions for the BIST/Header Type/Latency Timer/Cache Line Size
configuration space register, and use it to determine whether or not
a given PCI device uses multiple functions.
1996-03-27 00:13:50 +00:00
cgd
c8487c701e reorganize mapping register definitions 1996-03-04 19:30:50 +00:00
mycroft
fc427776a7 Add stuff for I/O mapping. 1995-07-27 00:29:02 +00:00
cgd
4f7335a75a macros to split out various parts of PCI registers, adjust constants
to match.  (now, comparisons are comparisons, code doing them doesn't
have to mask.)  define types for the various parts of the registers'
contents, where practical.
1995-06-18 01:34:01 +00:00
cgd
022ee8f7fe new RCS ID format. 1994-10-27 04:14:23 +00:00
mycroft
6df721be97 Add PCI autoconfiguration support. 1994-08-09 00:47:46 +00:00