Commit Graph

862 Commits

Author SHA1 Message Date
cgd
96acdadef7 First step inn removing config_scan() and the hacks that gave devices
on indirect-config busses a (permanent) softc that they could share
between 'match' and 'attach' routines:

Define __BROKEN_INDIRECT_CONFIG so that old autoconfiguration
interfaces are used, until drivers are converted to use the new
interfaces (actually, converted back to use the _older_ interfaces)
which prohibit indirect configuration devices from receiving a softc
in their match routine that they can share with their attach routine.
1996-12-05 00:13:47 +00:00
jonathan
4c1d96de78 * Replace explicit -O2 in CFLAGS with COPTS macro. Default COPTS?= -O2.
Lets users over-ride with makeoptions COPTS="..." in kernel config files.

  Leave `mandatory' flags (like  -msoft-float which  on m68k enforces no
  FP in kernel) in CFLAGS.
1996-12-01 06:12:25 +00:00
cgd
8a3333b2a9 Fix an inconsistency that came in with Lite: setrq() was renamed to
setrunqueue(), but remrq() was never renamed.  Rename remrq() to
remrunqueue().
1996-11-06 20:19:19 +00:00
hpeyerl
05fe4c93dc Force some drive mappings for reasons I won't get into. 1996-10-21 16:43:05 +00:00
thorpej
43ba106ec2 Remove declaration for now-gone function. 1996-10-20 23:47:40 +00:00
thorpej
af8d8d2a56 Arrange this file into sections (configure(), root device goo, console goo,
old-config goo).  Place old-config goo at the end so that it's easy to
#ifdef our or delete (muahahah!).

Garbage collect a couple of unused functions.
1996-10-20 23:46:06 +00:00
thorpej
bbdd41a2a7 Back out last change, and add a comment about what should happen.
(*grumble* will teach me to do a `make clean' next time.)
1996-10-20 23:23:28 +00:00
thorpej
7133ecf2ca Don't need to mark 0-NBPG as VM_PROT_NONE in kernel_map anymore; the
first entry is now properly setup in kmem_init().
1996-10-19 21:11:32 +00:00
thorpej
7958973110 Set VM_MIN_KERNEL_ADDRESS to NBPG. This is a better way of getting
the kernel_map to treat page 0 properly.
1996-10-19 21:07:42 +00:00
thorpej
cf9b36ab1d Set up a kernel_map entry for the text segment with protection of
VM_PROT_READ|VM_PROT_EXECUTE.  The previous default (VM_PROT_ALL)
would cause the following scenario:
	- someone attempts to write kernel text (my test was writing
	  to an offset of /dev/kmem which was known to be in the text
	  segment, while in single-user mode).
	- enter trap() with MMU fault (because of RO pte).
	- trap() calls vm_fault(), which looks up vm_map_entry for
	  fauling address.
	- vm_fault interprets write fault and VM_PROT_WRITE (in VM_PROT_ALL)
	  as COW; new page allocated, data copied to new page, new page
	  mapped in at trunc_page(<faulting va>).
	- wow, look at the fireworks!
Fixes two potential symptoms:
	- kernacc() returns TRUE when checking for permission to write
	  an offset in kernel text, which is bogus, since the text has
	  been mapped RO by pmap_bootstrap().
	- Handling of a stray pointer that attempted to scribble into
	  kernel text would not be executed properly.
1996-10-19 08:51:33 +00:00
thorpej
6126eea479 Tell the `upper half' of the VM system that page 0 isn't mapped. If we
don't do this, kernacc() will bogusly return TRUE for page 0, causing a
NULL pointer dereference in uiomove() when reading /dev/kmem.

Thanks to Scott Reynolds for noticing the problem.
1996-10-18 08:57:14 +00:00
thorpej
150c33e60b Use ${INSTALL}. 1996-10-18 05:55:26 +00:00
thorpej
9f1ba5739f Don't need "options GENERIC" anymore. 1996-10-15 22:01:53 +00:00
thorpej
608efe383e Use the hp300 version of db_memrw.c (forgot to commit this change the
other day).
1996-10-15 22:00:31 +00:00
thorpej
d2daeab10d Garbage collect the "kernel jump to zero" stuff. VA 0 is now invalid,
so the kernel will fault if the PC gets trashed like that.
1996-10-14 22:11:16 +00:00
thorpej
ac35089824 Couple of small changes:
- Fix up usage of MBD_ISPID().
- Ensure that we never deal with a NULL proc, and if our proc has
  no pcb, punt.  Suggested by Gordon Ross.
- Eliminate some redundant NULL pointer checks in the T_MMUFLT cases;
  proc0.p_addr is now initialized early, and we make a single test
  for sanity at the top of trap() now.
1996-10-14 20:06:31 +00:00
thorpej
a72edba413 Couple more small changes:
- Initialize proc0.p_addr just after setting up the kernel stack, to avoid
  getting NULL pointers in trap().  Change suggested by Gordon Ross.
- Panic if main() returns.
- Tidy up a couple of comments.
1996-10-14 20:02:48 +00:00
thorpej
ffc4c833ea Be careful not to deref bad pointers in the MMU fault handler! (yow!) 1996-10-14 08:07:23 +00:00
thorpej
7744dc270c Couple of small changes to how kernel is mapped:
- kernel text is now always read-only.
- page 0 is invalid.
1996-10-14 08:05:37 +00:00
thorpej
4fa7362d31 Add a db_memrw.c that understands how to write to read-only kernel text
(remaps page read/write/cache-inhibit, does write, restores previous
mapping).  Kernel text no longer needs to be read/write with DDB/KGDB
is in the kernel.

Based on a similar module written for the Sun3 port by Gordon Ross,
and modified somewhat by me.
1996-10-14 08:02:27 +00:00
thorpej
5b66e34d14 A few small changes:
- Offset kernel text one page.  Stash the PA of this offset page for
  use later.
- Add a few comments.
- Free up some registers earlier in the initialization process.
- Use a `prototc' to set the Translation Control register, rather
  than relying on a2 pointing just past the MMU trampoline in the
  high page.  (Suggested by Charles Hannum.)
- Set VBR to the kernel vector table just before turning on the MMU.
- Just before rebooting, set VBR to 0, which is what the BOOTROM expects
  it to be.
1996-10-14 07:58:54 +00:00
thorpej
27f386f5b2 Garbage collect some now unneeded code, and declare the punit device
driver entry point switch.
1996-10-14 07:34:48 +00:00
thorpej
415248a4f2 Move the machdep_start() code into machdep.c. No need for different
versions of this function anymore, now that we have a sane kernel setroot().
1996-10-14 07:33:43 +00:00
thorpej
18c2b0460a Garbage collect some hackish code that was needed when we had a lame
kernel setroot().  The device type for network boot is set like any
other device now.  Also, call the punit entry point for device drivers
to properly set `bootdev'.
1996-10-14 07:31:47 +00:00
thorpej
9ff0348a49 Implement ctpunit(), a "set physical unit" entry point. 1996-10-14 07:29:57 +00:00
thorpej
9d51a5dcf7 Add a standalone driver entry point that sets the physical unit (HP-IB's
equivalent of a LUN) in `bootdev'.  This is needed to properly detect the
boot device if booted from the tape unit of an HP-IB disk/tape combo.
1996-10-14 07:29:15 +00:00
thorpej
84da57f13b Clean up the code that sets `bootdev' based on information provided
by the BOOTROM.  Also, give network devices the attention they deserve.
1996-10-14 07:26:06 +00:00
thorpej
23640d012f New root device detect/set code, lifted mostly from NetBSD/alpha.
The "options GENERIC" entry in kernel config files is not longer necessary
for "swap generic" kernels.  Uses new config constructs which work with
some glue in an old config environment.  This code will support new config
with minimal changes.
1996-10-14 07:20:26 +00:00
thorpej
8acf9f0215 Set the device class on non-dull devices. This is a transitional thing. 1996-10-14 07:14:11 +00:00
thorpej
7d13691de1 Add some new config glue to the legacy hp300 device structures. This is
a transitional thing.
1996-10-14 07:11:50 +00:00
thorpej
01d74572dd Default the HIL keyboard to "US ASCII". This should fix a bug where
an unrecognized keyboard produced garbage on keypresses in the kernel,
but worked in the boot program (which has this default).  The bug is
that the keymap pointers are unitialized.
1996-10-14 07:09:41 +00:00
thorpej
7ee4744ed2 Need to include <sys/exec.h>. 1996-10-14 06:51:50 +00:00
christos
ad67e04154 backout previous kprintf change 1996-10-13 16:50:51 +00:00
christos
30b3cc3d09 backout previous kprintf changes 1996-10-13 03:14:05 +00:00
christos
60dd5ceebe printf -> kprintf, sprintf -> ksprintf 1996-10-11 00:06:28 +00:00
cgd
e36e19cf1e repoint at shared aout_machdep.h, not exec.h 1996-10-08 13:07:26 +00:00
cgd
472889f8e4 moved to aout_machdep.h (via repository copy) 1996-10-08 12:57:37 +00:00
thorpej
eeef0d1784 Prototypes for functions in locore.s and machdep.c (oops, forgot to
check this in the other day...)
1996-10-07 06:29:30 +00:00
thorpej
24d2e8ec5f Sanity sweep. 1996-10-07 04:45:41 +00:00
thorpej
a2f9031d2f Add support for copying the miniroot from HP-IB cartridge tape. 1996-10-07 04:45:10 +00:00
thorpej
bc504916f3 Garbage-collect some sun3-specific stuff, add some debugging code,
and KNF.
1996-10-06 19:07:53 +00:00
thorpej
61a0ffca58 Fixup (unused) netstrategy() routine's calling convention (just returns
EIO).  Garbage collect unused netioctl() - conf.c redirects netioctl()
to noioctl().
1996-10-06 19:07:00 +00:00
thorpej
a3c29be5e0 Fixup ctstrategy() calling convention. The standalone ct driver
works again.
1996-10-06 19:05:27 +00:00
mycroft
6ea58d5fae Serial console changes:
* Enable FIFO with trigger level 1.
* Set DTR and RTS so terminals are happy.
* Do not set IEN.
1996-10-06 01:42:45 +00:00
thorpej
67cd067f25 Nuke __BDEVSW_DUMP_OLD_TYPE. 1996-10-06 00:15:31 +00:00
thorpej
39cbdb7e9f Fix kernel crash dumps. Still uses the old format for now. 1996-10-06 00:14:12 +00:00
thorpej
d01962702f General cleanup:
- make a prototyping sweep
	- do some garbage collection
	- always print the status of enabling memory parity checking
Still some more to do.
1996-10-05 09:22:47 +00:00
thorpej
84b3384afb Check for internal HP-IB in SYSFLAG much earlier (i.e. before the MMU
is turned on).
1996-10-05 09:19:58 +00:00
thorpej
f52b60c3a0 Prototype ledcontrol(). 1996-10-05 09:18:22 +00:00
thorpej
2ec75a3c3c Cast a volatile pointer to caddr_t for a call to badbaddr(). 1996-10-05 09:17:38 +00:00
thorpej
a6a1f78d0c Handle kernel trace traps and breakpoints like the Sun3 port:
- Only pass user trace traps and breakpoints on to trap().
	  Gets rid of some hair in the trace/breakpoint trap cases.
	- Before entering the debugger, switch to a temporary
	  stack so that the debugger can alter the stack pointer.
	- Add glue for KGDB (still not complete).
Some other minor cleanup:
	- Protect against some bad pointer derefs.
	- Be more a little more verbose when a fatal trap
	  occurs to aid debugging.
1996-10-05 07:24:10 +00:00
thorpej
8499e0131e Handle kernel trace traps and breakpoints like the Sun3 port:
- Only pass user trace traps and breakpoints on to trap().
	- Before entering the debugger, switch to a temporary
	  stack so that the debugger can alter the stack pointer.
	- Add glue for KGDB (still not complete).
Clearly mark the MMU enable trampoline code.
1996-10-05 07:16:52 +00:00
thorpej
0ff075f6e7 Define FR_SIZE as sizeof(struct trapframe) 1996-10-05 07:11:44 +00:00
thorpej
2f9a90e967 Don't lower spl before calling main. For now, do it right before
calling hilinit().  Eventually, would like to enable them only after
autoconfiguration is finished.
1996-10-05 07:06:11 +00:00
thorpej
2793eb282e If console is on an ite, make sure the HIL is initialized enough for
the keyboard to work.  Fixes a bug where booting with `-d' worked
only on systems using a serial console.

While I'm here, eliminate some redundancy in the ite console intialization
code.
1996-10-05 05:22:04 +00:00
thorpej
5f728fb6de Garbage-collect some now-unused PANICBUTTON code. 1996-10-04 22:22:15 +00:00
thorpej
608fae21af Clean up handling of non-maskable interrupts. 1996-10-04 22:19:47 +00:00
thorpej
8672fd704e At the end of the delay calibration routine, explcitly reset the timer.
This fixes a critical bug where a clock interrupt would happen sometime
between the call to hp300_calibrate_delay() and when proc0 is initialized.
This ends up dereferencing a bad pointer in itimerdecr(), which scribbles
over the first page of kernel text, specifically vectors 46 and 47 (decimal).

To complicate matters, the way the bug manifested itself was different
depending on whether or not DDB was configured into the kernel.  When
DDB is in the kernel, kernel text is mapped read/write.  When DDB is not
in the kernel, kernel text is mapped read-only.  Note that the kernel
scribble happens early, typically before the console is initialized.

In the non-DDB case, the kernel will hang as soon as it's loaded because
the access causes a fault (before the console is initialized, so you
don't see the trap).

In the DDB case, the access does _not_ cause a fault.  However, the
mechanism used to enter the kernel debugger is to issue a "trap #15".
Conveniently, this is one of the corrupted vectors (47), thus rendering
DDB useless (it actually caused a recursive panic/trap loop).

This _WILL_ be in the first 1.2 official patch.
1996-10-04 08:55:04 +00:00
thorpej
9f287be633 Add EXEC_AOUT to all kernels. 1996-10-03 01:25:32 +00:00
thorpej
0cb6f5925c Correct an old comment; the 318, 319, and 330 _are_ tested (68020 w/ 68851).
(Read: I have a 319 :-)
1996-09-14 20:36:49 +00:00
thorpej
9476dabc1a Correct a somewhat confusing typo in a comment, pointed out by
Scott Reynolds.
1996-09-12 18:54:23 +00:00
thorpej
be969d881e Update for poll(2) changes. 1996-09-12 01:22:58 +00:00
thorpej
eae3f0bb96 When opening a disk for non-filesystem i/o, make sure we only return
an error condition when an error occurs.

Bug noticed by Terry Lambert <terry@lambert.org>.
1996-09-11 18:05:02 +00:00
thorpej
5704683922 - Pull in some interesting changes from the Amiga trap.c:
* SunOS glue

	* 68060 exception frame size definitions

	* 68060 fault detection macros

- Use `cputype' rather than `mmutype' where appropriate.

- Play the prototype game.

This file is much closer to being sharable by all m68k ports.
1996-09-11 00:44:24 +00:00
thorpej
f36cec2dfc Define the CPU_* constants from <m68k/cpu.h> for assym.h 1996-09-11 00:32:16 +00:00
thorpej
75b43e0aa6 Declare a `cputype' global, and set it as appropriate. 1996-09-11 00:29:28 +00:00
thorpej
e469c7beca Use <m68k/cpu.h>. 1996-09-11 00:11:42 +00:00
thorpej
1710b024c0 Document COMPAT_M68K4K, but leave it disabled by default. 1996-09-10 22:26:50 +00:00
mycroft
b3ffba62a6 Move strip(1) flags into a separate variable, so that $STRIP can
be passed to subordinate make(1)s.  Remove $TOUCH.  Add HOSTED_CC,
HOSTED_CPPFLAGS, and HOSTED_CFLAGS, and use them when depending genassym.
1996-09-09 21:06:55 +00:00
thorpej
de5110f41e Use <m68k/exec.h>. 1996-09-08 01:00:35 +00:00
mycroft
e6dd44f034 Use SIGBUS iff we get a legitimate bus fault. Use SIGSEGV for page protection
violations (per Solaris, SVR4, AIX, Linux, Irix, and SunOS).
1996-09-07 22:26:41 +00:00
mycroft
2bc736661a Implement poll(2). 1996-09-07 12:40:22 +00:00
thorpej
e0775c12c8 Don't `config-dependent' machdep.c; we already depend on the Makefile,
which accomplishes the same thing.
1996-09-07 06:52:21 +00:00
mycroft
fc3def4096 Remove duplicate declarations of LKM functions and macros. 1996-09-05 15:46:22 +00:00
mycroft
b3eac79b64 tty stop functions really should return void, not int, and certainly not both. 1996-09-02 06:43:16 +00:00
mycroft
30a617c634 Wrap the default definition of S' in .ifndef'. 1996-08-31 21:40:47 +00:00
thorpej
a90c2638f0 Add the United Kingdom and Swedish HIL keyboard maps to the kernels
used in the binary snapshots.
1996-08-25 01:22:13 +00:00
thorpej
9221f4ecc6 Add COMPAT_12 to all kernels, and COMPAT_11 to a few as well. 1996-08-22 21:02:49 +00:00
hpeyerl
f5f1393c35 Get rid of dkn stuff. It's deprecated. 1996-08-18 17:01:53 +00:00
mycroft
558d72128e Put into . Remove hooks for `config-dependent' and
`device-driver' flags.
1996-08-12 00:51:24 +00:00
mycroft
cf67f29afe * Add a HOSTED_C_C variable, which strips -p', -pg', and
`-nostdinc', and use it when building genassym.
* Use `-nostdinc' just to be sure we're self-contained.
1996-08-10 06:07:57 +00:00
mycroft
f94052ed3a * Define CWARNFLAGS and MKDEP in some moderately consistent fashion.
* Make S expand to an absolute path at compile time.
* Use `-S' rather than `-x' to remove debugging symbols.
* Garbage collect unused variables.
* Reverse a handful of port-specific changes that do not correspond to
the common build model and are not needed.
1996-08-10 05:29:24 +00:00
mrg
5abbf990f3 Change reboot(2) to take two arguments: bootopt like normal and also
a boot string for firmware that can do this, such as the SPARC and
the sun3 models.  It is currently silently ignored on all other
hardware now, however.  The MD function "boot()" has been changed to
also take a char *.
1996-08-09 10:30:23 +00:00
thorpej
180c16eff6 Oops, forgot this required change in previous commit. 1996-06-26 18:11:24 +00:00
thorpej
fc699e8440 Major revamp of the boot code.
- Good bye SYS_PBOOT and SYS_NBOOT, hello SYS_UBOOT (unified boot)
	  Currently supports booting from SCSI and HP-IB disk and network
	  from a single boot block.  Infrastructure for booting from
	  HP-IB tape is there, but it doesn't quite work yet.

	- Add a slightly modified version of Gordon Ross's "rawfs",
	  which provides a filesystem-like interface to tape devices.
	  Still needs debugging (see above).

	- Rename sys_inst.c to inst.c, so that the LIF directory entry
	  turns out right (used to look like SYS_SYS_I if loaded from
	  tape).

	- Add a "netio_ask" hint to netio.c, so that a special instnetio.o
	  doesn't have to be compiled for SYS_INST.  Defaults to using
	  bootparams, but if set, will prompt user for information
	  usually obtained from bootparams.

	- General cleanup.
1996-06-26 17:44:21 +00:00
thorpej
5253727570 From Ignatios Souvatzis <is@NetBSD.ORG>:
- handle fpfault properly on the 68040
	- properly distinguish between a bus error and an MMU fault
	  on systems with 68030 or 68851 MMUs
1996-06-23 05:48:12 +00:00
cgd
352d972c94 locc() is unused. Remove it from the machine-independent kernel interface. 1996-06-10 15:33:33 +00:00
thorpej
156eaa5f84 Add "needs-count" to the `ac' driver so an ac.h file gets generated. 1996-06-10 06:48:44 +00:00
thorpej
a323ce7b09 Add the "Python 28849" to the list of `supported' tape drives as a PYTHON
type.
1996-06-10 06:39:31 +00:00
thorpej
bcab59cd3c Remove the old-style disk instrumentation support. Nothing uses it
anymore.
1996-06-06 16:17:41 +00:00
thorpej
e9e80a6043 Add calls to tty_attach() and tty_detach() where appropriate. 1996-06-06 15:36:06 +00:00
hpeyerl
3e834c5e86 Update to reflect reality (such as it is). 1996-05-26 23:45:42 +00:00
mrg
1af2be6068 document PORTAL 1996-05-20 18:15:11 +00:00
thorpej
f969979dea Back most (not all) of the previous delay-related changes now that
delay is calibrated properly.
1996-05-18 23:56:59 +00:00
thorpej
62f7f3ad57 Implement a real delay calibration routine, adapted from Chuck Cranor's
mvme68k delay calibration algorithm.
1996-05-18 23:30:09 +00:00
christos
52d3532adb - remove cpu_exec_aout_prep_oldzmagic and use exec_aout_prep_oldzmagic 1996-05-18 15:58:07 +00:00
thorpej
a8c7148dd2 XXX set up alldevs and allevents so that vmstat -i will work. 1996-05-18 01:39:57 +00:00
thorpej
63f4ec3e41 Put the vector table back in the text segment; putting it in the data
segment breaks doboot() on my 319 (but worked on my 380...bleh!)
1996-05-18 00:52:53 +00:00
thorpej
03fc26050d Put the vector table _after_ the temp stack. 1996-05-17 16:32:28 +00:00
thorpej
503413590e Changes for the new delay() function. 1996-05-17 15:38:08 +00:00
thorpej
91cb72e7ea remove the now unused MHz constants, add a declaration for vectab[],
and document some globals.
1996-05-17 15:37:07 +00:00
thorpej
a5d6cd3a32 Move the vector table to the data segment. 1996-05-17 15:33:52 +00:00
thorpej
d845719070 Add a new function, hp300_calibrate_delay(), which sets the delay constant
based on a model's known CPU speed.  cpuspeed value is now in MHz
instead of (MHz / 8).
1996-05-17 15:32:26 +00:00
thorpej
33e1caaf99 Couple of changes:
- New delay() function, modeled after sun3/mvme68k delay,
	  calibrated with a model's known cpu speed.
	- Use the defined constants for machineid and ectype
	  when determining what kind of machine we have, rather
	  than their expanded equivalents, for clarity.
	- Move the vector table to the data segment so that it
	  can be patched at run-time.
1996-05-17 15:27:26 +00:00
thorpej
bbc04e2011 Define the machineid and ectype constants. 1996-05-17 15:20:55 +00:00
thorpej
b20981c51d Remove cpuspeed from here. 1996-05-17 15:19:02 +00:00
thorpej
3ad552e74b Adjust for new DELAY() ... s/DELAY(1)/DELAY(5)/ and lengthen some
timeouts.
1996-05-17 15:15:29 +00:00
thorpej
c3fc839395 Change "DELAY(1)" to "DELAY(5)". This is basically equivalent to how
the old implementation of DELAY() behaved with small values.
1996-05-17 15:12:30 +00:00
thorpej
f708ced3a3 Adjust for the new values of cpuspeed. 1996-05-17 15:09:39 +00:00
thorpej
be71c11843 Add 2 missing ";"s ... they weren't noticed before because of the
old implementation of DELAY().
1996-05-17 15:08:13 +00:00
thorpej
7d279a797f Add a "_kernel_text" symbol, for libkvm. From Gordon Ross. 1996-05-16 23:53:10 +00:00
thorpej
31526bc8e8 These haven't been kept up to date... 1996-05-15 23:50:30 +00:00
mycroft
540f9550c0 Make `make depend' work for libraries. 1996-05-11 16:11:30 +00:00
scottr
6bd0d2c7eb Prototyping-related changes I missed the last time, from Thorsten
Frueauf.  Closes PR 2378.
1996-05-09 21:26:08 +00:00
scottr
a7b314774d doboot() takes no arguments (from Thorsten Frueauf) 1996-05-09 21:17:04 +00:00
thorpej
2de85463e2 Correct typos, PR #2382. 1996-05-09 21:11:47 +00:00
thorpej
7ebfa3c7fc Make the MI LANCE driver standalone, and use cfattach to resolve
naming conflicts between bus attachments on ports that can have
multiple instances of the LANCE.

Changed struct ifnet to have a pointer to the softc of the underlying
device and a printable "external name" (name + unit number), thus eliminating
if_name and if_unit.  Updated interface to (*if_watchdog)() and (*if_start)()
to take a struct ifnet *, rather than a unit number.
1996-05-07 00:57:58 +00:00
thorpej
090191b3aa Make the MI LANCE driver standalone, and use cfattach to resolve
naming conflicts between bus attachments on ports that can have
multiple instances of the LANCE.
1996-05-07 00:56:51 +00:00
scottr
d84817d322 Fix prototypes of cpu_set_kpc() and pagemove(); closes PR 2367. 1996-05-02 20:49:20 +00:00
thorpej
270d48fd22 Add "void" return type to consinit(). 1996-04-27 00:39:59 +00:00
thorpej
8591bb3346 Prototype doboot() and give it the __noreturn__ attribute, so that
machdep.c will compile.
1996-04-27 00:38:44 +00:00
christos
78403e6c0c Add a hardware dependent initialization function lehwinit() 1996-04-22 02:25:54 +00:00
cgd
d7d306aeb7 change LANCE copy & zero functions' names to start with amd7990_, and
remove their 'integrate' (usually defined to be 'static') keywords.
when lance drivers are split up by attachment, more than one file will
reference the copy/zero functions (i.e. not just the file that pulls in
am7990.c... and eventually inclusion of am7990.c should go away entirely).
1996-04-18 00:25:11 +00:00
thorpej
14bffff70d Add a stub config_init() function, so kernel will link. Temporary, until
we use new config.
1996-04-07 18:21:08 +00:00
christos
ab0e60a42f fdopen -> filedescopen 1996-03-14 21:20:59 +00:00
scottr
4d30db274f Back out previous change. 1996-03-13 23:42:45 +00:00
scottr
eb473e57bd Add second argument to longjmp() call. 1996-03-13 19:04:04 +00:00
cgd
18ec26aa21 add _MACHINE and _MACHINE_ARCH, which are like MACHINE and MACHINE_ARCH,
execpt without quotes.  meant to be __CONCAT()ted for easy #includes
of machine-dependent headers for MI code (e.g. for the MI ISA/EISA/PCI/TC
bus code).
1996-03-04 05:04:10 +00:00
thorpej
b2c3f54207 Fix logic errors in new console probe code that caused framebuffers
outside of "internal i/o" space to not even have a chance at console-hood.
Fix tested by Thorsten Frueauf <frueauf@ira.uka.de>, and offered with
my sincerest apologies that the bug ever existed in the first place.
1996-03-03 16:48:52 +00:00
thorpej
570949e0e4 Catch up with ITE data structure changes. 1996-03-03 04:23:33 +00:00
scottr
9e8b6a032a Don't try to make dependencies for SFILES if it isn't defined. 1996-03-01 17:03:17 +00:00
cgd
3d67685d36 Do not build vnode_if.[ch] for each kernel. Build them once, like the
various syscall sources/headers, and just compile them.  From PR 2142, OK'd
by mycroft.
1996-02-29 20:54:58 +00:00
thorpej
ee8a2c002f Copyright assigned to The NetBSD Foundation. 1996-02-28 01:01:17 +00:00
scottr
f08c9ffa5a make this compile again, since CONUNIT is no longer defined for us.
per Jason.
1996-02-27 22:11:44 +00:00
thorpej
0adab4d779 Avoid accidentally lowering a devices console priority. 1996-02-26 23:40:29 +00:00
thorpej
cf93780656 Adjust for the new console code; CONSCODE is now a kernel option, not
a dca-specific constant.  For now, hardwire standalone DCA console
at select code 9 (which is what the old constant expanded to).  Really
should make the way the bootblock console is probed look just like how
the kernel console is probed.
1996-02-26 21:51:25 +00:00
mycroft
2ce52ae489 Define build programs with ?=', so they can be overridden with makeoptions'. 1996-02-26 02:53:20 +00:00
thorpej
fa7bee29a5 Completely rework how the console is probed. Console probing no longer
requires pre-autoconfigured devices.  Fix up some prototypes.  Part of the
long journey towards new config.  (GETTING THERE!)
1996-02-24 00:54:53 +00:00
gwr
946696f064 Add m68k/db_memrw.c 1996-02-22 23:35:07 +00:00
thorpej
94ca9f6aa0 New interrupt handling code. Highlights:
- Interrupt service routines now take a pointer to
	  the device's softc, rather than a unit number.
	- Interrupt handling code in locore.s condensed.  Only
	  remaining "special" handlers are lev0 (spurious),
	  lev1 (HIL; don't ask), lev6 (clock), and lev7 (NMI).
	  Only remaining hard-coded device driver reference in
	  locore is HIL.  (clock doesn't count...)
	- "dcafastservice" eliminated.  DCA driver has new mechanism
	  to guarantee prompt interrupt service at any ipl (not
	  just level 5).
	- Interrupt code pulled out of autoconf.c and machdep.c and
	  placed in new file, isr.c
1996-02-14 02:56:38 +00:00
thorpej
d6f4511690 All interrupt routines (except the HIL; don't ask) now take a pointer
to a softc, rather than a unit number.  Add a "dq_softc" member
to struct devqueue; this is a temporary measure until the
dma/controller/device callback spaghetti is untangled.

YAY!  No more need for dcafastservice!

HIL: squish instances of "(void) splhil()" and "(void) spl0();".
1996-02-14 02:43:54 +00:00
thorpej
c88b047836 Compile the new interrupt handling code. 1996-02-14 02:33:25 +00:00
scottr
b62a5cfd54 When we panic, be a little smarter about whether we need to wait
for the user to hit a key before we reboot.
1996-02-09 18:57:20 +00:00
scottr
41378a47c0 Info from Mike Hibler <mike@cs.utah.edu> indicates that the probable
intent for the value of the C_REL constant was 0xc0.  Testing has turned
up no adverse effect on tape or disk devices, and in fact this change
apparently makes my 9145 tape work as expected. (!)  Closes PRs 1874 and
1971.
1996-02-09 18:00:35 +00:00
scottr
4058c67702 Specify return type for vunmapbuf() 1996-02-09 16:58:40 +00:00
mycroft
753fe3a25a Fix mkdep problems due to missing flags. 1996-02-09 02:21:13 +00:00
christos
2c8314f73c vm prototype changes 1996-02-05 02:06:38 +00:00
thorpej
996edfa606 Remove bogus "return (0);" in rdmatch() that wiggled its way in uninvited. 1996-02-03 03:00:29 +00:00
mycroft
d6b2d2e00f config.old uses vers.o, not newvers. 1996-02-03 01:17:22 +00:00
mycroft
5bc076e17e Use `-traditional-cpp' when building .s and .S files. 1996-02-03 00:43:50 +00:00
mycroft
aa15cd3f7f Don't need unistd.h. 1996-02-02 23:53:20 +00:00
mycroft
56a63148c6 config.old doesn't grok %SFILES. 1996-02-02 23:49:19 +00:00
mycroft
dcd66e9f4d Clone these, and fix many bugs. 1996-02-02 20:08:17 +00:00
scottr
c0f37b4d05 Use DISKUNIT()/DISKPART() from <sys/disklabel.h> instead of
our own home-grown versions.
1996-02-02 19:50:26 +00:00
mycroft
9db20bf150 Don't define _KERNEL here. 1996-02-02 19:42:08 +00:00
mycroft
9d9a70a5a2 Fix #includes. 1996-02-02 18:05:36 +00:00
mycroft
fc9d84fb46 assym.s -> assym.h
(Some ports did this already.)
1996-02-02 02:34:09 +00:00
mycroft
88e512b693 LOCORE -> _LOCORE 1996-02-01 22:28:24 +00:00
thorpej
134b410457 Use the common sigreturn routine. 1996-01-31 02:26:05 +00:00
thorpej
90a0b784de Build memcpy.c 1996-01-30 19:47:32 +00:00
thorpej
abe8231c4f Catch up with changes to libsa. 1996-01-30 19:09:09 +00:00
scottr
f9418ec605 Eliminate unnecessary goto and labels, and other minor cleanup. 1996-01-23 00:28:09 +00:00
thorpej
cd17a6b3af Remove all the old STACKCHECK stuff; it hasn't been used for a long time. 1996-01-16 22:24:28 +00:00
thorpej
1eff435896 Use ${BINOWN} and ${BINGRP} per Arne H. Juul <arnej@ikke.idt.unit.no>
in PR #705.  Also, clean up some stuff left over from HP-BSD.
1996-01-15 01:41:37 +00:00
thorpej
524cf97f54 Kludge around a case where a flaky HP-IB disk might be slow to respond
to the identification request in rdmatch().  Similar in spirit to a
patch from Jason Downs (written eons ago), but limited to the broken
device we're trying to reach.  My patch tested (and fixed :-) by
Herb Peyerl.
1996-01-10 20:54:29 +00:00
thorpej
2e1c1680c5 Fix declaration of hilqfree(), from Daniel Hagerty <hag@wizardz.com>,
PR #1918.
1996-01-10 20:31:12 +00:00
thorpej
f1d8ca699f Oops, compile hpux_machdep.c if COMPAT_HPUX. Forgetfulness pointed
out by Dave Carrel.
1996-01-08 03:27:36 +00:00
thorpej
5b39541e48 New generic disk framework. Highlights:
- New metrics handling.  Metrics are now kept in the new
	  `struct disk'.  Busy time is now stored as a timeval, and
	  transfer count in bytes.

	- Storage for disklabels is now dynamically allocated, so that
	  the size of the disk structure is not machine-dependent.

	- Several new functions for attaching and detaching disks, and
	  handling metrics calculation.

Old-style instrumentation is still supported in drivers that did it before.
However, old-style instrumentation is being deprecated, and will go away
once the userland utilities are updated for the new framework.

For usage and architectural details, see the forthcoming disk(9) manual
page.
1996-01-07 22:01:38 +00:00
thorpej
d9bce7422e Move the obviously machine-dependent HP-UX compat code to hpux_machdep.{c,h}.
A fair bit of this, the m68k core dump and exec goo, can probably be
made into a generic m68k hpux module, eventually.

More to be placed in hpux_machdep.c - keep your eyes peeled...
1996-01-06 12:44:06 +00:00
jtc
2fce159ff8 Changed name of sigaltstack's ss_base field to ss_sp to match XPG4.2 and
traditional usage.
1996-01-04 22:21:33 +00:00
thorpej
90964d13db Implement a suggestion from Charles; use a wrapper function before
leintr() to deal with das blinkenlights.  Also squishes the need
for LEINTR_UNIT.
1996-01-02 21:56:21 +00:00
thorpej
e7cf87f5dc Add the last revision previous to the switch to the MI LANCE code of
hp300/dev/if_lereg.h to the standalone code; the standalone LANCE driver
for the hp300 needs it.
1996-01-01 18:10:54 +00:00
thorpej
3319ad7b61 XXX TEMPORARY STOP-GAP MEASURE! A 12-bit command modifier was being
squished into an 8-bit position in a command stream!  Which one is wrong?
Changed the constant from 0x140 to 0x40, which is what ended up happening
anyhow.  This exists in the old Utah sources, too!  How long has this
bug existed?!
1995-12-31 04:11:42 +00:00
thorpej
34c2680a5b Re-work the serial console support a bit; it doesn't depend on statically
allocated softc's now.
1995-12-31 00:27:16 +00:00
thorpej
f26be3a3d6 Fix something the switch to the MI LANCE code broke: use LE_TINT_HOOK
and LE_RINT_HOOK to blink the "LAN transmit" and "LAN receive" LEDs on
the front panels of 400-series machines iff the CPP symbol USELEDS is
defined in the kernel config file.
1995-12-30 21:03:02 +00:00
thorpej
67c76ca15d Print unconfigured card id and select code regardless of -DDEBUG. 1995-12-30 18:25:25 +00:00
thorpej
11c7d655d8 Correct some comments about 8-port DCM boards. (Thanks, Mike, for
pointing out the True Nature of The Force...)
1995-12-29 17:21:29 +00:00
thorpej
9ba67f2c93 Increase maxusers from 16 to 32. 1995-12-29 17:16:29 +00:00
thorpej
9038d094fa Enable COMPAT_HPUX by default. It's still not 100% yet, but it doesn't
seem to really hurt anything, either.  Makes it easier for folks using
binary snapshots only to try it out.

GENERIC: now that the PT map allocation is fixed, increase the default
maxusers to 32.
1995-12-29 17:12:48 +00:00
thorpej
17eb6e2bc1 Move the old-style disk instrumentation "structures" to a central location
(sys/kern/subr_disk.c) and note that they should/will be deperecated.
1995-12-28 19:16:31 +00:00
mycroft
ce000f04ef Remove deprecated cpu_setstack(). 1995-12-21 05:01:32 +00:00
thorpej
1094eb5008 Oops ... missed this file in the last round of device changes. 1995-12-11 19:41:47 +00:00
thorpej
540dfebf15 Rather than using individual HP300 model names, map those model names to
properties such as "M68040" and "M68K_MMU_MOTOROLA", used to conditionally
compile code.  This is more in-line with now the other m68k ports do it,
and makes it much easier to find "common ground" among them.

In locore.s, use the MMU-type constants defined my <machine/cpu.h> rather
than "expanded" values.

Because HP300-model names are mapped to CPU/MMU combinations in
<machine/cpu.h>, no change to kernel configuration will be necessary.
1995-12-11 17:09:09 +00:00
thorpej
de6dad9228 Move bcopy/ovbcopy/memcpy into m68/m68k/copy.s, which is used by all
m68k ports already anyhow.  No use in keeping 6 identical copies of this
function around.
1995-12-11 02:37:55 +00:00
mycroft
7877aa6eb5 Use the MI LANCE code. 1995-12-10 00:49:33 +00:00
thorpej
b1c7779d0a Prevent the msgbuf from getting trashed across reboots by moving avail_end
back one page.
1995-12-09 07:54:19 +00:00
thorpej
862bb3adc1 Pass the correct number of arguments to readdisklabel(). 1995-12-09 07:31:03 +00:00
mycroft
0e0ac5ed68 cpu_fork() now returns void. 1995-12-09 04:37:23 +00:00
thorpej
87206673fb Keymap for the Swedish HIL keyboard, from Tomas Tengling <ltt@cd.chalmers.se>. 1995-12-06 22:13:23 +00:00
thorpej
9c784e07c1 Fix the integer overflow problem in pmap_init() when the user PT map is
allocated, as noticed by Chuck Cranor.  In addition to re-arranging
the assignment as suggested by Niklas Hallqvist, check to see if maxproc
is higher than the number of available user PTs.  If it is, lower maxproc
to that value, the rationale being that it's much more desirable to have
fork() return EAGAIN than to have your system wedge.

XXX note that root can still raise maxproc with sysctl(2) later.  It's
probably worth having further discussion about this issue, but until
everyone has time to think about it, this seems like an acceptable solution
for the time being.
1995-12-05 20:01:54 +00:00
thorpej
52ec09e420 Use a "match/attach" rather than "init" scheme for probing devices.
This is a step towards getting the drivers ready for new config.
1995-12-02 18:21:49 +00:00
thorpej
deb00c27b3 Use a "match/attach" rather than "init" scheme for probing devices.
This is a step towards getting the drivers ready for new config.

Clean up namespace, remove several instances of global arrays.  Instead,
use a softc to carry state around.  Where possible, pass a pointer to
the softc rather than a unit number.

Pointers to hardware and software constructs are now stored per port
in each instance of the softc (one softc per board) rather than indexed
by minor number.
1995-12-02 18:18:50 +00:00
thorpej
41cf6f071f Use a "match/attach" rather than "init" scheme for probing devices.
This is a step towards getting the drivers ready for new config.

Clean up namespace, remove several instances of global arrays.  Instead,
use a softc to carry state around.  Where possible, pass a pointer to the
softc rather than a unit number.
1995-12-02 18:15:50 +00:00
thorpej
3ac76475ea Use a "match/attach" rather than "init" scheme for probing devices.
This is a step towards getting drivers prepared for new config.
1995-12-02 18:11:21 +00:00
thorpej
de5ce5f48c Change "hilloop" to "hilsoftc" and make slightly more new config-friendly.
Remove all uses of curproc.
1995-12-02 02:48:47 +00:00
thorpej
b618522128 Make the DMA controller driver a little more new config-friendly. Still
more work to do, but this is a step in the right direction.
1995-12-02 02:46:45 +00:00
thorpej
da66c0a255 Enable COMPAT_HPUX. 1995-11-28 08:48:18 +00:00
thorpej
38b63746fb Note the new status of COMPAT_HPUX, but keep is disabled by default. 1995-11-28 08:47:38 +00:00
thorpej
63b0022b86 Update a #include for the "new" location of HP-UX emulation code. 1995-11-28 08:12:37 +00:00
thorpej
ffcccc41bd Compile compat/hpux/hpux_exec.c and compat/hpux/hpux_file.c if COMPAT_HPUX
is defined.
1995-11-28 08:10:09 +00:00