Commit Graph

2479 Commits

Author SHA1 Message Date
mycroft 399318b456 Vanity config files. 1999-01-21 09:58:26 +00:00
pk 5ce78d9342 Fix think-o in srmmu_cache_flush(). 1999-01-20 15:25:29 +00:00
pk 565d3768e5 Catch `Unimplemented Flush' traps. 1999-01-20 00:15:07 +00:00
pk 521611091a Set the Hypersparc ICCR bits. 1999-01-19 23:07:29 +00:00
pk 88993b57d9 Define macros to read & write Ancillary State registers. 1999-01-19 23:05:52 +00:00
pk 66cd211961 Define Hypersparc ICCR bits. 1999-01-19 23:04:02 +00:00
thorpej 2fb041ce0a No need for <sys/mtio.h> 1999-01-19 18:18:41 +00:00
pk a711033aa2 Deal with SIR_SERIAL (for `com' devices).
XXX - consider using __GENERIC_SOFT_INTERRUPTS instead
1999-01-19 10:04:42 +00:00
pk dd91d8a2b4 Add SIR_SERIAL soft interrupt source. 1999-01-19 10:02:40 +00:00
pk 58fa0024a5 Add `qe'. 1999-01-17 20:45:26 +00:00
chuck 90ddaed9b5 MNN is no longer optional, remove dead code 1999-01-16 20:43:21 +00:00
pk c884428427 Add `be' + MII devices.
Add PCMCIA devices that are known to compile at the moment.
1999-01-16 13:43:50 +00:00
bouyer dc306354b0 Move the bswap functions from libutil to libc (this bups the
minor of libc and the major of libutil). For little-endian architectures
merge the bnswap() assembly versions with nto* and hton* using symbols
aliasing. Use symbol renaming for the bswap function in this case to avoid
namespace pollution.
Declare bswap* in machine/bswap.h, not machine/endian.h. For little-endian
machines, common code for inline macros go in machine/byte_swap.h
Sync libkern with libc.
Adjust #include in kernel sources for machine/bswap.h.
1999-01-15 13:31:15 +00:00
mrg bb4584ec40 look for /^Version:/ to find the boot block version, rather than using
the "version" file's RCS id (which is useless for branches).
1999-01-15 00:48:03 +00:00
pk 6a8119ff1d Sanity check from Matthias Drochner. 1999-01-15 00:26:24 +00:00
pk 0372e36e3f device_register: recognize `lebuffer' and `isp' as controllers. 1999-01-14 13:08:24 +00:00
pk de7b3f5492 Add `bus_space_subregion()' which was curiously missing. 1999-01-13 20:48:40 +00:00
pk 53c6ccd94d Add `eccmemctl' entry. 1999-01-13 20:35:30 +00:00
abs 4b0a936711 fix void arithmetic 1999-01-13 04:19:08 +00:00
thorpej 8406f65cbf Use a pool for pmap structures. 1999-01-11 20:58:46 +00:00
mrg d1f3239be8 bump size of miniroot 1999-01-10 13:40:30 +00:00
thorpej e598335d1c Garbage-collect `mbutl'. 1999-01-09 22:10:12 +00:00
augustss fc5f9ee81d Add -Wpointer-arith warning since `void *' arithmetic is not ANSI C. 1999-01-08 19:26:12 +00:00
pk 9d4c26b2c1 * hypersparc support:
get cache size from PROM info like the others
	reset the cache type bits before setting our desired values
* smp cache flushing:
	protect the cpu message bits with splhigh().
1999-01-08 10:15:10 +00:00
mrg 12d0e6e8f7 move sparc{,64} installboot.8 back to src/share, to avoid splitting sources for users who dont get everything. 1998-12-22 02:34:09 +00:00
pk fc6df8006b Make sure we don't spuriously detect more than one boot device (as the
previous patch but extended to all devices).
1998-12-21 11:25:39 +00:00
drochner 52c16cf83a get "opt_compat_svr4.h" out of <sys/conf.h> 1998-12-18 16:55:39 +00:00
kleink fec2cc52f3 T_SVR4_GETHRESTIME returns a nanosecond quantity in %o1. 1998-12-17 22:26:02 +00:00
christos 9a2a015957 1000000000 nsec != 2^31 nsec (from kleink) 1998-12-15 16:06:15 +00:00
kleink 342b5e5134 Also need to initialize the queue length of a newly allocated fpstate. 1998-12-14 16:18:46 +00:00
mrg f3e2980d41 note thta installboot.8 is built in share/man. move installboot.8 back to the same place the sources are, just build it in an MI location. 1998-12-11 12:18:46 +00:00
mjacob c2e84d0cde What was missing here is the mapping between our booting SCSI bus number
and the parent (hba) path from which we booted from. As a temp fix,
we'll only go with the first match to set altbootdev- not additional matches.
The problem was further exacerbated by the fact that cnpoll doesn't seem
to work on serial consoles.
1998-12-05 21:05:44 +00:00
pk 5d9f86821c Add a device_register() function to determine the boot device.
Use it in addition to the old method for a while, so we can take note
of any glitches easilier.
1998-12-03 23:49:58 +00:00
thorpej da572a137f Argh, fix the ANSI CPP version of the a.out WARN_REFERENCES(). 1998-12-02 21:16:46 +00:00
thorpej a6f7e0c05a Implement WARN_REFERENCES(). 1998-12-02 00:58:42 +00:00
mycroft 34a1fe3ee3 Fix bogus asm statements; tmp1 and tmp2 need to be outputs rather than inputs. 1998-11-29 10:37:08 +00:00
pk 2e89e9144b Turn a bunch of bus_space_*() macros into in-line functions mostly to avoid
variable aliasing.
1998-11-26 23:50:52 +00:00
pk c918193752 Add splserial(). 1998-11-26 22:53:13 +00:00
mycroft 8df55592be Minor changes; indentation for delay slots and NOTREACHED comments. 1998-11-26 22:36:43 +00:00
mycroft 90a44dd270 Clean up kcopy() some more:
* Return EFAULT, not -1.
* Rearrange some instructions for better parallelism.
1998-11-26 22:30:31 +00:00
pk 79bf04ce4f kcopy() must restore pcb_onfault handler. Pointed out by Charles Hannum. 1998-11-26 22:17:33 +00:00
hwr 59acb69be1 Add (commented out) 'gre' pseudo device line. Feedback is welcome.
Inspired by Klaus Klein.
1998-11-25 20:30:44 +00:00
pk b34cd5fdf0 Add IPL_SERIAL 1998-11-25 19:33:02 +00:00
pk 701d8366f0 Define `interrupt priority levels'.
XXX - for now, these arbitrary identifiers; NO INTERPRETATION IS DEFINED YET
1998-11-22 23:53:24 +00:00
pk cecf78e09d Connect the PCMCIA bus. 1998-11-22 23:36:42 +00:00
pk e40c5c3c20 Add busses: PCMCIA, MII, ATA 1998-11-22 23:22:26 +00:00
pk bc98f448b8 Turn the passed tag into "used" arguments. 1998-11-22 21:52:24 +00:00
thorpej 5f0577babc Adapt to the new scsipi_adapter interface. 1998-11-19 21:43:00 +00:00
mrg db3051d720 fix problems in many d_mmap routines:
- returned EOPNOTSUPP rather than -1.
	- no check for negative offset.
many of these fix potential security problems in these drivers.


XXX XXX XXX
the d_mmap cdev routine should be changed to have a prototype like:
	paddr_t (*d_mmap) __P((dev_t, off_t, int));

by someone!
1998-11-19 15:38:20 +00:00
pk dee948f2d9 Increase the delay after touching the IOMMU control register by another
three no-ops (empirically verified by Robert Elz).
1998-11-18 12:07:47 +00:00
oster cf5710c839 Added a (commented out) configuration line for the RAIDframe device driver. 1998-11-16 16:44:55 +00:00
oster c74d32c5fc Updating of bdev's and cdev's to support RAIDframe. 1998-11-13 04:47:03 +00:00
ws 99d394c267 Typo 1998-11-12 14:00:06 +00:00
thorpej cabecee13c Changes to support fork_kthread():
- cpu_set_kpc() now takes void *arg third argument, passed to the
  entry point.
- cpu_fork() allows parent to be non-curproc iff parent is proc0.
  When forking non-curproc, assume its state has already been saved.
- Adjust various pieces of machine-dependent code to account of all of this.
1998-11-11 06:43:49 +00:00
chs 61458d7dfa LOCKDEBUG enhancements for non-MP:
keep a list of locked locks.
use this to print where the lock was locked
when we either go to sleep with a lock held
or try to free a locked lock.
1998-11-04 06:19:55 +00:00
pk 9eb94a0c03 Must protect user-land from cpuvar.h; noticed by Juergen Hannken-Illjes. 1998-10-26 08:16:08 +00:00
pk f3c1682c65 No need for `#ifdef SUN4M' protection. 1998-10-26 08:12:15 +00:00
pk de51cf3531 Define and use CPU pause/resume IPI messages (until such times that I know
what the prom supplied versions actually do).
1998-10-24 08:12:55 +00:00
pk c85c920d03 Duh.. condition codes are not preserved when writing directly into %psr.
Also, we need to deal with bus latency when turning off bits in the
interrupt status register.
1998-10-24 08:04:07 +00:00
pk 890e54bee0 Pull in cpuvar.h to get definition of `curproc'. 1998-10-21 07:11:47 +00:00
tron b296275bb4 Defopt SYSVMSG, SYSVSEM and SYSVSHM. 1998-10-19 22:09:13 +00:00
pk f0529fccf5 Maintain a current process (`curproc') a per CPU. 1998-10-19 11:56:43 +00:00
christos 09285b1171 PR/6311: By me... There was a bug unloading the dmamap:
addr = map->dm_segs[0].ds_addr & ~PGOFSET;
	len = map->dm_segs[0].ds_len;
	len = ((addr & PGOFSET) + len + PGOFSET) & ~PGOFSET;
	addr &= ~PGOFSET;

Notice that the & ~PGOFSET in the first line should be gone. This fixes
the newfs large disk panic.
1998-10-18 16:02:34 +00:00
pk 0bf09a4ae7 Drop cpuinfo's `L1_ptps'; instead keep a per CPU segment (level 2) page
table descriptor that is used to patch up a region (level 1) page table
associated with a user pmap at context switch time.
1998-10-16 22:39:17 +00:00
drochner 2468738337 change handling of libkern:
-sys/lib/libkern builds as library per default (as it was documented all
 the time)
-ports able to LKM set "KERN_AS=obj" explicitely in their Makefiles
 (for now; should depend on actual "option LKM" or -better- functions
 included for LKM use should be pulled in by a stub)
-always link libcompat before libkern - libkern stuff can be referred to
 by libcompat, but not the other way
1998-10-15 18:37:13 +00:00
pk fd966585a1 Turn on the counter at each CPU (we fear nothing..) 1998-10-14 14:53:36 +00:00
pk afcfa7d7fa Let all CPUs spin at spl0. 1998-10-14 14:47:20 +00:00
pk 631a48776f Don't allocate two stacks per CPU.
Minor attach-time message change.
1998-10-14 14:22:18 +00:00
pk e6c0a03f90 `ncpu != 0' doesn't make much sense when deciding what CP info to print. 1998-10-13 21:08:48 +00:00
pk bf7ace9074 CLKF_INTR() needs to have a MULTIPROCESSOR version. 1998-10-13 20:53:02 +00:00
pk 802248ee1c We use MULTIPROCESSOR explicitly here, so pull in "opt_multiprocessor.h". 1998-10-13 13:37:14 +00:00
pk 14a3acbd47 srmmu_cache_flush(): handle small (< NBPG) ranges more efficiently. 1998-10-13 13:34:06 +00:00
pk 1e0064d5d6 EINTSTACK => EINTSTACKP 1998-10-13 12:05:44 +00:00
pk d5e94d4fb2 Add missing `return'. 1998-10-13 11:33:36 +00:00
pk 8511a94f26 Oops, USPACE does not in 13 bits.. repair and save one instruction
in a non-SMP kernel.
1998-10-12 22:05:17 +00:00
pk c27a8760b7 In switchexit(), switch to the current CPU's idle u.area. 1998-10-12 21:51:54 +00:00
pk dff4866141 Add offset of `cpuinfo.idle_u'. 1998-10-12 21:50:22 +00:00
pk 5d124ce774 Move around a few PTE-manipulating macros. 1998-10-12 21:17:28 +00:00
pk 83b671e23d Make `cpcb' (current u.area) a per-CPU variable.
Brace some MP-only code with `#ifdef MULTIPROCESSOR'.
1998-10-12 20:56:48 +00:00
pk 6791d7f713 Make `_cpcb' (pointer to current user area) a per-CPU variable.
This cpuinfo field is initialized here in locore before calling bootstrap(),
since it must be valid before entering the window overflow/underflow handlers.

Fix miscalculation in the MULTIPROCESSOR version of INTR_SETUP().
1998-10-12 14:39:10 +00:00
pk 523892012a `cpcb' (pointer to current u.area) is now a per-CPU variable. 1998-10-12 14:32:14 +00:00
pk fbbc2eeedd `cpuinfo' is now cleared in locore. 1998-10-12 14:15:13 +00:00
pk 6fc7a5b45a Define `sizeof(struct cpu_info)'. 1998-10-12 14:03:22 +00:00
pk 1fb4827a72 Take care of a MID not present when matching timer register sets. 1998-10-12 12:28:26 +00:00
chuck 8bef431273 remove unused share map code from UVM:
- update calls to uvm_unmap_remove/uvm_unmap (mainonly boolean arg
        has been removed)
1998-10-11 23:20:59 +00:00
pk b9d844a520 Allocate a private PCB, kernel stack and interrupt stack for each processor.
As a result, the stack setup code in locore.s changes slightly in
the MULTIPROCESSOR case. Also, make the stack redzone barrier (for
debugging only) a per-CPU entity.
1998-10-11 14:46:45 +00:00
thorpej 908cdfe4e3 Add scsibus entry points to the cdevsw[]. 1998-10-10 02:00:49 +00:00
thorpej 29d472f53d Garbage-collect the open_target_lu and close_target_lu entry points from
struct scsipi_adapter; they were not used.

Add a scsipi_ioctl entry point to struct scsipi_adapter.  This will be
used to issue ioctl commands to the host adapters.

Inspired by PR #6090, from Matt Jacob.
1998-10-10 00:28:28 +00:00
pk 5422d07da0 Construct a `flush_cache_all()' for Cypress CPUs. 1998-10-09 10:48:14 +00:00
pk 024e5f4c9a More `#if defined(MULTIPROCESSOR)'s. 1998-10-09 10:08:52 +00:00
pk 57a688f81e Init a variable. 1998-10-09 08:01:33 +00:00
pk 312385da0a Define SMP versions of some cache flush methods. 1998-10-08 22:27:32 +00:00
pk 41d031837e Define a message structure of inter-processor communication. 1998-10-08 22:25:42 +00:00
pk f3c4a67a7f Adapt to changes to the cpus[] array. 1998-10-08 22:23:44 +00:00
pk 34ad8e5fb7 Find out about the number of CPUs in the system before starting device
configuration, so we can build a cpus[] array without "holes".
1998-10-08 22:14:44 +00:00
pk a61ee50b27 Move [gs]etcontext and [gs]etpte() to pte.h 1998-10-08 21:49:12 +00:00
pk e6bbfcc58a Move [gs]etcontext() and [gs]etpte() to pte.h 1998-10-08 21:47:34 +00:00
thorpej d681cf055a configure() prototype is in <sys/device.h> 1998-10-06 20:50:15 +00:00
pk 2727683a09 more DIAGNOSTIC sanity checks 1998-10-06 19:24:03 +00:00
thorpej 0729240c88 Move the "XXX re-zero proc0 user area" to the end of configure(), before
interrupts are enabled.
1998-10-06 18:58:09 +00:00
thorpej 5006dbf868 cpu_set_kpc() prototype is already in <sys/systm.h>. 1998-10-05 22:11:15 +00:00
pk 40beab6ad6 If a lock is held do not spin in a read/write loop but just read the lock
until it is released. This is easier on the bus cache coherency logic.
1998-10-05 19:58:19 +00:00
christos 550ee6b308 rename getprop routine to avoid conflict with the one in bsd_openprom.h 1998-10-05 07:13:07 +00:00
christos 0bf5ff6ade make this compile with DIAGNOSTIC again. 1998-10-01 21:26:55 +00:00
thorpej c5b8d42e66 Need 14 longs for jmp_buf now (sigcontext has 128-bit signal mask at the
end).
1998-10-01 03:28:11 +00:00
pk f382e91b5e Add a field to identify the processor that has a process' FPU context. 1998-09-30 18:40:58 +00:00
pk 4826aac9cf Make the current FPU owner (`fpproc') a per-CPU entity. Unresolved issue
as yet: lazy FPU context switching may require co-operation from other
CPUs.
1998-09-30 18:38:57 +00:00
pk 8c29324cc7 Kernel configuration with multi-processor support. 1998-09-27 15:10:25 +00:00
pk 0a090af2c7 Add `ldstub()'. 1998-09-27 14:32:14 +00:00
pk e6ce8bcfc7 sparc spin lock functions. 1998-09-27 14:31:18 +00:00
pk 0a1a6fb7e0 This file is no longer used 1998-09-26 20:51:45 +00:00
pk 166c2a5fa5 fix typo 1998-09-26 20:15:59 +00:00
pk 9f352b7e15 Stop all other CPUs upon entering a debugger. 1998-09-26 20:14:48 +00:00
pk 01e64c640c Implement mp_pause_cpus() and mp_resume_cpus(): pause and resume all
CPUs except the one running this code.
1998-09-26 20:13:56 +00:00
pk 6ad3a051e8 mp_{pause,resume,halt}_cpu() prototypes. 1998-09-26 20:12:06 +00:00
pk 8ddcd514a6 Use CPU start function in obp.c 1998-09-26 19:09:56 +00:00
pk fe1cf94b9f Add wrappers for PROM's CPU start/stop functions. 1998-09-26 19:08:09 +00:00
pk a89a10c394 Add file obp.c 1998-09-26 19:06:47 +00:00
pk 43c1cb852c Move PROM interface prototypes into openprom.h
Use the `openprom_addr' structure for passing around physical addresses.
1998-09-26 18:20:19 +00:00
pk 09a4cf6caa Move PROM interface routines into their own file. 1998-09-26 18:15:34 +00:00
pk eb8de83739 `eccmemctl' inadvertently got into the `mandatory' list. 1998-09-25 11:40:16 +00:00
pk 27569e4050 Initialize pointer to the boot CPU's interrupt register. 1998-09-24 20:38:43 +00:00
pk 831354d6de Add `intreg' cpuinfo offset. 1998-09-24 20:37:17 +00:00
pk 58ab38cb69 Use per-CPU interrupt status register. 1998-09-23 11:07:28 +00:00
pk 9eca565a37 Make cgsix_sbus & cgsix_obio dependent on their respective attribute.s 1998-09-23 08:49:46 +00:00
pk d6746389a4 The nmi_* routines are sun4m-only. 1998-09-23 08:44:51 +00:00
pk aa1cf01930 Express per-processor interrupt registers in a C structure as well. 1998-09-22 13:42:26 +00:00
pk bd37118769 Dup header. 1998-09-22 13:41:03 +00:00
pk eca50c1c33 Flush cache after diddling with trap vectors. 1998-09-22 13:40:08 +00:00
pk 1186ba5102 Introduce a `flush entire cache' method. 1998-09-22 13:39:19 +00:00
pk 5afb0e8bcb Keep the per-processor interrupt status in the cpuinfo structure.
For now, map them to the fixed virtual addresses set up early in autoconf.c
1998-09-22 13:08:44 +00:00
chs c945760779 sign-extend some operand types which need it. 1998-09-22 05:40:14 +00:00
pk 709360e3ce Fill the `bpp' slot. 1998-09-21 21:13:51 +00:00
pk 20f2898a0c Merge sun4 and sun4c version of memerr() again. 1998-09-21 10:32:00 +00:00
pk af19654e85 We no longer need to access memerr() through a function pointer.
GC `cpumod' and `mmumod'.
1998-09-21 10:30:41 +00:00
pk c3b26811ac We no longer need to access memerr() through a function pointer. 1998-09-21 10:29:20 +00:00
pk ec34e18063 Don't map sbus `registers' on sun4c (i.e. sbus @ mainbus); it's almost
certainly not the control space we want..
1998-09-20 20:08:52 +00:00
pk 7a147080b8 Async arguments are no longer passed to the memory fault handler. 1998-09-20 20:01:15 +00:00
pk 4bf750b7df Add sun4m NMI handlers. 1998-09-20 20:00:09 +00:00
pk d0d9bb7669 Dedicate a pair of entry points to handling sun4m level 15 (NMI) interrupts.
Hardware NMIs are generated on various fault conditions that take place
asynchronously to the instruction stream. Software NMIs are going to be used
for inter-processor communications.

Get synchronous fault information separately from asynchronous fault
information. Do the former right after taking a memory fault trap and
store the values in temporary locations within the cpuinfo structure (XXX),
so we can unconditionally clear the sync fault status register after
MMU probe operations. This all is to work around a Hypersparc feature
which could lead to loss of fault information because of the fault
status register getting locked.
1998-09-20 19:54:48 +00:00
pk cd8dfa6798 Account for changes in struct cpuinfo & locore 1998-09-20 19:39:18 +00:00
pk 4128057c52 Split memory fault status function into `synchronous' and `asynchronous'
versions.
1998-09-20 19:37:50 +00:00
pk 2734182a74 Re-arrange the sun4m cases a bit.
Entry points no longer have async arguments.
1998-09-20 19:34:16 +00:00
pk c3e742adfb Format string for SI register. 1998-09-20 19:31:37 +00:00
pk b6da06d637 Name fault registers more like they're referred to in various docs. 1998-09-20 19:29:10 +00:00
pk a1a94bc5fc Use the expected name for the config attach structure. 1998-09-19 16:50:31 +00:00
pk 0a6347a24d Provide an error entry point like sbus and memory. 1998-09-19 16:45:43 +00:00
pk 812eb8c1da Add %b format strings. 1998-09-19 16:44:59 +00:00
pk 25d48215a2 Map Sbus control registers. 1998-09-19 15:49:50 +00:00
pk 8381b55bd7 Add a bunch of SBus control register definitions. 1998-09-19 15:48:55 +00:00
pk 1bcd9d3bbb Pass the children register space in the attach arguments. 1998-09-19 15:47:18 +00:00
pk ced4225429 Add `eccmemctl' device. 1998-09-18 20:19:12 +00:00
pk b3c7ebb7cd Handle ECC memory control found on a number of machines.
Also defines an entry point for memory errors reported by module interrupts.
1998-09-18 20:18:10 +00:00
pk 81d435b491 sigh.. put back non-garbage collectible `que' functions. 1998-09-18 08:07:08 +00:00
thorpej dcb541531a Minor cosmetic change. 1998-09-17 02:33:06 +00:00
thorpej c006c7c0da Sync w/ sendsig(). 1998-09-17 02:30:02 +00:00
thorpej e5ea525b9f Slight brain'o in last. 1998-09-17 02:26:26 +00:00
thorpej 5bc9dafaee Minor cosmetic change to sendsig(). 1998-09-17 02:24:56 +00:00
pk 59e5588098 Map the per-CPU counter registers into each cpu info area. 1998-09-16 13:39:48 +00:00
pk 49b5114713 Make all cpu info structures accessible through an array `cpus[_MAXNCPUS]'. 1998-09-16 13:36:23 +00:00
pk 543070847c Can't afford a 1K buffer in the data segment. 1998-09-15 20:03:50 +00:00
pk 0ad1257add sub-arch protection. 1998-09-15 13:12:25 +00:00
pk fb38024157 Use `swap' to install page-table entries which is recommended practice
for MP configurarions.
1998-09-14 22:45:36 +00:00
pk 1736bda754 Define `swap'. 1998-09-14 22:43:29 +00:00
pk 0a46abfd42 Collect redundant code into cpu_setup(). 1998-09-14 10:37:12 +00:00
pk b1b69e4195 Fix cache bit confusion in pmap_alloc_cpu(). 1998-09-14 09:46:11 +00:00
pk ff383dc20d Add compat_13_machdep.c 1998-09-13 20:34:34 +00:00
pk 190e4c429d Move compat_13 sigreturn() into its own file. 1998-09-13 20:33:33 +00:00
pk 82d2ea3a70 Remove left-over SUNOS_COMPAT line. 1998-09-13 20:24:15 +00:00
pk 9658554e18 Replace previous by something more complete. 1998-09-13 20:17:54 +00:00
pk 9d9f22fa79 Signal handling changes: sunos compat gets its own sendsig(); sunos
sigreturn() == compat_13_sigreturn().
1998-09-13 20:07:54 +00:00
mycroft 4e4f120db9 Update these for signal handling changes.
XXX Not tested yet.
1998-09-13 12:13:49 +00:00
pk 90054fd502 New sigcontext. 1998-09-13 11:41:02 +00:00
pk ba67f63901 Sync function prototypes; remove unsed variables. 1998-09-13 11:34:04 +00:00
pk b8de221a1e Pull in <sys/syscall.h> directly into locore.s 1998-09-13 11:12:36 +00:00
pk 875bff538c A few slight optimizations. 1998-09-12 19:50:59 +00:00
pk ad0f4a6fbb Nuke `insqeu' and `remque' 1998-09-12 19:46:00 +00:00
pk 8b7ee2cd89 Add hatching code for other CPUs. 1998-09-12 19:44:17 +00:00
pk e120fa4e14 Machinery to configure multiple CPUs. All CPUs found are spun up from the
auto-configuration cpu_attach() function using the firmware.
Currently, all CPUs except the one used to boot end up in an idle loop
in locore.
1998-09-12 15:33:40 +00:00
pk 1b077ae1cd Set cache control bits according to configured preference (if any). 1998-09-12 15:08:04 +00:00
pk 097a922a9c Add field holding the physical address of the MMU context table. 1998-09-12 14:12:49 +00:00
pk f390eccd7d Add missing bits to per-CPU MMU table allocator routine. 1998-09-12 14:11:53 +00:00
pk cd0a5fe245 Define some bit-format strings. 1998-09-12 13:59:19 +00:00
pk 18fbdfc2f8 Expose `v3' routines to everyone. 1998-09-12 13:34:38 +00:00
mycroft 62ea009b0e Update for signal handling changes. 1998-09-11 13:31:39 +00:00
pk f6b7ca884e Use our brand new extent_alloc1() function to allocate cache-aligned
DVMA addresses.
1998-09-10 21:08:39 +00:00
thorpej 70e641047c In cpu_coredump(), use MID_MACHINE rather than MID_* (whatever it expands
to).
1998-09-09 11:17:24 +00:00
thorpej 8abe0d6b1c Adjust for the new "reaper" kernel thread: do not free the vmspace and
u-area in machine-dependent code.  Instead, call exit2() to schedule
the reaper to free them for us, once it is safe to do so (i.e. we are
no longer running on the dead proc's vmspace and stack).
1998-09-09 00:07:48 +00:00
pk 07b0821d4d Adapt to cpuvar.h changes. 1998-09-07 23:04:28 +00:00
pk b09b9f7339 De-couple the CPU info structure from auto-configuration structures. 1998-09-07 23:02:40 +00:00
pk 729d765620 Clear up some type confusion. 1998-09-07 22:56:46 +00:00
pk e21c0b3450 Need to cast sbus attach `prom_vaddrs' field. 1998-09-07 07:15:51 +00:00
pk c4c4e35608 Undo last change (we're passing the address of a pointer here). 1998-09-07 07:11:11 +00:00
pk 457395fe53 Use the new "%b" format. 1998-09-06 21:38:36 +00:00
pk c529fe0888 memerr() is now an indirect call. 1998-09-06 21:18:59 +00:00
pk cda6fb7430 Sanitize memerr*() a bit. 1998-09-06 21:14:56 +00:00
eeh 484ce04810 The `address' field from the prom is really an unsigned 32-bit value.
Make it so.
1998-09-05 22:29:49 +00:00
eeh 5dc93bd9fe Remove function naming conflict. 1998-09-05 22:15:51 +00:00
pk b39d7e33be Assign my copyrights to TNF. 1998-09-05 15:42:41 +00:00
christos 50909bd6d9 Assign copyright to TNF. 1998-09-05 15:28:08 +00:00
lukem c9db84ecc9 distclean is a synonym for cleandir 1998-09-05 15:15:14 +00:00
pk acf16f7096 Assign my copyrights to TNF. 1998-09-05 15:11:22 +00:00
pk 2c9a80baf4 Assign my copyrights to TNF. 1998-09-05 14:01:08 +00:00
pk 5ebcb31dd0 Assign my copyrights to TNF. 1998-09-05 13:45:46 +00:00
pk 30b5826331 Hang on to `old VM' a little while longer.. 1998-09-01 18:05:27 +00:00
pk 779f357ede Implement cache alignment in bus_dmamem_load(). 1998-08-31 20:00:22 +00:00
pk 4dbdab4423 Erase sparc_nam2blk[]. 1998-08-30 21:54:25 +00:00
pk 88ab783b42 Define floppy device major number. 1998-08-30 21:53:35 +00:00
pk fc313d9031 Nuke old getprop() function and put its successor in place. 1998-08-30 21:30:41 +00:00
pk 400208c8b7 getpropA() => getprop() 1998-08-30 21:27:32 +00:00
pk 6f2539f8a6 getpropA() => getprop(). 1998-08-30 21:26:46 +00:00
pk fe6b9295a8 Adjust for some small changes in lsi64854 back-end driver. 1998-08-29 21:43:00 +00:00
pk 0a30d383a0 Sbus `esp' and `le' front-ends now attach in `sys/dev/sbus/files.sbus'. 1998-08-29 20:53:11 +00:00
pk e4091cb757 Split `esp' driver and DMA engine into separate front-end files.
The Sbus front-ends have all been moved to `sys/dev/sbus', while
the `obio' front-ends remain here.
1998-08-29 20:49:35 +00:00
pk 1f0567dd53 Nuke unnecessary header files. 1998-08-29 20:38:38 +00:00
mrg ed88a6f103 add support for finding kernels other than `netbsd'. the list is:
netbsd, netbsd.gz, netbsd.old, netbsd.old.gz, onetbsd, onetbsd.gz
and vmunix, in that order.  this is used by the bootable `bootfs'
image (suitable for floppies and cdroms), which contains a netbsd.gz
by default.
while i'm here, fix up `boot [device] -s' which got broke when
booting kernels with a - in their name was fixed..
1998-08-29 06:40:43 +00:00
pk 8e0c62893c Remove cache flush from dma_espintr(); the bus dma routines take care
of that now. Hence we no longer need <sparc/cpuvar.h>.
1998-08-28 20:14:36 +00:00
pk ca868d7da6 Specify our boundary restriction when allocating DMAble memory. 1998-08-28 20:07:52 +00:00
pk 221a000391 Pass on bus_dma*() aligment and boundary arguments. 1998-08-28 20:02:19 +00:00
pk f6a208ce6b Nuke Dprintf; fix formats. 1998-08-28 08:57:38 +00:00
pk 7e95972ed1 Add `audiocs' ("SUNW,CS4231") and `en' ("ENI-155s"). 1998-08-27 20:56:44 +00:00
mrg 82571f5403 move isp sbus attachment to dev/sbus 1998-08-27 11:41:24 +00:00
pk af5a3e52a5 yanko 1998-08-25 08:28:53 +00:00
pk c6905522d2 These files are no longer used. 1998-08-24 07:23:10 +00:00
pk 66795e62e7 Move sparc_vme_dmamem_map() outside `#ifdef SUN4M' 1998-08-23 10:40:38 +00:00
pk 4539119e83 Nuke phys_map & old dvmamap. 1998-08-23 10:08:25 +00:00
pk 4fe6cdf6ca Nuke obsolete prototype. 1998-08-23 10:07:09 +00:00
pk 2a6be00de5 Rename DVMA constants. 1998-08-23 10:05:53 +00:00
pk 666587112f Use bus_dmamem_{alloc,free} instead of the old VM hack. 1998-08-23 10:04:56 +00:00
pk e68fd96987 Remove DVMA address special cases in pv_changebit(). 1998-08-23 10:01:24 +00:00
pk 434a2cc972 Nuke phys_map & old dvmamap. 1998-08-23 09:59:24 +00:00
pk 9a2b941ecb Rename DVMA constants. 1998-08-23 09:53:03 +00:00
mrg c54c62ad31 bsd_audioio.h is not used. 1998-08-22 15:56:46 +00:00
pk 79dd1e8563 Convert to [pv]addr_t & [pv]size_t. 1998-08-21 14:13:53 +00:00
pk b8a1caac4a Convert to [pv]addr_t & [pv]size_t. 1998-08-21 14:12:18 +00:00
pk 24255abca0 iommu_{enter,remove} moved to iommuvar.h 1998-08-21 14:10:42 +00:00
pk ca5b5652b4 Remove vm_offset_t & vm_size_t. 1998-08-21 14:09:59 +00:00
pk f318f15bc3 Convert to [pv]addr_t. 1998-08-21 14:07:37 +00:00
pk 7575f8fac5 Move iommu_enter/iommu_remove here from <include/cpu.h>. 1998-08-21 13:29:57 +00:00
pk 02d030ca52 Pass on `NOWAIT' and `boundary' args to extent_alloc(). 1998-08-20 20:49:33 +00:00
pk 363b678b9e Flesh out more of the sun4 busdma functions. 1998-08-20 20:46:59 +00:00
pk 02c059eefa Pay attention to BUS_DMA_NOWAIT & boundary args where appropriate. 1998-08-20 20:45:40 +00:00
pk aee27828f9 Some machines (Voyagers) apparently have zs devices with multi-valued
register properties in the PROM.
1998-08-20 11:47:39 +00:00
augustss cd09067eb4 * Redo the way the way the MIDI driver attaches to audio devices.
* Improve the midisyn layer a little.
* Add a driver for the Yamaha OPL[23] FM synths.
  The opl driver is not finished yet; it sounds pretty awful.

For some strange reason I cannot get any FM sound from my SB64 cards,
but a regular SB16 works fine.
1998-08-17 21:16:09 +00:00
mycroft 62b1bf3e2e Assign my copyrights to TNF. 1998-08-15 10:51:16 +00:00
mycroft 129cbf95ee Minor edit. 1998-08-15 05:16:41 +00:00
mycroft b2827b9d36 Assign copyright to TNF. 1998-08-15 04:16:55 +00:00
mycroft 6d3d8a1350 Make copyright notices with my name consistent. 1998-08-15 03:02:31 +00:00
eeh a2dd74ed79 Merge paddr_t changes into the main branch. 1998-08-13 02:10:37 +00:00
mjacob 5ad5bb35af minor change to make the message less linux like 1998-08-12 00:03:23 +00:00
mrg ca7ad3aff1 make this compile in a not SUN4M world. 1998-08-09 23:37:12 +00:00
kleink 546365a27e _POSIX_SOURCE -> _POSIX_C_SOURCE 1998-08-06 11:25:04 +00:00
pk 6c727e1651 dvma_malloc(), dvma_mapin() and dvma_mapout() are gone; all drivers
the use bus_dma(9) interface now.
1998-07-31 22:35:07 +00:00
pk 359cf8c23d Move `dvma_cachealign' here from vm_machdep.c 1998-07-31 22:23:30 +00:00
pk a0818b4b8b Use bus_dmamem_alloc/bus_dmamem_map. 1998-07-31 22:21:35 +00:00
pk 519f1f7f0e Convert to bus dma. 1998-07-31 15:53:11 +00:00
mycroft a24dbc8065 (Always) (practice) (safe) (macro expansion). 1998-07-31 15:07:41 +00:00
pk c206cad36e Convert to bus_dma. 1998-07-31 12:45:48 +00:00
thorpej ecf815f930 Back out previous; it is perfectly reasonable, and desirable, to print out
debugging info ifdef DEBUG.
1998-07-31 02:10:12 +00:00
mjacob 36f9ab27ce >We're not Linux. If we still want driver version strings to be displayed
>at boot, then I suppose DEBUG is a reasonable compromise.
Makes the whole concept useless. This is for default printouts. If you
can build a debug kernel, you know what version you have. This was under
the concept of 'RAS' so that hapless users could tell you microversion
things. But I guess this isn't the right way according to our local
Jesuits. Oh, well. I'll think up something different and hopefully
less objectionable. And yes, NetBSD isn't linux. The developers seem
to be equally bad tempered, but linux is more successful.
1998-07-31 01:56:49 +00:00
pk af89712b25 Use bus_dma_*() instead of dvma_mapin/dvma_mapout. 1998-07-30 22:42:04 +00:00
pk 32a5557426 Adapt to changes in the base bus_dma* functions. 1998-07-30 22:29:34 +00:00
pk 8a39d7a7fb The IOMMU now has its own dma bus tag and associated functions.
machdep.c retains the `mainbus' (i.e. sun4/sun4c) bus_dma* versions for now.
Create a DVMA map specifically for 24-bit devices (le,ie), which has a
more room than previous DVMA map which should be reserved for sun4 VME.
1998-07-30 22:28:44 +00:00
pk 862c0bafcc Define a BUS_DMA flag for devices that have a 24-bit address space.
Update _bus_dma* prototypes.
1998-07-30 22:20:31 +00:00
pk 741c837f77 Get to DMA map functions through parent tag, instead of calling some base
functions directly.
1998-07-30 18:54:06 +00:00
pk ab0e92568b <sparc/dev/sbusvar.h> => <dev/sbus/sbusvar.h> 1998-07-29 18:48:54 +00:00
pk 9104b183fa Lots of things have moved to <dev/sbus/sbusvar.h> 1998-07-29 18:45:57 +00:00
pk 402a052405 Deal with sbus attach args changes. 1998-07-29 18:44:22 +00:00
pk 9e4d2f9b53 Switch to new sbus attach arguments layout. 1998-07-29 18:42:32 +00:00
pk 58d952ce7d Deal with sbus attch args changes.
Use sbus_destroy_attach_args().
1998-07-29 18:37:23 +00:00
pk 426330f642 We no longer need to get the register sets by ourselves. 1998-07-29 18:36:08 +00:00
pk 718ff722b7 In the reset() function, preserve the current cable selection bit.
If in auto media select mode, this avoids losing carrier every time
the lance code decides to re-initialize.
1998-07-29 16:10:57 +00:00
pk 9111209fdf In _bus_dmamem_map(), use uvm_km_valloc() to get kernel addresses.
uvm_map() -- which used to be here (why was that?) -- was called with
an uninitialized value in its `start' argument.
1998-07-28 20:46:28 +00:00
thorpej 3ff8e6493a Don't cast the null residual pointer passed to vn_rdwr(). 1998-07-28 18:34:52 +00:00
pk cc0d537633 GC. 1998-07-28 14:04:08 +00:00
pk fb7bb1a359 Remove mbppio.h from the list.
Also stop installing db_machdep.h, fbvar.h, z8530.h.
1998-07-28 00:34:56 +00:00
pk aaadc9459d This file is now in <dev/sbus> 1998-07-28 00:33:35 +00:00
pk 14f4493376 Magma driver has been moved to <dev/sbus>. 1998-07-28 00:19:22 +00:00
pk fd9017990f Magma driver has been moved to <dev/sbus> 1998-07-28 00:17:47 +00:00
pk b0f82d5c73 `le' and `en' now attach to sbus (and lebuffer) in <dev/sbus>
Other `le' front-ends split into separate files.
1998-07-28 00:10:23 +00:00
pk 4ca3b5c079 We no longer use these. 1998-07-28 00:06:23 +00:00
pk 3d9b1710a7 This file is now in dev/sbus. 1998-07-28 00:05:41 +00:00
pk c7a2e942b0 Split the `le' driver front-ends into separate files.
The sbus and lebuffer front-end have moved to dev/sbus.
1998-07-27 23:59:11 +00:00
pk eec66e52bd Get headers from <dev/sbus> 1998-07-27 22:34:48 +00:00
pk d1f03e068a <sparc/dev/sbusvar.h> => <dev/sbus/sbusvar.h> 1998-07-27 19:32:42 +00:00
pk 6cd4c4ea99 Use <dev/sbus/files.sbus>. 1998-07-27 19:20:03 +00:00
pk db822a6c0a These files are now in <dev/sbus>. 1998-07-27 19:17:50 +00:00
pk e92f09b2b7 SBU_BURST_* are now in <dev/sbus/sbusvar.h> 1998-07-27 19:16:49 +00:00
mycroft da2e61d160 Delint. 1998-07-27 13:55:32 +00:00
mrg 36ee8a045b use lebuffer.c from dev/sbus. 1998-07-27 05:49:02 +00:00
mrg c5e180526b these have moved to sys/dev/sbus. 1998-07-27 05:48:42 +00:00
mrg 06d5ffd2a8 enable kernfs and mfs. 1998-07-27 05:45:17 +00:00
pk 9e8d90ed5c Add a cpu-specific function to flush a pure virtually-indexed/virtually-tagged
cache, which needs to be flushed at context switch.
1998-07-26 23:35:32 +00:00
pk 4998ae50c0 Define hypersparc instruction-cache flush ASI. 1998-07-26 23:29:58 +00:00
pk c6124a986a This file is no longer used. 1998-07-25 22:19:25 +00:00
pk 6ad50a6691 Allocate physical memory for the pv_table array in bootstrap(), so we
don't have to call VM functions from pmap_init().

Use a memory pool for additional pvlist entries (used for double mappings).

Take care of the cacheable bit on pagetables while we're initializing them,
instead of calling kvm_uncache() afterwards.
1998-07-25 22:01:19 +00:00
pk 91f18e727f Remove conditionals on SUN4C+SUN4M.
A few cosmetic changes.
1998-07-24 21:08:16 +00:00
pk f836b9e8d3 Drop private page table list maintenance; use memory pools instead. 1998-07-23 21:42:40 +00:00
pk 217addc8de Option DDB_ONPANIC needs a value. 1998-07-23 13:03:23 +00:00
drochner 49bb9d8214 adapt to LANCE driver split 1998-07-21 17:36:01 +00:00
thorpej 9df67db949 We're not Linux. If we still want driver version strings to be displayed
at boot, then I suppose DEBUG is a reasonable compromise.
1998-07-20 21:18:38 +00:00
mjacob 99ff11f6b7 locking now out of main framework for isp_reset/isp_init 1998-07-18 21:02:06 +00:00
pk 116c3be1e5 In dvma_mapout(), make sure to not overrun the buffer when flushing the cache. 1998-07-17 23:05:35 +00:00
mjacob bc355c6b3f new framework 1998-07-15 19:59:45 +00:00
thorpej d681d158c7 Remove the raw HYPERchannel kludge. 1998-07-15 17:45:52 +00:00
thorpej d47ea67c1f Define one page free list, and put all pages on it. 1998-07-08 04:43:18 +00:00
jonathan b37021c1a1 defopt NATM. 1998-07-05 22:48:05 +00:00
jonathan 011f2bda08 defopt NS, NSIP. 1998-07-05 06:49:00 +00:00
jonathan 5c0c5dd0b4 defopt ISO TPIP. 1998-07-05 04:37:35 +00:00
jonathan 3751946b97 defopt INET, NETATALK. 1998-07-05 00:51:04 +00:00
jonathan 466e784ee1 defopt DDB. 1998-07-04 22:18:13 +00:00
tv e89e603343 _GLOBAL_OFFSET_TABLE_ needs a _C_LABEL() wrapper, too. 1998-07-01 21:42:51 +00:00
tv 725b3015b6 Strip extra underscore on _mcount on ELF. 1998-07-01 20:55:45 +00:00
tv 28260456a9 Add relocation definitions used by ld.elf_so. 1998-07-01 20:43:56 +00:00
tv fb267f06f0 On ELF, make __indr_reference undefined and __warn_references do nothing,
as on Alpha.  This should be fixed to do something in both cases.
1998-07-01 17:14:51 +00:00
tv da26383918 Change _C_LABEL() to use proper underscoring depending on __ELF__ or not. 1998-07-01 02:35:24 +00:00
lukem bd8d501f7e remove options FIFO; it's now the default 1998-06-26 01:53:43 +00:00
thorpej 816e12eac2 defopt COMPAT_SVR4 1998-06-26 00:07:06 +00:00
thorpej 8aee7782f5 defopt COMPAT_SUNOS 1998-06-25 23:40:33 +00:00
thorpej 971b8956ef defopt KTRACE 1998-06-25 21:18:11 +00:00
jonathan dbe5213b11 Split arch/sparc/dev/amd7930.c into:
* MI sys/dev/ic/{am7930.c,am7930var.h} chipset driver
  * sparc frontend.
Presere revision history (this time).

TODO: bus.h'ify,  and padded register mappings.
1998-06-24 11:09:23 +00:00
jonathan b40ead2c73 Split sparc am7930 driver into sparc attach and "MI" sys/dev/ic/am7930
chipset driver.  Needs bus'ifying and  register-access.
1998-06-24 10:52:53 +00:00
mrg 077ba12357 rename FLOPPY INSTALL, as it is used for cdroms also 1998-06-20 13:02:28 +00:00
mrg 1caf02a0cf moved <machine/sun_disklabel.h> to <dev/sun/disklabel.h> 1998-06-20 03:50:51 +00:00
mrg 096ec47ff9 moved to <dev/sun/disklabel.h> 1998-06-20 03:46:24 +00:00
mrg abeeaf00ec do what the comment says: move this [sun_dkioctl] to compat/sunos. use <dev/sun/disklabel.h> 1998-06-20 03:45:27 +00:00
kleink 1fbd0b3749 GC the unused `physadr' type, which was not able to hold a complete physical
address on 2 architectures anyhow.  Also, move the definition of the `label_t'
type inside _KERNEL protection, since it is specific to the in-kernel
setjmp()/longjmp() implementations.
1998-06-14 20:09:22 +00:00
cgd 651b44e211 Rework the way kernel include files are installed. In the new method,
as with user-land programs, include files are installed by each directory
in the tree that has includes to install.  (This allows more flexibility
as to what gets installed, makes 'partial installs' easier, and gives us
more options as to which machines' includes get installed at any given
time.)  The old SYS_INCLUDES={symlinks,copies} behaviours are _both_
still supported, though at least one bug in the 'symlinks' case is
fixed by this change.  Include files can't be build before installation,
so directories that have includes as targets (e.g. dev/pci) have to move
those targets into a different Makefile.
1998-06-12 23:22:30 +00:00
fair a23c899718 apply patch from PR#4626 to allow DDB to deal with kernel traps. 1998-06-12 10:02:44 +00:00
tv 00ede2160e Change ddb_init() for a.out to provision for kernels which are not booted by
the current 'bootblock' method, like the Shark, which preloads and preformats
the symbol table right in the boot code.
1998-06-09 01:57:41 +00:00
pk 3f6155e843 Update from Iain for the parallel port stuff. 1998-06-07 21:14:17 +00:00
thorpej 30f9be231f Restructure cpu_reboot() a bit, and add support for powering down
on the Sun4m if RB_POWERDOWN is specified.
1998-06-06 21:46:51 +00:00
thorpej 1c6a275e9c Only attempt the powerdown if the power register was mapped. 1998-06-06 21:40:20 +00:00
thorpej 402c48737f needs-flag'ize the power device. 1998-06-06 21:30:34 +00:00
mrg e666cd4b3b install floppy kernel 1998-06-06 05:36:53 +00:00
mrg ff6c535817 sync with other md_root.c files. 1998-06-06 05:12:54 +00:00
mrg 4bc09321a9 add md to the "sparc_nam2nlk" and "chr2blk" arrays. the former fixes
panics seen on a floppy boot in setroot() as it could not properly
determine the root device.
1998-06-06 05:03:23 +00:00
mrg 428a0d387a remove old (now broken) memory disks hooks code. 1998-06-05 15:00:10 +00:00
mrg 135e6dc7e0 make this work with new md root stuff. 1998-06-05 14:57:55 +00:00
pk 062294cc8c Magma parallel port ioctls per Iain Hibbert. 1998-06-03 22:40:00 +00:00
pk 87fe4d9ea1 Update from Iain on the parallel port stuff. 1998-06-03 22:38:31 +00:00
thorpej 8ed096c794 Panic if we can't fulfill a bus_dmamap_load() with a boundary constraint. 1998-06-03 04:35:42 +00:00
thorpej a7f360c6c9 Specify a non-profiling C rule. 1998-05-31 23:25:41 +00:00
pk 70262fb287 Properly split boot spec into file name and arguments. 1998-05-27 10:29:10 +00:00
kleink a97fc2f180 If any of _ANSI_SOURCE, _POSIX_C_SOURCE or _XOPEN_SOURCE are defined, don't
provide any identifiers other than sig_atomic_t.
1998-05-25 20:59:01 +00:00
pk 229ff62ff7 Do not assume that a parallel component is always configured.
Squash compiler warnings if MAGMA_DEBUG is on.
1998-05-20 22:08:10 +00:00
pk 53ce970e7f Enable NTP. 1998-05-20 11:50:54 +00:00
pk 0f93e72a5d Add `mtty' and `mbpp' entries for the magma driver by Iain Hibbert. 1998-05-20 00:04:33 +00:00
pk 5fd81fa9ec Add entries for the magma SBus serial/parallel port driver. 1998-05-20 00:00:12 +00:00
pk 4e62cce89a Magma SBus serial & parallel port driver from Iain Hibbert. 1998-05-19 23:58:54 +00:00
thorpej 6626878e7b It is no longer necessary for pmap_pinit() and pmap_release() to be
pmap interface functions, as NetBSD no longer uses statically allocated
pmaps (except for the kernel pmap, which is special-cased anyhow).
1998-05-19 19:00:11 +00:00
pk 564ca8fafd Don't bzero() the IO page table; it is fully initialized in iommu_attach(). 1998-05-19 09:17:32 +00:00
pk 9dae8945ef In kvm_uncache(), turn off the PTE cache bit even after calling
pv_changepte(). Reason: the managed() macro does not take into
account the gap in the managed pages range that may have been introduced
by the page table allocation in bootstrap().
1998-05-19 09:14:34 +00:00
kleink d2db996158 Fix some arithmetics lossage on typeless pointers. 1998-05-07 21:13:23 +00:00
pk 263413efd9 Do not request more privileges from vm_fault() than required, i.e. don't
request read access in addition to write access on a write fault.
1998-05-06 14:28:29 +00:00
pk e615541de9 Maintain far more complete state in the PV lists on the cacheability of pages,
using separate flag bits for mappings that were requested to be not
cacheable and uncacheable pages due to incongruent aliases.

This avoids inadvertently turning on the cache-enable bits when removing
one of multiple virtual address mappings to the same page. Reading
from /dev/mem could do this to arbitrary pages.
1998-05-06 14:17:53 +00:00
mrg 445283dc37 make UVM the default on the sparc 1998-05-05 01:15:05 +00:00
pk b6933ca39d Reading back the IOMMU registers apparently has the ability to wedge
microSPARC I cpus. Instead insert a couple of no-ops that seems to
avoid the microSPARC II lossage just as well.
1998-05-04 23:16:59 +00:00
thorpej 1686aca01d Pull in opt_gateway.h as appropriate. 1998-04-29 23:11:00 +00:00
kleink a53c1863fe Provide definitions for intptr_t and uintptr_t, signed resp. unsigned integral
types large enough to hold any pointer.
1998-04-27 17:39:10 +00:00
chs 8cacea4ea0 fix a timing problem with polled output on sun4c's. 1998-04-23 04:06:17 +00:00
pk c1a4f8c8ed Define `xbox'. 1998-04-18 19:03:00 +00:00
pk 90b5c246c6 Skeleton code for the SBus expander box. 1998-04-18 19:00:17 +00:00
tv b21bfbde11 Add -Wno-main conditional on compiler being gcc 2.8 or egcs. (This adds
a HAVE_GCC28 check-variable that can now be used to add other gcc-2.8
flags in cases where they may be useful, or to remove gcc 2.7.2 "bug
workaround" flags.)
1998-04-12 23:47:41 +00:00
pk 98e9f557c2 No need to export bus_intr_establish(). 1998-04-07 20:43:58 +00:00
pk beb02e6b82 Use bus space methods to implement the vme bus space functions. 1998-04-07 20:21:55 +00:00
pk b333d0bb62 The bus space functions now take care of "pass-through" methods. 1998-04-07 20:20:03 +00:00
pk fbc1fe8213 bus_space_mmap() has changed to take a `bus_space_handle_t *' argument,
like other bus space methods.
1998-04-07 20:18:17 +00:00
pk 3f455e21d9 The bus space functions now take care of "pass-through" methods. 1998-04-07 20:11:54 +00:00
pk 5ecf4dce67 Remove old mapdev() function prototype. 1998-04-07 20:08:29 +00:00
pk 286472fe4d * Pass the bus tag instead of just the cookie to all bus space methods.
* In the bus tag structure, keep a reference to the parent bus.
* Express all bus space methods as inline functions in stead of macros
  and use the parent bus tag reference to find the nearest "upstream"
  bus that implements the method.
1998-04-07 20:07:23 +00:00
pk dd3352e3e3 bus_space_*() functions now have the bus tag as first argument.
Remove old mapdev() function that is no longer used.
1998-04-07 19:57:37 +00:00
pk 676939e234 Make the single-step support routines available to KGDB-only kernels as well. 1998-04-03 19:53:36 +00:00
pk 437796f42a Move initialization of `proc0.p_addr' from cpu_startup() to bootstrap(). 1998-04-01 14:03:26 +00:00
pk 763a681898 Accommodate cgsix bus-attach split. 1998-03-31 21:12:15 +00:00
pk e3e74bd0d5 Factor out bus code into separate files. 1998-03-31 21:05:04 +00:00
pk be4108fec1 Replace direct `sparc_bus_map()' calls with bus space map method. 1998-03-30 14:21:38 +00:00
pk c2d9565240 mainbus `pa_addr' is now a `bus_addr_t'. 1998-03-30 14:15:57 +00:00
pk fed9d8e6d6 Make mainbus attach phys addr field a bus_addr_t. 1998-03-30 14:15:12 +00:00
mycroft d4da63c6c3 Eliminate cs_heldchar. It is not necessary in my version of the driver. 1998-03-30 02:41:21 +00:00
pk a55cefe6b4 Initialize `par_err_reg' in the mainbus attach function. 1998-03-29 22:13:30 +00:00
pk b782c3448c obio_bus_probe() => bus_space_probe() 1998-03-29 22:10:32 +00:00
pk 2ad26b801c Fill in the bus tag's `bus_space_unmap' method. 1998-03-29 22:06:58 +00:00
pk 82663a0330 Implement `_obio_bus_map()' and insert it into the obio bus' bus tag.
Remove obio_bus_probe().
1998-03-29 22:05:05 +00:00
pk 57a8159633 Enter `obio_find_rom_map()' prototype.
Make `oba_paddr' field a `bus_addr_t'.
Define temporary compat `obio_bus_map()'.
1998-03-29 22:02:46 +00:00
pk 11928be0ff `sparc_bus_mmap()' declaration moved to machdep.c 1998-03-29 22:00:33 +00:00
pk 759c8965a3 Use `obio_find_rom_map()' explicitly instead of using `obio_bus_map()'
without a proper bus tag.
1998-03-29 21:59:44 +00:00
pk 2f1dd95a2d Declare `sparc_bus_unmap()' static. 1998-03-29 21:56:32 +00:00
mrg 47a62a0eed use bitmask_snprintf. 1998-03-29 05:10:45 +00:00
mrg b61e2629f2 remove register from decl. 1998-03-29 05:08:46 +00:00
pk 2a65520c69 bus_space_probe() prototype. 1998-03-28 19:45:29 +00:00
pk 89444e9309 Implement generic bus probe function. 1998-03-28 19:44:08 +00:00
pk f3d6050987 Typo in initial interrupt register mapping code. 1998-03-26 16:11:40 +00:00
pk f658122053 Check for a valid PROM virtual address. 1998-03-25 23:15:07 +00:00
pk ce14ebd2b7 Include not-cacheable bit in base bus space mmap function. 1998-03-24 10:00:14 +00:00
pk 23521d1c5f Fix yank-and-put error in sbus attach code.
Misc. cleanup.
1998-03-23 17:37:04 +00:00
pk 4730d097ad Only print interesting interrupt levels. 1998-03-23 17:21:52 +00:00
pk 3702424d0f Restore initialization of `par_err_reg' (sun4). 1998-03-23 17:16:03 +00:00
pk 279df61dbe Fill in the pointers the MI back-end expects correctly.
Add comment and diagram explaining the memory layout (to be revisited..).
1998-03-22 22:12:52 +00:00
pk 405ec57e9f Lift the tilde a bit. 1998-03-22 20:24:05 +00:00
pk e6a2630760 Direct the Sbus bus map function through the bus tag. 1998-03-21 22:03:33 +00:00
pk f4410cf7a3 Account for changed bus attachment scheme. 1998-03-21 20:34:58 +00:00
pk 090d9364af Implement bus mapping and interrupt-establish functions. 1998-03-21 20:33:31 +00:00
pk 681b358c19 Account for bus_space(9)-style bus attachment scheme. 1998-03-21 20:30:49 +00:00
pk 232fa45996 Add bus tags to softc. 1998-03-21 20:29:57 +00:00
pk a21d934940 Add bus tags.
Add interrupt chaining facility (currently used for `le'; the `esp'
device should follow).
1998-03-21 20:28:44 +00:00
pk 087da728f2 Add bus tags to softc. 1998-03-21 20:25:12 +00:00
pk c99d62cc8a Account for changed bus attachment scheme. 1998-03-21 20:23:38 +00:00
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