Commit Graph

1721 Commits

Author SHA1 Message Date
pk be7f5a7031 Switch to a bus_space(9)-based device attachment scheme.
The dma & lebuffer devices behave like busses to accommodate the
OBP layout. For practical purposes, they are implemented as
Sbus "extensions".
1998-03-21 20:23:09 +00:00
pk 69fe6f242f Account for changed bus attachment scheme. 1998-03-21 20:11:30 +00:00
pk 165120cfaf Sbus attach arguments and map function prototypes go here. 1998-03-21 20:10:07 +00:00
pk 77f499595c Switch to a bus_space(9)-based device attachment scheme.
- device attachment arguments contain bus-specific
	  address and interrupt levels.

	- devices must call back on bus map functions to get their
	  addresses and interrupt levels translated properly.

	- sun4m's obio bus is treated like an Sbus slot.

	- the sun4-style obio bus has its own attach arguments
	  and map functions.
1998-03-21 19:55:31 +00:00
pk 73f387899e #define several register bank offsets, so we don't need to refer to
structure fields.
1998-03-21 19:45:45 +00:00
pk 61365a8b8e Add bus tags to softc. 1998-03-21 19:43:17 +00:00
pk 83cec33afc Split the fb_setsize() utility in two separate functions: one to be
used by OBP machines and another one for sun4/eeprom machines.
1998-03-21 19:42:00 +00:00
pk 66190b4b99 Remove old `confargs' structure which is no longer used; extract the
structures representing the ROM properties.
Also, define the `mainbus' and `obio' attach arguments here.
1998-03-21 19:36:27 +00:00
pk 9e69994eaa Add `interrupt establish' and ` device mmap' methods and macros to
match to the bus tag structure.
1998-03-21 19:31:27 +00:00
pk 9c3abc26a4 Add RCS-Id & copyright. 1998-03-21 12:29:29 +00:00
pk 71fc7f093d The iommu "bus" now presents its own attach arguments to its children. 1998-03-21 12:21:18 +00:00
pk d19772ea9e Transform `mainbus' attach code to use its own attach arguments.
Add a couple rom-property helper functions; some overlapping functionality
with existing function, but hold on to the latter for just a while.
1998-03-21 12:18:25 +00:00
pk 8d63cb6db8 Remove incorrect address validity check in two `#if DEBUG' sections. 1998-03-21 11:32:43 +00:00
pk 1ccb578b36 We can't currently attach `audioamd' at `obio'. 1998-03-21 11:15:25 +00:00
pk 04730ad038 Declare separate bus attachments for devices that can occur on multiple busses. 1998-03-21 11:12:56 +00:00
bouyer 9f50fca1fd Add commented out "options FFS_EI" 1998-03-18 16:34:41 +00:00
cgd 9da165424c allow LDSTATIC definition to be overridden by bsd.own.mk/mk.conf 1998-03-02 19:57:00 +00:00
fvdl ede1a3fc5b Make this compile again. 1998-03-02 17:58:34 +00:00
pk d22f956657 Remove `_NEW_I82586'. 1998-02-28 01:15:51 +00:00
perry 1ed8ea9966 note second parm of sysarch() is now void *, + trivial KNF, etc. 1998-02-25 21:41:55 +00:00
mycroft c1444078b5 Finish making this compile after libkern changes. 1998-02-22 15:25:28 +00:00
mycroft b20ba808f2 Clean up after ffs() change.
Do *not* set runtime here; the way it was done was highly bogus, and the value
just gets blasted right away by mi_switch().
1998-02-22 15:13:36 +00:00
mycroft 1638d144ca Always go to splhigh() inside DDB. 1998-02-22 14:07:21 +00:00
mycroft bb0363853f ffs() is identical to the one from libc, so just use that.
Move random() to libkern.
1998-02-22 09:31:00 +00:00
mycroft 3b9429b248 Minor changes to make all the float.h files match. 1998-02-18 11:01:27 +00:00
thorpej 8354e68508 Remove "class" declarations, and add "devclass" declarations where
appropriate.  Fix several inconsistencies between device class and
attributes.  Mostly from Chris Demetriou.
1998-02-16 22:12:45 +00:00
pk 0fc808b760 Think-o in pmap_extract4m(), detected by UVM. 1998-02-14 09:28:52 +00:00
thorpej c26f962957 Use kernel_map in bus_dmamem_{map,free}(). 1998-02-11 03:08:31 +00:00
thorpej bdecbe552b Use M_DMAMAP where appropriate. 1998-02-11 01:50:36 +00:00
mrg d90485202c - add defopt's for UVM, UVMHIST and PMAP_NEW.
- remove unnecessary UVMHIST_DECL's.
1998-02-10 14:08:44 +00:00
thorpej da21f06eb5 Remove the pager options; they're in std.sparc, and will stay there
until UVM is no longer optional.
1998-02-08 19:24:28 +00:00
thorpej 93b0450b6a Back out previous change (again, grrrr). 1998-02-08 19:23:20 +00:00
tv 40f13df5bc the *PAGER options were moved to the generic config files, but not moved
out of here (causes duplicate opeion errors) -- fix.
1998-02-08 17:46:47 +00:00
thorpej 1305ecbe62 Allow callers of uvm_km_suballoc() to specify where the base of the
submap _must_ begin, by adding a "fixed" boolean argument.
1998-02-08 06:15:53 +00:00
pk 334b20bbd6 Define a `DMA_FLUSH' macro; dma chip revs 0 & 1 have a different bit
to reset the internal state engine.
1998-02-07 22:41:27 +00:00
chs abf50cf8c3 add UVM stuff. 1998-02-07 17:28:18 +00:00
chs 50328f94f4 fix initialized variable. 1998-02-07 17:26:34 +00:00
chs 17755a8fae fix typo in locking. 1998-02-07 02:36:58 +00:00
thorpej 840bd3d7b3 Back out previous change. Until the default VM system is UVM, these
"options" ARE required, and leaving them here doens't hurt anything in
the UVM case.
1998-02-06 08:21:55 +00:00
mrg 919667a0c7 backout previous change. 1998-02-06 01:22:54 +00:00
pk 0725302eac vme_bus_probe() takes an `offset' argument. 1998-02-06 00:22:41 +00:00
mrg 40b61fb276 put PIL_CLOCK and splclock together, like the rest.. 1998-02-06 00:02:30 +00:00
pk 86f595fb3e This file has been moved to dev/vme a while ago. 1998-02-05 22:14:35 +00:00
mrg 5e91ce6ef1 initial import of the new virtual memory system, UVM, into -current.
UVM was written by chuck cranor <chuck@maria.wustl.edu>, with some
minor portions derived from the old Mach code.  i provided some help
getting swap and paging working, and other bug fixes/ideas.  chuck
silvers <chuq@chuq.com> also provided some other fixes.

this is the sparc portion.

this will be KNF'd shortly.  :-)
1998-02-05 07:57:48 +00:00
pk dcf0846ffe * Correct vme addresses in `xd' and `xy' declarations.
* Renamed option: MMU_3L => SUN4_MMU3L
* Enter NFS_BOOT_PARAM option.
1998-02-04 21:49:12 +00:00
pk 90be3b559d Use vme_bus_probe() in si_attach(). 1998-02-04 20:50:47 +00:00
thorpej 8abe76d2f0 Add offset and length parameters to bus_dmamap_sync(), used for specifiying
partial syncs of a DMA mapping.
1998-02-04 05:12:46 +00:00
thorpej 99cc8482d1 Change the last argument of bus_dmamap_sync() from bus_dmasync_op_t to int,
and allow more than one synchronization operation to be specified in
a single call.  Dissallow mixing of PRE and POST operations.
1998-02-04 01:57:27 +00:00
pk bee3aa34cc Account for changed vme_bus_probe() arguments. 1998-02-04 01:04:48 +00:00
pk f060ed68ba sparc_vme_probe(): handle callback argument. 1998-02-04 01:01:14 +00:00
thorpej a7c5c1ef3c Add dm_mapsize to bus_dmamap_t and rename BUS_DMAMEM_NOSYNC to
BUS_DMA_COHERENT.
1998-02-04 00:32:55 +00:00
mycroft b5c132e4d2 Prototype __flt_rounds() consistently. 1998-02-03 01:26:20 +00:00
thorpej 2538ed1062 Use offsetof() from libkern.h 1998-01-28 02:23:04 +00:00
pk d8dc32e559 It's no longer necessary to deal with the timers early. 1998-01-28 00:15:09 +00:00
pk 72f0ab269f These drivers are now in dev/vme.
The `ie' driver has been split in a VME and OBIO front-end. The latter
lives on in this directory as `if_ie_obio.c'
1998-01-25 20:33:54 +00:00
pk 3d46658e38 disk_establish(): add xd & xy cases (XXX - need more thought). 1998-01-25 19:59:14 +00:00
pk f937c21c08 VME device declaration changes:
- `vmes,vmel' => `vme'
	- interrupt locator is the VME interrupt priority (`pri')
1998-01-25 19:56:30 +00:00
pk 531a4b2d77 sparc/obio bus front-end to the i82586 driver. 1998-01-25 19:50:50 +00:00
pk 8bc346d14a All VME stuff is gone from here. 1998-01-25 19:44:43 +00:00
pk 7a39d28b24 bus_map() & bus_untmp() are only used for sun4/obio devices. 1998-01-25 16:51:16 +00:00
pk d44f401c95 bus_tmp() => obio_bus_tmp() 1998-01-25 16:49:33 +00:00
pk bcb062819f The VME bus is now called `vme'. 1998-01-25 16:47:21 +00:00
pk 333b6319fc Convert to new VME interface. 1998-01-25 16:38:01 +00:00
pk 4efb52487a Split si & sw attach routines, and make the si part use the new VME interface. 1998-01-25 16:37:08 +00:00
pk f8ba1e0bd9 sparc/VME bus implementation. 1998-01-25 16:06:25 +00:00
mycroft 63162f08ec Add a svr4_setregs() (that just calls setregs() right now). 1998-01-24 18:26:09 +00:00
mycroft 15ae963bea When dumping, print out the device number as major,minor. 1998-01-24 16:46:23 +00:00
pk 8a5023e38c After writing to the IOMMU flush registers, read something back from
IOMMU control space to a flush register to drain internal write buffers (?).
This avoids utter lossage on some machines (SS4s & SS5s) where our caller
would see some of its local (`%lx') registers trashed. This is probably
caused by a silicon bug allowing interference on internal data paths..
1998-01-24 16:22:47 +00:00
pk 49d2bfe020 Add a couple of options I forgot in last commit. 1998-01-23 22:47:20 +00:00
mrg c71457ab4a KNF, and use splzs over splhigh in one place. 1998-01-21 05:54:39 +00:00
pk ab37013309 Put back `le0 at lebuffer0' for backwards compatibility. 1998-01-20 22:12:51 +00:00
pk 23d53501bd A small optimization. 1998-01-17 15:02:17 +00:00
pk 866632416e Fix a border case when committing physical pages to the VM system;
rename some variables in the process for clarity.
1998-01-14 14:49:29 +00:00
pk 1842a317c3 Fix parenthesis inbalance. 1998-01-13 20:53:38 +00:00
pk 1195f3d8a9 Add fkbyte(), which is like fubyte() but for kernel addresses.
Only used at this moment to work around unexplained transient bus
errors when reading the VME interrupt vector in bus control space.
1998-01-13 20:51:01 +00:00
pk a8dda8092d Commit to MACHINE_NEW_NONCONFIG. 1998-01-13 00:58:56 +00:00
pk 418fd96bd5 Turn NEW_NONCONTIG page upload code into a routine shared by sun4/4c
and sun4m pmap_bootstrap()s, simplify it, and make it not loose the
couple of slack pages we painstakingly remembered in pmap_bootstrap.
1998-01-13 00:55:15 +00:00
thorpej 1adb4489a6 Update for changes to config. 1998-01-12 20:23:38 +00:00
pk 54719a53a3 More comments and general re-organization (group by device class) provided
by Todd Vierling.
1998-01-11 23:32:55 +00:00
perry 6f57e5c573 multiple include protect machine/limits.h, fixes pr 4473 (from Mika Nystrom) 1998-01-09 22:23:44 +00:00
thorpej 85d56961e5 Update a comment relative to the vm_bootstrap_steal_memory() change, and
don't include pmap_free_pages() or pmap_next_page() in the new non-contig
case.
1998-01-08 23:48:16 +00:00
mrg c599e7d439 add new version of non contiguous memory code, written by chuck cranor,
called "MACHINE_NEW_NONCONGIG".  this is required for UVM, the new VM
system (also written by chuck) that is coming soon.  adds new functions:
	vm_page_physload() -- tell the VM system about an area of memory.
	vm_physseg_find() -- returns index in vm_physmem array that this
		address is in.
and several new versions of old functions/macros defined in vm_page.h.


this is the sparc portion.
1998-01-08 11:39:30 +00:00
mrg 0876a69653 some KNF. 1998-01-08 11:03:13 +00:00
mrg 7069ab9961 don't call fb_unblank if NFB < 0 1998-01-08 10:56:36 +00:00
mrg 002fbe8721 do not use fb_unblank unless NFB > 0 1998-01-08 01:13:58 +00:00
perry 015e898c02 RCSID Police. 1998-01-05 07:02:46 +00:00
thorpej 9ca174a51d Implement pmap_activate(). 1998-01-02 22:57:56 +00:00
tv 89e7595756 Exclude /dev/fb code if no framebuffer is compiled into the system.
Adds a fb.h flag file with '#define NFB 1' if any such card is configured
in to the kernel.
1997-12-23 23:57:20 +00:00
pk bf8e38df4f Establish the interrupt handlers on sun4 `oclocks'; pointed out
by Chuck Cranor.
1997-12-19 22:53:10 +00:00
pk 964a147839 Clean vers.c & vers.o. 1997-12-18 21:03:58 +00:00
pk 9e087acb89 Code for software-assisted DDB single-stepping from Chuck Silvers. 1997-12-10 23:12:13 +00:00
chuck d76941843e fix mixer code that was clearly untested:
- allow get/set of enums SUNAUDIO_SOURCE and SUNAUDIO_OUTPUT rather
	than returning EINVAL
 - add missing SUNAUDIO_MONITOR_CLASS case in query_devinfo
 - convert SUNAUDIO_MONITOR case from a MIXER_CLASS to a MIXER_VALUE
	like it is supposed to be
 - the labels for outputs/record class were swapped: fix it

this patch allows "mixerctl" to work properly on a sparc
1997-12-06 03:20:56 +00:00
tv 0a558b3f1f Standardize COMPAT_SUNOS -- remove all references to
sunos_exec_aout_makecmds() in machdep.c for various architectures and put
it in exec_conf.c like the other emulations; rename exec.h to
sunos_exec.h.
1997-12-04 15:33:17 +00:00
mjacob 40ef7dd007 handle case of no keyboard configured 1997-12-03 22:32:05 +00:00
mjacob b52361ff54 add missing COMPAT_13 that kleink putzed 1997-11-30 23:18:59 +00:00
mjacob e908c01f7e If not defining SUN4M, you still have to do something with has_iocache. 1997-11-26 22:11:53 +00:00
kleink 66c2794142 Add _BSD_SUSECONDS_T_ and _BSD_USECONDS_T_; do some space vs. tab formatting
cleanup
1997-11-23 20:20:53 +00:00
pk 4759b4c5ff Re-do the `busdma' interface. 1997-11-23 16:31:28 +00:00
tv 426330f919 eliminate declarations of global data in <sparc/cpu.h> and declare in
source files, reducing global symblol replication in .o kernel files
1997-11-22 03:13:56 +00:00
fair 315f8de9c2 add pseudo-device rnd, commented out 1997-11-20 08:11:14 +00:00