Commit Graph

309 Commits

Author SHA1 Message Date
eeh 5783dd5873 instance-to-path works on instances not nodes. 2001-08-31 17:10:54 +00:00
eeh b14bf2ceef Fix incorrect parentheses. 2001-08-28 14:51:28 +00:00
eeh 1007ef1595 Fix backwards compare. (From Jason Wright) 2001-08-23 16:14:12 +00:00
eeh 4b569fc269 Fix bug involving small, non-contiguous dma segments.
From Manuel Bouyer.
2001-08-06 22:02:58 +00:00
eeh 7950c7dffd Don't match ebus nodes not called "ebus" like the ones on hme cards. 2001-07-25 03:49:54 +00:00
eeh 64a9c222c0 Use OF_getprop instead of getprop. 2001-07-24 19:27:10 +00:00
eeh cc6781a464 Get rid of a bunch of obsolete files. 2001-07-23 18:21:26 +00:00
eeh 1fead733d9 PCI overhaul. 2001-07-20 00:07:12 +00:00
eeh 7e8421fa5b Also attach apropriate devices named "serial". 2001-07-19 23:55:50 +00:00
wiz cc0b68092e Correct various misspellings of 'transfer' and inflected forms. 2001-07-08 18:06:42 +00:00
eeh 55e676fb15 Remove another unused file. 2001-06-25 23:07:03 +00:00
eeh 47b3df529a Remove unused file. 2001-06-25 21:28:03 +00:00
simonb e5bd00e48d For ports that wire up pciide in compatibility mode, have
them define __HAVE_PCIIDE_MACHDEP_COMPAT_INTR_ESTABLISH
in pci_machdep.h and pciide_map_compat_intr() only calls
pciide_machdep_compat_intr_establish() if that preprocessor
define exists.

Ports that don't need to do this no longer need to supply a
dummy function.
2001-06-08 04:48:54 +00:00
mrg 46762d3560 fix lint exposed by GCC 3.0 20010604 (prerelease). 2001-06-04 20:56:51 +00:00
lukem d84d2c6c85 add missing #include "opt_kgdb.h" 2001-05-30 15:24:23 +00:00
chs 11a9651c8f replace vm_page_t with struct vm_page *. 2001-05-26 21:27:10 +00:00
mrg 2f3c8dae5a correct some comments. <80 char debug statements. 2001-05-18 22:01:57 +00:00
mrg f42ff7ccae minor cleanups. 2001-05-18 22:01:19 +00:00
mrg a9f7a4e194 move the sbus IOMMU work around into the sbus code, so that the psycho
doesn't have to lose a page.
2001-05-18 21:35:23 +00:00
mrg 0996d006da do not force ebus interrupts to have bit 0x20 set. 2001-05-18 19:17:50 +00:00
scw 2963ff5c58 Add `l_poll' to `struct linesw' and provide an xxxpoll() entry point
in each tty driver to indirect through it.

This allows tty line-disciplines to handle poll(2) system calls.
2001-05-02 10:32:08 +00:00
thorpej 1c3a62e066 Sprinkle pmap_update() calls after calls to:
- pmap_enter()
- pmap_remove()
- pmap_protect()
- pmap_kenter_pa()
- pmap_kremove()
as described in pmap(9).

These calls are relatively conservative.  It may be possible to
optimize these a little more.
2001-04-24 04:30:50 +00:00
mrg af58b235e0 adapt to systems with out interrupt-map & interrupt-map-mask properties. 2001-03-21 01:33:47 +00:00
hubertf cda43785c6 Add comment on what 'overtemp' is about. OK'd by eeh. 2001-03-16 10:47:25 +00:00
eeh b612a766a7 Handle overtemp intr. 2001-03-14 00:52:19 +00:00
thorpej 85868e3c09 Pay attention to BUS_DMA_STREAMING when builing an IOMMU TTE. 2001-03-09 20:05:39 +00:00
mrg f1d2503dc5 rework pci_attach_hook() to just deal with the INO, not the full
interrupt number.  properly find interrupts for the E250.  modify
pci_intr_map() accordingly.  retire psycho_intr_map().  deal with
INO values upto 0x3f, not upto 0x32.  restructure sabre_init() and
psycho_init() to be more similar, and display each psycho's IGN.
psycho_intr_establish() deals with INO upto 0x3f, values from 0x32
and higher get 0 for IPL.

tested on E250 & U5.
2001-03-06 08:09:16 +00:00
mrg 7a1cb1dbc2 use pci_bus_devorder() and pci_dev_funcorder() 2001-03-02 06:34:06 +00:00
mrg c452d0b725 adjust some comments to reality. 2001-02-28 15:21:08 +00:00
eeh 85cffb544d Improve legibility and iommu_dvmamap_sync(). 2001-02-24 18:49:06 +00:00
eeh 3daccde8d4 Print out more useful data if there are interrupt issues. 2001-02-11 00:02:58 +00:00
eeh 2411eab448 Fix D$ aliasing issues in a DIAGNOSTIC check. 2001-02-06 19:04:57 +00:00
martin a7206004fc Faster error handling for iommu_dmamap_load_raw; avoid loading the map
and unloading on error when we clearly can't get out without an error.
2001-01-28 01:26:57 +00:00
eeh 6c3bf28ffd Fix dvma problem caused by previous. Seems like the dvma segment calculation
in iommu_dmamap_unload() was not quite right.
2001-01-27 03:40:39 +00:00
martin f4eec8f31f iommu_dvmamap_load_raw: add a check for creating maps larger than
expected by the creator of the dma map and fail apropriately. This
makes the syssrc/dev/pci/if_vr.c driver work.
2001-01-25 21:41:10 +00:00
martin 97b57e69cc Make bus_dmamap_load_mbuf and bus_dmamap_load_uio use independend
segment lists for their mapping; make iommu_dmamap_unload deal with
this type of maps.

Coded by Eduardo, tested (and minimaly tweaked) by me.
2001-01-23 20:31:28 +00:00
martin 84af4fa114 Enable IO space mapping by default.
Fixes PR 11940.
2001-01-19 21:25:19 +00:00
martin 6695531e85 Fix format warnings to make it compile again. 2001-01-14 09:43:33 +00:00
pk 301b806db0 ebus_find_node(): plug memory leak; make debug output meaningfuller. 2001-01-08 22:15:47 +00:00
sommerfeld 851de295eb Change pci_intr_map to get interrupt source information from a "struct
pci_attach_args *" instead of from four separate parameters which in
all cases were extracted from the same "struct pci_attach_args".

This both simplifies the driver api, and allows for alternate PCI
interrupt mapping schemes, such as one using the tables described in
the Intel Multiprocessor Spec which describe interrupt wirings for
devices behind pci-pci bridges based on the device's location rather
the bridge's location.

Tested on alpha and i386; welcome to 1.5Q
2000-12-28 22:59:06 +00:00
mrg 43251365b4 com_attach_subr() prints the newline for us. 2000-12-20 16:19:09 +00:00
mrg 703ec39a02 fix warnings in DEBUG & DIAGNSTIC code. 2000-12-06 01:47:49 +00:00
fvdl 95ed1f82c4 Make gcc like a cast. 2000-12-04 20:29:34 +00:00
fvdl 2ccdc61f62 Avoid (safe) cast warnings. 2000-12-04 20:19:49 +00:00
fvdl 2fb588e51d Warning police. Mostly useless format warnings. Switch Makefile for
kernel compiles to the warning flags that other ports also use.
2000-12-04 16:01:18 +00:00
fvdl a21f36eeb2 Make softintr_establish prototype match other ports, avoiding compile
warnings.
2000-12-03 14:49:50 +00:00
mrg 0485f611f1 remove dead debugging code. 2000-11-18 03:49:38 +00:00
eeh efaf3dbb74 Remove unnecessary header file that causes linker issues. 2000-11-10 17:47:55 +00:00
mrg 3ea4c67b6b remove unused variable 2000-11-10 11:57:26 +00:00
eeh 17b69d1833 Attach the sunkbd line discipline to zstty. 2000-11-09 00:02:54 +00:00
eeh 052afce2a5 Use new MI console magic framework. 2000-11-08 23:40:31 +00:00
eeh 2b8da88d55 Remove debug printfs. 2000-11-08 23:24:12 +00:00
eeh 23a0c49039 Adapt to the new line discipline scheme. 2000-11-02 00:21:03 +00:00
eeh b19423f823 Pass along bus frequency. 2000-11-01 06:19:59 +00:00
mrg 82d7f3e331 #include <machine/sparc64.h> for prom_printf() prototype. 2000-10-20 05:32:35 +00:00
mrg f39b5cf92e wrap long lines. 2000-10-19 12:25:04 +00:00
mrg d66f9f3321 add a cast to fix a warning. 2000-10-19 05:38:35 +00:00
eeh 3a2599ebec Don't take ref/mod faults on DMA segments mapped in to the kernel. 2000-09-28 15:28:43 +00:00
eeh a5a8082482 Use prom_printf() for debugging instead of printf() since the console may
not be functional.
2000-09-28 15:23:06 +00:00
eeh 805ffd07cc Sun Keyboard/Mouse line discipline support. 2000-09-21 23:14:40 +00:00
eeh ac3f296768 Guts of the Sun Keyboard/Mouse line disciplines.
N.B. They don't recognize L1-A yet.
2000-09-21 22:25:08 +00:00
eeh a0f2ab32f7 Make 64-bit clean. 2000-08-26 16:02:06 +00:00
nathanw 5127aa189d In fdioctl(), allocate fd_formb dynamically when needed, rather than on
the stack, and remove the no-longer-necessary PHOLD()/PRELE() calls
in fdformat().

(This eliminates 1/3 of the instances of PHOLD()/PRELE() in the kernel code.)

XXX We still have too many mostly-redundant floppy drivers.
2000-08-24 20:04:28 +00:00
pk 194a6c2d97 remove pfourreg.h. 2000-08-23 12:08:16 +00:00
pk 408d2f01d0 Brooktree DAC support now lives in sys/dev/sun. 2000-08-23 10:08:48 +00:00
pk 837ef2bae6 This driver is now in sys/dev/sbus. 2000-08-23 10:07:46 +00:00
pk aa81eb0f8b This file is now in sys/dev/sun. 2000-08-23 10:07:25 +00:00
pk c85ada8053 These drivers are now in sys/dev/sun 2000-08-23 10:05:46 +00:00
pk 317a570728 These devices will never be found on sun4u machines. 2000-08-22 21:43:35 +00:00
eeh aeb88321db Call the parent bus dvmamap_unload function to clear the cache rather
than do it ourselves.
2000-08-01 00:22:41 +00:00
mrg a254dae933 ebus sc_is is a pointer now, already. 2000-07-27 14:17:10 +00:00
pk 2079f86890 On-board devices on psycho machines seem to have the `interrupt' property
in the parent bus format (i.e. an INO) rather than being represented as
an PCI interrupt line. Provide a hack to work around this in pci_attach_hook().
2000-07-26 17:46:56 +00:00
pk 34270e85bd Use probeget() in pci_config_read() for the psycho, to avoid bus
faults when probing PCI space.
2000-07-18 11:37:31 +00:00
pk 073e24cd1b Set up register bank sharing bwteen psycho A & B based on matching
physical addresses.  Allocate IOMMU state separately and refer to it
from both psycho_softc's.
2000-07-18 11:35:03 +00:00
pk 9de310aebe Use per-PBM control/status register addresses provided by the PROM.
Print version/implementation info.
2000-07-14 15:13:35 +00:00
pk 04fe9636ba Provide details on the `psy_csr' register. 2000-07-14 15:09:51 +00:00
pk 8258c0e780 Fix padding in struct pci_ctl. 2000-07-14 13:17:12 +00:00
pk 7e8f67ad97 No need to fetch the psycho's own registers as thet are already passed
down from the parent bus.  Also account for the difference in `reg'
properties in psycho vs sabre chips.
2000-07-12 21:49:44 +00:00
pk f56554a578 If there is no "interrupt-map" property on the ebus node, assume the
child "interrupt" properties are already in a format suitable for
the parent bus.
2000-07-12 21:07:36 +00:00
eeh f10d7699fc Break into debugger by typing `+++++', 2000-07-10 20:24:23 +00:00
eeh 048f1387db Function signature for bus_intr_establish() changed. 2000-07-10 01:11:14 +00:00
eeh e5cd515b89 Upgrate interrupt handling:
1) use interrupt vectors for specific zs chips rather than polling
	   all of them.

	2) use softintr_schedule() and schedule it for a particular device
	   rather than poll all devices.
2000-07-09 21:58:43 +00:00
eeh f43ab74a43 Shuffle around some fields to waste less space on LP64. 2000-07-09 21:55:24 +00:00
pk 406e0f779f Add a `device class' interrupt level argument (from machine/intr.h)
to bus_interrupt_establish().

It's currently only used in sparc64/dev/psycho.c to assign a CPU interrupt
level to devices in PCI slots.
2000-07-09 20:57:41 +00:00
mrg b91804af6c split up debug flags so i can turn off some of them 2000-07-07 13:10:34 +00:00
mrg 4b21f66d57 work around a bug passing arguments to iommu_dvma_load_raw() 2000-07-07 12:53:29 +00:00
eeh 3f2289a3d7 Handle bus_dma aligment properly. 2000-07-07 02:50:19 +00:00
pk f6d8b8e963 We want to index the PCI `interrupt clear' registers with the Interrupt
Number Offset.  (this stuff needs a serious cleanup).
2000-07-05 12:11:59 +00:00
eeh 58c36586cd Use the same IPLs as everyone else. 2000-07-03 17:42:37 +00:00
mrg 585f7645bf iommu_dvmamap_load*(), pass an alignment constraint, as well as
EX_BOUNDZERO, to extent_alloc().  this fixes problems with it
(extent_alloc()) returning incorrect values, when the start of
the extent is not aligned as strongly as the requested area..

raw access to ide disks now works.
2000-07-02 14:00:38 +00:00
mrg 4d14e81c0b remove include of <vm/vm.h>. <vm/vm.h> -> <uvm/uvm_extern.h> 2000-06-29 07:37:53 +00:00
mrg 2f159a1bac remove/move more mach vm header files:
<vm/pglist.h> -> <uvm/uvm_pglist.h>
	<vm/vm_inherit.h> -> <uvm/uvm_inherit.h>
	<vm/vm_kern.h> -> into <uvm/uvm_extern.h>
	<vm/vm_object.h> -> nothing
	<vm/vm_pager.h> -> into <uvm/uvm_pager.h>

also includes a bunch of <vm/vm_page.h> include removals (due to redudancy
with <vm/vm.h>), and a scattering of other similar headers.
2000-06-26 14:20:25 +00:00
simonb 889c658b5b Change the kernel mmap interface so that the offset to map is an
"off_t" and the return value is a "paddr_t" to allow mappings
at offsets past 2^31 bytes.  Somewhat inspired by FreeBSD, which
only changed the offset to a "vm_offset_t".

Includes updates for the i386, pc532 and sh3 mmmmap from Jason Thorpe.
2000-06-26 04:55:19 +00:00
eeh 2e1e35d58e Enable interrupts. 2000-06-24 23:27:23 +00:00
eeh 6c5d2dbbac With these changes the kernel seems almost stable again. 2000-06-24 20:48:36 +00:00
eeh 8e1fd2e3c6 Remove a couple of references to vaddrs.h that slipped through. 2000-06-24 16:51:34 +00:00
eeh be308420d4 Get rid of vaddrs.h. 2000-06-24 04:20:58 +00:00
eeh d24721788a Correct calculation of length for dma segments in iommu_dmamap_load(). 2000-06-22 18:18:19 +00:00
eeh 245619bad4 Have separate data and text segments, make text read-only. 2000-06-19 23:30:32 +00:00
eeh 4ffba8be2a Fix uninitialized pointer bug. 2000-06-19 22:29:15 +00:00