Commit Graph

436 Commits

Author SHA1 Message Date
ragge
d26e77c79f Make match() fail if this is not a DWLPX (i.e a DWLMA).
XXX - DWL* type should be checked in kftxx.c.
This avoids a panic if the device is not a DWLPX.
2004-11-04 19:22:28 +00:00
drochner
61ac7027b3 include "locators.h" explicitely (don't rely on isavar.h doing so) 2004-09-14 19:57:37 +00:00
drochner
6453b0fcb2 fix wrong asm .end names which caused assembler warnings,
from Nicolas Joly per PR port-alpha/26945
2004-09-14 11:27:22 +00:00
drochner
df80bed99c put EISA attachment specific code inside "#if NPCEB > 0",
to avoid references to EISA variables if "pceb" is not defined in
kernel configurations, and save some bytes
tested by Havard Eidnes (or his colleague:-)
2004-09-13 18:42:59 +00:00
drochner
46289e1fef Phase out the use of a string as first "attach args" member to control
which bustype should be attached with a specific call to config_found()
(from a "mainbus" or a bus bridge).
Do it for isa/eisa/mca and pci/agp for now. These buses all attach to
an mi interface attribute "isabus", "eisabus" etc., and the autoconf
framework now allows to specify an interface attribute on config_found()
and config_search(), which limits the search of matching config data
to these which attach to that specific attribute.
So we basically have to call config_found_ia(..., "foobus", ...) where
such a bus is attached.
As a consequence, where a "mainbus" or alike also attaches other
devices (eg CPUs) which do not attach to a specific attribute yet,
we need at least pass an attribute name (different from "foobus") so
that the foo bus is not found at these places. This made some minor
changes necessary which are not obviously related to the mentioned buses.
2004-08-30 15:05:15 +00:00
mhitch
66828ce55c Ooops - buspin is what should be used. 2004-07-06 13:36:19 +00:00
mhitch
a01c5c07dc When calculating the mcpcia irq, include bus pin to account for devices
behind a PCI-PCI bridge.  Fixes PR#25831 (and the duplicate PR#26031).
Verified by Chuck Silvers.
2004-07-06 04:15:50 +00:00
mycroft
0e13cf8bb2 Actually initialize the direct-mapped DMA window, which is clearly not set up
by the firmware on my Multia.  Now PCI devices like the builtin tlp actually
work.
2004-07-02 19:54:22 +00:00
mycroft
3b589a6ca4 Fix a really old ("since day one") bug: send specific EOIs to the PIC, not
non-specific EOIs.  This really shouldn't matter so much, but I'm guessing
there's a strange interaction with the PALcode (possibly related to the fact
that the PALcode itself may be sending an EOI itself on some systems).

I have tested this on a Multia, and it appears to work just fine without the
INITIALLY_{ENABLED,LEVEL_TRIGGERED}() stuff now, so I'm also removing that.
2004-07-01 18:46:49 +00:00
itojun
6123043789 pass string length (= boundary info) to pci_devinfo so that we do not run over
the end of memory region
2004-04-23 21:13:05 +00:00
wiz
d20841bb64 Uppercase CPU, plural is CPUs. 2004-02-13 11:36:08 +00:00
keihan
29c72c57f0 netbsd.org -> NetBSD.org
All "netbsd.org" is now gone from src/sys/arch.
2003-12-04 13:05:15 +00:00
wiz
db579612f4 Definition, not defintion. From miod@openbsd. 2003-09-26 22:25:21 +00:00
lukem
10926a715a add __KERNEL_RCSID() (using 1, for #included .c files) 2003-07-14 23:25:35 +00:00
fvdl
7dd7f8baa2 Handle 64bit DMA addresses on PCI for platforms that can (currently only
enabled on amd64). Add a dmat64 field to various PCI attach structures,
and pass it down where needed. Implement a simple new function called
pci_dma64_available(pa) to test if 64bit DMA addresses may be used.
This returns 1 iff _PCI_HAVE_DMA64 is defined in <machine/pci_machdep.h>,
and there is more than 4G of memory.
2003-06-15 23:08:53 +00:00
thorpej
7ca7bdb37c Use aprint_normal() for cfprint routines. 2003-01-01 00:39:19 +00:00
thorpej
b96bc0d7bc Use CFATTACH_DECL(). 2002-10-02 04:06:36 +00:00
thorpej
9a711d6985 Declare all cfattach structures const. 2002-09-27 20:29:02 +00:00
provos
0f09ed48a5 remove trailing \n in panic(). approved perry. 2002-09-27 15:35:29 +00:00
thorpej
d1ad2ac4f2 Rather than referencing the cfdriver directly in the cfdata entries,
instead use a string naming the driver.  The cfdriver is then looked
up in a list which is built at run-time.
2002-09-27 02:24:06 +00:00
mycroft
98763c9300 Set addr_shift and size_shift to 0 for the dense region. 2002-07-22 20:05:23 +00:00
thorpej
204183c0fa * Add "pcitag_t *pba_bridgetag" to pci_attach_args. This is set to
NULL for root PCI busses.  For busses behind a bridge, it points to
  a persistent copy of the bridge's pcitag_t.  This can be very useful
  for machine-dependent PCI bus enumeration code.
* Implement a machine-dependent pci_enumerate_bus() for sparc64 which
  uses OFW device nodes to enumerate the bus.  When a PCI bus that is
  behind a bridge is attached, pci_attach_hook() allocates a new PCI
  chipset tag for the new bus and sets it's "curnode" to the OFW node
  of the bridge.  This is used as a starting point when enumerating
  that bus.  Root busses get the OFW node of the host bridge (psycho).
* Garbage-collect "ofpci" and "ofppb" from the sparc64 port.
2002-05-16 01:01:28 +00:00
thorpej
90e921d836 Rename alpha_pci_decompose_tag() to pci_decompose_tag(). There *is*
some MI PCI code that uses it, and soon there will be more.  (The rationale
for not making it available previously was that it could be mis-used, but
that's true of a lot of things.)
2002-05-15 16:57:41 +00:00
ross
ddbaa8d2e8 Tweak boilerplate to kill assembler warning (netbsd pr alpha/15119) 2002-01-23 21:33:19 +00:00
thorpej
6a434bacd5 Don't forget to fill in the DMA tag when attaching the AGP
controller.
2001-10-06 02:51:42 +00:00
thorpej
e9d1fccd30 BWX-addressable space is aways linear, so always allow BUS_SPACE_MAP_LINEAR
requests to succeed (and ignore BUS_SPACE_MAP_PREFETCHABLE, since it makes
no difference in BWX-addressable space).
2001-09-16 03:50:01 +00:00
thorpej
79ae830243 Add AGP support (oops, forgot to commit this file with the last batch). 2001-09-16 02:09:47 +00:00
thorpej
17d975073d Oops, don't need to fill in pcibus_attach_args twice. 2001-09-15 04:50:59 +00:00
thorpej
927debe92b Attach "agp" to the AMD-751 PCI host controller (Alpha UP1000/UP1100). 2001-09-15 04:33:37 +00:00
thorpej
6658cbc629 Only filter out the PCI_ID_REG in irongate_conf_read(). 2001-09-15 04:31:40 +00:00
thorpej
4ce0b90ae3 Typos, pointed out by Luke Mewburn (gee, I guess I built a kernel
other than GENERIC).
2001-09-04 16:14:49 +00:00
thorpej
102190b8fe Implement bus_space_mmap(). 2001-09-04 05:31:27 +00:00
mjacob
7a43c0e46b Fixed the one minor buglet that kept 8200s from working
(SCB_VECTOIDX(vec) - SCB_IOVECBASE] -> SCB_VECTOIDX(vec - SCB_IOVECBASE))

Sigh. This is all very good work- this new interrupt stuff. Yet like the
last time my good friend Jason 'simplified' things, we lost information.
It used to be you could tell which specific slot an interrupt was frame
based upon the vector. Now you can't because they're allocated dynamically.
Oh well- it's not all that important.
2001-08-13 23:36:30 +00:00
thorpej
0fb6b9a8f8 Rework the interrupt code, shaving some cycles off in the process.
Rather than an "iointr" routine that decomposes a vector into an
IRQ, we maintain a vector table directly, hooking up each "iointr"
routine at the correct vector.  This also allows us to hook device
interrupts up to specific vectors (c.f. Jensen).

We can shave even more cycles off, here, and I will, but it requires
some changes to the alpha_shared_intr stuff.
2001-07-27 00:25:18 +00:00
thorpej
13e63c6a43 Take a guess and initialize the prefetch threshold to 256 bytes. Haven't
found this one in the manual yet.
2001-07-19 19:09:22 +00:00
thorpej
b0256ef005 DWLPx has a 256-byte DMA prefetch threshold. 2001-07-19 18:59:41 +00:00
thorpej
1e21ada1d9 MCPCIA has a 256 byte DMA prefetch threshold. 2001-07-19 18:55:40 +00:00
thorpej
c563df226b The T2 has a 256 byte DMA prefetch threshold. 2001-07-19 18:50:25 +00:00
thorpej
e6ab362da0 The LCA isn't supposed to have a DMA prefetch threshold, but experience
has shown is that if we don't allocate a spill page, we get a machine
check.  So, initialize the threshold to 256 bytes.
2001-07-19 18:47:38 +00:00
thorpej
4c4c88dbb7 ALCOR/ALCOR2/PYXIS have a 256-byte DMA prefetch threshold. 2001-07-19 18:42:42 +00:00
thorpej
908464bef9 APECS has a 256 byte DMA prefetch threshold. 2001-07-19 18:39:29 +00:00
thorpej
18490eff62 Add support for mbufs to the Alpha SGMAP DMA maps. 2001-07-19 06:40:01 +00:00
elric
99e8b114e0 So, the PowerStorm 4d20 a.k.a. 32bit TGA2 w/ IBM RGB561 RAMDAC was causing
the kernel to panic since it is recognised as a TGA and the TGA driver
doesn't [yet] know what to do with it.

This patch fixes that by:
	o  making tgamatch() try to actually figure out what kind
	   of TGA card is there, rather than simply relying on the
	   vendor/product ids.
	o  creating a tga_cnmatch() so that the console code in
	   arch/alpha/pci/pci_machdep.c can cause the same to occur.
	o  breaking up some of tga_getdevconfig() into a few different
	   functions to re-use code that would have been duplicated.
	o  changed arch/alpha/pci/pci_machdep.c so that it calls out
	   to tga_cnmatch() if DEVICE_IS_TGA() matches before it decides
	   to attach the console as a TGA.

Addresses PR: port-alpha/12923
2001-07-16 00:55:16 +00:00
thorpej
294259060c bzero -> memset 2001-07-12 23:25:39 +00:00
toshii
4866f1a22b Fix typo. s/extention/extension/ 2001-07-05 08:38:24 +00:00
thorpej
5291142217 Determine the size of the B-Cache earier, and initialize the
number of page colors accordingly.
2001-05-02 01:24:29 +00:00
ross
2df695b1e4 o IEEE 754 floating-point completion code.
o Implement the architected FP_C "Floating Point Control Quadword"
2001-04-26 03:10:44 +00:00
thorpej
a51a1d8cdd - Get rid of the prot bits in the mem_clusters[] array when
reserving RAM in the bus_mem extent map.  Problem pointed
  out by Artur Grabowski.
- Work around a slightly annoying bit of behavior exhibited by
  the UP1000 firmware.  The UP1000 firmware reports the space
  consumed by the "ISA hole" in the same MDDT entry as two
  chunks of RAM (on either side of the hole) used by the PALcode,
  all as one "reserved for PALcode" chunk.  We must take this
  into account when reserving RAM in the bus_mem extent map.
2001-04-17 21:52:00 +00:00
ross
e84bc939c9 On alternate Tuesdays, SRM uses a different method of identifying
PCI interrupts routed to the ISA ICU.
2001-03-27 01:39:51 +00:00
ross
5b36d84a9c Don't panic until DEFCON 1. 2001-03-25 06:38:50 +00:00