Commit Graph

25 Commits

Author SHA1 Message Date
scw 5bd17a1271 Separate out devices common to many Motorola mvme boards (68k, 88k and ppc)
in preparation for future mvmeppc and mvme88k ports.

This needs a bit if tidying up to make it trully shareable, which will
happen as the new mvme ports are added.
2002-02-12 20:38:09 +00:00
scw 35110949ce Ditch the `simulated' software interrupt in favour of
hardware-assisted soft interrupts on all boards.
(Note: VMEChip2-less 162/172 not yet tested)

This greatly simplifies the `rei' path and allows
interrupt nesting to be tracked somewhat more easily.

As a result we now have a working CLKF_INTR() macro
and can detect uvm_fault() being called from an interrupt
(although there may still be a very short race detecting
the latter; need to investigate further).
2001-07-06 19:00:12 +00:00
thorpej 8eb3b954f1 Don't need to prototype child_return() here, it's in <sys/proc.h>. 2001-06-14 22:56:55 +00:00
mrg 67afbd6270 use _KERNEL_OPT 2001-05-30 11:57:16 +00:00
scw 7d191ffe77 Revamp the bus_space(9) implementation:
. use a structure for the tag instead of an integer constant,
 . add bus_space_{peek,poke}_N() (and G/C `badaddr()'),
 . fix a few drivers which have dependencies on the implementation.
2000-11-24 09:36:40 +00:00
scw b6f0a678dd Add support for the m68060-based machines: MVME-172 and MVME-177.
CPU support taken from a combination of NetBSD/amiga and NetBSD/x68k.

At this time, MVME-172 works but MVME-177 is untested. Since the '177
is otherwise identical to the MVME-167, this should *just work*.
2000-11-20 19:35:28 +00:00
scw 53d57897d0 Use the complete ethernet address stored in nvram on mvme162/mvme167
instead of faking the first 5 nibbles a'la mvme147.

Apparently recent mvme16x boards have a new 5 nibble prefix...
2000-09-15 08:50:24 +00:00
thorpej 4db6fc7542 Make need_resched() take a "struct cpu_info *" argument. This
causes gives a primitive form of processor affinity.  Its use in
roundrobin() still needs some work.
2000-08-25 01:04:06 +00:00
scw 78abb015f5 G/C the IIO* #defines. They're no longer needed. 2000-07-24 11:20:47 +00:00
scw 8e7a493bbc Protect against multiple inclusion. 2000-05-27 14:45:36 +00:00
scw 48c1f20cf8 s/schedcpu_percpu/schedstate_percpu/ 2000-05-27 14:25:00 +00:00
thorpej a7d0570e67 First sweep at scheduler state cleanup. Collect MI scheduler
state into global and per-CPU scheduler state:

	- Global state: sched_qs (run queues), sched_whichqs (bitmap
	  of non-empty run queues), sched_slpque (sleep queues).
	  NOTE: These may collectively move into a struct schedstate
	  at some point in the future.

	- Per-CPU state, struct schedstate_percpu: spc_runtime
	  (time process on this CPU started running), spc_flags
	  (replaces struct proc's p_schedflags), and
	  spc_curpriority (usrpri of processes on this CPU).

	- Every platform must now supply a struct cpu_info and
	  a curcpu() macro.  Simplify existing cpu_info declarations
	  where appropriate.

	- All references to per-CPU scheduler state now made through
	  curcpu().  NOTE: this will likely be adjusted in the future
	  after further changes to struct proc are made.

Tested on i386 and Alpha.  Changes are mostly mechanical, but apologies
in advance if it doesn't compile on a particular platform.
2000-05-26 21:19:19 +00:00
scw 9c745dbd5e Merge 'scw_mvme68k_bus_space' branch with the trunk.
These changes add support for:

	o The MI VMEbus framework on both MVME147 and MVME167.
	o Enhancements to the existing MD bus_space(9) implementation.
	o Most of the bus_dma(9) API.
2000-03-18 22:33:02 +00:00
thorpej 28fb7c1eb8 Define cpu_number() as discussed on tech-smp. 1999-08-10 21:08:05 +00:00
is 8474ed8a1e MVME68K specific part of fix for PR 6152 1999-02-26 22:16:35 +00:00
scw 4f53e52d8a Add support for the VMEchip2 and the ncr53c710 SCSI IOP.
VMEchip2 support work is ongoing. SCSI is complete.
1999-02-20 00:11:59 +00:00
scw a72d37c4fa Merge support for mvme167 into main tree. 1999-02-14 17:54:27 +00:00
thorpej 49c62c4336 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:41:23 +00:00
scottr f49dd3ef30 Avoid declaring the "astpending" and "want_resched" globals in cpu.h,
as this breaks C++ code that happens to indirectly include this header.
Both Matthias Scheler and I noticed this, independently.

This problem notably does not affect the atari and sun3/sun3x ports,
which have already implemented a similar solution.
1998-02-13 07:41:45 +00:00
thorpej 399b0e0f68 - Use MVME "machine options" to associate MVME models with CPU
options (a'la the hp300 port).
- Declare a "machineid" extern.
- Define constants for machineid, which match the Bug's idea
  of MVME model numbers.
1996-09-12 05:26:37 +00:00
thorpej 054bd4e4d0 Prototype badaddr(). 1996-09-12 05:01:47 +00:00
thorpej a437d4f6cb Use <m68k/cpu.h>. 1996-09-11 00:23:47 +00:00
chuck 81fc59565a cpu.h: add prototypes (from jason)
disklabel.h: new disklabel format (from Dale Rahn)
param.h: new delay stuff (from sun3 port)
vmparam.h: nuke eiomap for new autoconfig (from jason)
z8530var.h: for MI driver (from jason)
1996-04-26 19:40:53 +00:00
mycroft ce000f04ef Remove deprecated cpu_setstack(). 1995-12-21 05:01:32 +00:00
chuck 0b036e11bf mvme68k port -- for the motorola vme147 m68030 card 1995-07-25 23:11:53 +00:00